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

« back to all changes in this revision

Viewing changes to Puma/gen-release/step2/src/CSemDeclSpecs.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/CSemDeclSpecs.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_CSemDeclSpecs_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/CSemDeclSpecs.cc"
9
 
 
10
 
#line 11 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
2
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CSemDeclSpecs.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_CSemDeclSpecs_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/CSemDeclSpecs.cc"
 
9
 
 
10
#line 11 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.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/CSemDeclSpecs.cc"
44
 
 
45
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
46
 
 
47
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
59
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
 
60
 
 
61
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
 
62
 
 
63
#line 64 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
48
64
 
49
65
#ifndef __ac_fwd_ExtGnu__
50
66
#define __ac_fwd_ExtGnu__
51
67
class ExtGnu;
52
68
namespace AC {
53
 
  template <class JoinPoint, class Binding>
54
 
  inline void invoke_ExtGnu_ExtGnu_a0_after (JoinPoint *tjp);
55
 
  template <class JoinPoint, class Binding>
56
 
  inline void invoke_ExtGnu_ExtGnu_a1_around (JoinPoint *tjp);
57
 
  template <class JoinPoint>
58
 
  inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
59
 
  template <class JoinPoint>
60
 
  inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
61
 
  template <class JoinPoint>
62
 
  inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
63
 
  template <class JoinPoint>
64
 
  inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
65
 
  template <class JoinPoint>
66
 
  inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
67
 
  template <class JoinPoint, class Binding>
68
 
  inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
69
 
  template <class JoinPoint, class Binding>
70
 
  inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
71
 
  template <class JoinPoint, class Binding>
72
 
  inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
73
 
  template <class JoinPoint, class Binding>
74
 
  inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
75
 
  template <class JoinPoint, class Binding>
76
 
  inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
77
 
  template <class JoinPoint, class Binding>
78
 
  inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
79
 
  template <class JoinPoint>
80
 
  inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
81
 
  template <class JoinPoint>
82
 
  inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
83
 
  template <class JoinPoint, class Binding>
84
 
  inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
85
 
}
86
 
#endif
87
 
 
88
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
89
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
90
 
#endif
91
 
 
92
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
93
 
// This file is part of PUMA.
94
 
// Copyright (C) 1999-2003  The PUMA developer team.
95
 
//                                                                
96
 
// This program is free software;  you can redistribute it and/or 
97
 
// modify it under the terms of the GNU General Public License as 
98
 
// published by the Free Software Foundation; either version 2 of 
99
 
// the License, or (at your option) any later version.            
100
 
//                                                                
101
 
// This program is distributed in the hope that it will be useful,
102
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
103
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
104
 
// GNU General Public License for more details.                   
105
 
//                                                                
106
 
// You should have received a copy of the GNU General Public      
107
 
// License along with this program; if not, write to the Free     
108
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
109
 
// MA  02111-1307  USA                                            
110
 
 
111
 
 
112
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
113
 
 
114
 
#line 115 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
115
 
 
116
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
117
 
// This file is part of PUMA.
118
 
// Copyright (C) 1999-2003  The PUMA developer team.
119
 
//                                                                
120
 
// This program is free software;  you can redistribute it and/or 
121
 
// modify it under the terms of the GNU General Public License as 
122
 
// published by the Free Software Foundation; either version 2 of 
123
 
// the License, or (at your option) any later version.            
124
 
//                                                                
125
 
// This program is distributed in the hope that it will be useful,
126
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
127
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
128
 
// GNU General Public License for more details.                   
129
 
//                                                                
130
 
// You should have received a copy of the GNU General Public      
131
 
// License along with this program; if not, write to the Free     
132
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
133
 
// MA  02111-1307  USA                                            
134
 
 
135
 
#ifndef __ext_gnu_h__
136
 
#define __ext_gnu_h__
137
 
 
138
 
#include <string.h>
139
 
 
140
 
 
141
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
142
 
 
143
 
#line 144 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
144
 
 
145
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
146
 
// This file is part of PUMA.
147
 
// Copyright (C) 1999-2003  The PUMA developer team.
148
 
//                                                                
149
 
// This program is free software;  you can redistribute it and/or 
150
 
// modify it under the terms of the GNU General Public License as 
151
 
// published by the Free Software Foundation; either version 2 of 
152
 
// the License, or (at your option) any later version.            
153
 
//                                                                
154
 
// This program is distributed in the hope that it will be useful,
155
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
156
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
157
 
// GNU General Public License for more details.                   
158
 
//                                                                
159
 
// You should have received a copy of the GNU General Public      
160
 
// License along with this program; if not, write to the Free     
161
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
162
 
// MA  02111-1307  USA                                            
163
 
 
164
 
#ifndef __CCExprResolveH_ah__
165
 
#define __CCExprResolveH_ah__
166
 
 
167
 
// This aspect inserts resolve member functions into all syntax tree classes
168
 
// that represent expressions. As the function is virtual, an efficient
169
 
// run-time switch over the node type is implemented.
170
 
 
171
 
namespace Puma {
172
 
  class CCSemExpr;
173
 
}
174
 
 
175
 
using namespace Puma;
176
 
 
177
 
namespace Puma {
178
 
  
179
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
180
 
 
181
 
  
182
 
#line 40 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
183
 
 
184
 
}
185
 
 
186
 
 
187
 
#line 188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
188
 
class WinIfExists;
189
 
class WinImportHandler;
190
 
class WinMacros;
191
 
class CMatchSyntax;
192
 
class ExtGnu;
193
 
class ExtAC;
194
 
class ExtACBuilderCoupling;
195
 
class ExtACSyntaxCoupling;
196
 
class ExtACTree;
197
 
class ExtACKeywords;
198
 
class WinAsm;
199
 
class WinDeclSpecs;
200
 
class WinMemberExplSpec;
201
 
class WinTypeKeywords;
202
 
class PragmaOnceUnitState;
203
 
class PragmaOnce;
204
 
class CExprResolve;
205
 
 
206
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
207
 
class CCExprResolve {
208
 
#line 209 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
209
 
 
210
 
public:
211
 
  static CCExprResolve *aspectof () {
212
 
    static CCExprResolve __instance;
213
 
    return &__instance;
214
 
  }
215
 
  static CCExprResolve *aspectOf () {
216
 
    return aspectof ();
217
 
  }
218
 
private:
219
 
 
220
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
221
 
 
222
 
#line 223 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
223
 
  friend class ::WinIfExists;
224
 
  friend class ::WinImportHandler;
225
 
  friend class ::WinMacros;
226
 
  friend class ::CMatchSyntax;
227
 
  friend class ::ExtGnu;
228
 
  friend class ::ExtAC;
229
 
  friend class ::ExtACBuilderCoupling;
230
 
  friend class ::ExtACSyntaxCoupling;
231
 
  friend class ::ExtACTree;
232
 
  friend class ::ExtACKeywords;
233
 
  friend class ::WinAsm;
234
 
  friend class ::WinDeclSpecs;
235
 
  friend class ::WinMemberExplSpec;
236
 
  friend class ::WinTypeKeywords;
237
 
  friend class ::PragmaOnceUnitState;
238
 
  friend class ::PragmaOnce;
239
 
  friend class ::CExprResolve;
240
 
 
241
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
242
 
 
243
 
  
244
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
245
 
 
246
 
  
247
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
248
 
 
249
 
};
250
 
#line 251 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
251
 
 
252
 
namespace AC {
253
 
254
 
 
255
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
256
 
 
257
 
 
258
 
#endif /* __CCExprResolveH_ah__ */
259
 
 
260
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
261
 
// This file is part of PUMA.
262
 
// Copyright (C) 1999-2003  The PUMA developer team.
263
 
//                                                                
264
 
// This program is free software;  you can redistribute it and/or 
265
 
// modify it under the terms of the GNU General Public License as 
266
 
// published by the Free Software Foundation; either version 2 of 
267
 
// the License, or (at your option) any later version.            
268
 
//                                                                
269
 
// This program is distributed in the hope that it will be useful,
270
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
271
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
272
 
// GNU General Public License for more details.                   
273
 
//                                                                
274
 
// You should have received a copy of the GNU General Public      
275
 
// License along with this program; if not, write to the Free     
276
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
277
 
// MA  02111-1307  USA                                            
278
 
 
279
 
#ifndef __CExprResolveH_ah__
280
 
#define __CExprResolveH_ah__
281
 
 
282
 
// This aspect inserts resolve member functions into all syntax tree classes
283
 
// that represent expressions. As the function is virtual, an efficient
284
 
// run-time switch over the node type is implemented.
285
 
 
286
 
namespace Puma {
287
 
  class CSemExpr;
288
 
}
289
 
 
290
 
using namespace Puma;
291
 
 
292
 
namespace Puma {
293
 
  
294
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
295
 
 
296
 
  
297
 
#line 40 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
298
 
 
299
 
}
300
 
 
301
 
 
302
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
303
 
class WinIfExists;
304
 
class WinImportHandler;
305
 
class WinMacros;
306
 
class CMatchSyntax;
307
 
class ExtGnu;
308
 
class ExtAC;
309
 
class ExtACBuilderCoupling;
310
 
class ExtACSyntaxCoupling;
311
 
class ExtACTree;
312
 
class ExtACKeywords;
313
 
class WinAsm;
314
 
class WinDeclSpecs;
315
 
class WinMemberExplSpec;
316
 
class WinTypeKeywords;
317
 
class PragmaOnceUnitState;
318
 
class PragmaOnce;
319
 
class CCExprResolve;
320
 
 
321
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
322
 
class CExprResolve {
323
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
324
 
 
325
 
public:
326
 
  static CExprResolve *aspectof () {
327
 
    static CExprResolve __instance;
328
 
    return &__instance;
329
 
  }
330
 
  static CExprResolve *aspectOf () {
331
 
    return aspectof ();
332
 
  }
333
 
private:
334
 
 
335
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
336
 
 
337
 
#line 338 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
338
 
  friend class ::WinIfExists;
339
 
  friend class ::WinImportHandler;
340
 
  friend class ::WinMacros;
341
 
  friend class ::CMatchSyntax;
342
 
  friend class ::ExtGnu;
343
 
  friend class ::ExtAC;
344
 
  friend class ::ExtACBuilderCoupling;
345
 
  friend class ::ExtACSyntaxCoupling;
346
 
  friend class ::ExtACTree;
347
 
  friend class ::ExtACKeywords;
348
 
  friend class ::WinAsm;
349
 
  friend class ::WinDeclSpecs;
350
 
  friend class ::WinMemberExplSpec;
351
 
  friend class ::WinTypeKeywords;
352
 
  friend class ::PragmaOnceUnitState;
353
 
  friend class ::PragmaOnce;
354
 
  friend class ::CCExprResolve;
355
 
 
356
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
357
 
 
358
 
  
359
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
360
 
 
361
 
  
362
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
363
 
 
364
 
};
365
 
#line 366 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
366
 
 
367
 
namespace AC {
368
 
369
 
 
370
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
371
 
 
372
 
 
373
 
#endif /* __CExprResolveH_ah__ */
374
 
 
375
 
#line 5 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
376
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_GnuCTree_h__
377
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_GnuCTree_h__
378
 
 
379
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
380
 
// This file is part of PUMA.
381
 
// Copyright (C) 1999-2003  The PUMA developer team.
382
 
//                                                                
383
 
// This program is free software;  you can redistribute it and/or 
384
 
// modify it under the terms of the GNU General Public License as 
385
 
// published by the Free Software Foundation; either version 2 of 
386
 
// the License, or (at your option) any later version.            
387
 
//                                                                
388
 
// This program is distributed in the hope that it will be useful,
389
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
390
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
391
 
// GNU General Public License for more details.                   
392
 
//                                                                
393
 
// You should have received a copy of the GNU General Public      
394
 
// License along with this program; if not, write to the Free     
395
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
396
 
// MA  02111-1307  USA                                            
397
 
 
398
 
#ifndef __gnu_c_tree_h__
399
 
#define __gnu_c_tree_h__
400
 
 
401
 
namespace Puma {
402
 
 
403
 
// Syntax tree node hierarchy:
404
 
class   CT_GnuAsmDef;        // derived from CT_AsmDef
405
 
class   CT_GnuAsmOperand;    // derived from CTree
406
 
class     CT_GnuAsmOperands; // derived from CT_List
407
 
class     CT_GnuAsmClobbers; // derived from CT_List
408
 
class   CT_GnuStatementExpr; // derived from CT_Expression
409
 
 
410
 
} // namespace Puma
411
 
 
412
 
 
413
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
414
 
 
415
 
#line 416 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
416
 
 
417
 
#ifndef __ac_fwd_ExtACTree__
418
 
#define __ac_fwd_ExtACTree__
419
 
class ExtACTree;
420
 
namespace AC {
421
 
  template <class JoinPoint>
422
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
423
 
  template <class JoinPoint>
424
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
425
 
}
426
 
#endif
427
 
 
428
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
429
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
430
 
#endif
431
 
 
432
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
433
 
 
434
 
#line 435 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
435
 
 
436
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
437
 
// This file is part of PUMA.
438
 
// Copyright (C) 1999-2003  The PUMA developer team.
439
 
//                                                                
440
 
// This program is free software;  you can redistribute it and/or 
441
 
// modify it under the terms of the GNU General Public License as 
442
 
// published by the Free Software Foundation; either version 2 of 
443
 
// the License, or (at your option) any later version.            
444
 
//                                                                
445
 
// This program is distributed in the hope that it will be useful,
446
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
447
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
448
 
// GNU General Public License for more details.                   
449
 
//                                                                
450
 
// You should have received a copy of the GNU General Public      
451
 
// License along with this program; if not, write to the Free     
452
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
453
 
// MA  02111-1307  USA                                            
454
 
 
455
 
#ifndef __ExtACTree_ah__
456
 
#define __ExtACTree_ah__
457
 
 
458
 
// TODO:
459
 
// this shall be introduced by the ExtAC aspect as soon as the include cycle
460
 
// problem is solved!
461
 
 
462
 
namespace Puma {
463
 
  class CTree;
464
 
}
465
 
 
466
 
using namespace Puma;
467
 
 
468
 
 
469
 
#line 470 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
470
 
class WinIfExists;
471
 
class WinImportHandler;
472
 
class WinMacros;
473
 
class CMatchSyntax;
474
 
class ExtGnu;
475
 
class ExtAC;
476
 
class ExtACBuilderCoupling;
477
 
class ExtACSyntaxCoupling;
478
 
class ExtACKeywords;
479
 
class WinAsm;
480
 
class WinDeclSpecs;
481
 
class WinMemberExplSpec;
482
 
class WinTypeKeywords;
483
 
class PragmaOnceUnitState;
484
 
class PragmaOnce;
485
 
class CCExprResolve;
486
 
class CExprResolve;
487
 
 
488
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
489
 
class ExtACTree {
490
 
#line 491 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
491
 
 
492
 
public:
493
 
  static ExtACTree *aspectof () {
494
 
    static ExtACTree __instance;
495
 
    return &__instance;
496
 
  }
497
 
  static ExtACTree *aspectOf () {
498
 
    return aspectof ();
499
 
  }
500
 
private:
501
 
 
502
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
503
 
 
504
 
#line 505 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
505
 
  friend class ::WinIfExists;
506
 
  friend class ::WinImportHandler;
507
 
  friend class ::WinMacros;
508
 
  friend class ::CMatchSyntax;
509
 
  friend class ::ExtGnu;
510
 
  friend class ::ExtAC;
511
 
  friend class ::ExtACBuilderCoupling;
512
 
  friend class ::ExtACSyntaxCoupling;
513
 
  friend class ::ExtACKeywords;
514
 
  friend class ::WinAsm;
515
 
  friend class ::WinDeclSpecs;
516
 
  friend class ::WinMemberExplSpec;
517
 
  friend class ::WinTypeKeywords;
518
 
  friend class ::PragmaOnceUnitState;
519
 
  friend class ::PragmaOnce;
520
 
  friend class ::CCExprResolve;
521
 
  friend class ::CExprResolve;
522
 
 
523
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
524
 
 
525
 
  
526
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
527
 
 
528
 
  
529
 
  // implemented in a separate .cc file, because Builder.h is needed!
530
 
  void delete_tree (CTree *t);
531
 
  
532
 
  
533
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
534
 
 
535
 
  
536
 
  
537
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
538
 
 
539
 
public: template<class JoinPoint> void __a0_after 
540
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
541
 
 
542
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
543
 
(JoinPoint *tjp)
544
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
545
 
 {
546
 
#line 547 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
547
 
 
548
 
  typedef typename JoinPoint::That __JP_That;
549
 
  typedef typename JoinPoint::Target __JP_Target;
550
 
  typedef typename JoinPoint::Result __JP_Result;
551
 
 
552
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
553
 
 
554
 
    tjp->that ()->_intro_members = 0;
555
 
  }
556
 
#line 557 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
557
 
 
558
 
private:
559
 
 
560
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
561
 
 
562
 
  
563
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
564
 
 
565
 
public: template<class JoinPoint> void __a1_before 
566
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
567
 
 
568
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
569
 
(JoinPoint *tjp)
570
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
571
 
 {
572
 
#line 573 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
573
 
 
574
 
  typedef typename JoinPoint::That __JP_That;
575
 
  typedef typename JoinPoint::Target __JP_Target;
576
 
  typedef typename JoinPoint::Result __JP_Result;
577
 
 
578
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
579
 
 
580
 
    delete_tree (tjp->that ()->_intro_members);
581
 
  }
582
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
583
 
 
584
 
private:
585
 
 
586
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
587
 
 
588
 
};
589
 
#line 590 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
590
 
 
591
 
namespace AC {
592
 
  template <class JoinPoint>
593
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp) {
594
 
    ::ExtACTree::aspectof()->__a0_after (tjp);
595
 
  }
596
 
  template <class JoinPoint>
597
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp) {
598
 
    ::ExtACTree::aspectof()->__a1_before (tjp);
599
 
  }
600
 
601
 
 
602
 
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
603
 
 
604
 
 
605
 
#endif // __ExtACTree_ah__
606
 
 
607
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
608
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
609
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
610
 
 
611
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.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 __CTree_h__
631
 
#define __CTree_h__
632
 
 
633
 
namespace Puma {
634
 
 
635
 
 
636
 
// Syntax tree node hierarchy:
637
 
class CTree;
638
 
class   CT_Statement;          
639
 
class     CT_LabelStmt;
640
 
class     CT_IfStmt;
641
 
class     CT_IfElseStmt;
642
 
class     CT_SwitchStmt;
643
 
class     CT_BreakStmt;
644
 
class     CT_ExprStmt;
645
 
class     CT_WhileStmt;
646
 
class     CT_DoStmt;
647
 
class     CT_ForStmt;
648
 
class     CT_ContinueStmt;
649
 
class     CT_ReturnStmt;
650
 
class     CT_GotoStmt;
651
 
class     CT_DeclStmt;
652
 
class     CT_CaseStmt;
653
 
class     CT_DefaultStmt;
654
 
class     CT_TryStmt;
655
 
class   CT_Expression;
656
 
class     CT_ThrowExpr;
657
 
class     CT_NewExpr;
658
 
class     CT_DeleteExpr;
659
 
class     CT_ConstructExpr;
660
 
class     CT_Integer;
661
 
class     CT_Character;
662
 
class       CT_WideCharacter;
663
 
class     CT_Float;
664
 
class     CT_Bool;
665
 
class     CT_BracedExpr;
666
 
class     CT_BinaryExpr;
667
 
class       CT_MembPtrExpr;
668
 
class         CT_MembRefExpr;
669
 
class     CT_UnaryExpr;
670
 
class       CT_PostfixExpr;
671
 
class       CT_AddrExpr;
672
 
class       CT_DerefExpr;
673
 
class     CT_IfThenExpr;
674
 
class     CT_CmpdLiteral;
675
 
class     CT_IndexExpr;
676
 
class     CT_CallExpr;
677
 
class     CT_CastExpr;
678
 
class     CT_StaticCast;
679
 
class       CT_ConstCast;
680
 
class       CT_ReintCast;
681
 
class       CT_DynamicCast;
682
 
class     CT_TypeidExpr;
683
 
class     CT_SizeofExpr;
684
 
class     CT_MembDesignator;
685
 
class     CT_IndexDesignator;
686
 
class     CT_ImplicitCast;
687
 
class   CT_DeclSpec;
688
 
class     CT_PrimDeclSpec;
689
 
class     CT_NamedType;
690
 
class     CT_ClassSpec;
691
 
class       CT_UnionSpec;
692
 
class       CT_EnumSpec;
693
 
class     CT_ExceptionSpec;
694
 
class   CT_Declarator;
695
 
class     CT_InitDeclarator;
696
 
class     CT_BracedDeclarator;
697
 
class     CT_ArrayDeclarator;
698
 
class     CT_FctDeclarator;
699
 
class     CT_RefDeclarator;
700
 
class     CT_PtrDeclarator;
701
 
class     CT_MembPtrDeclarator;
702
 
class     CT_BitFieldDeclarator;
703
 
class   CT_Decl;
704
 
class     CT_ObjDecl;
705
 
class     CT_ArgDecl;
706
 
class     CT_AccessDecl;
707
 
class       CT_UsingDecl;
708
 
class     CT_FctDef;
709
 
class     CT_AsmDef;
710
 
class     CT_EnumDef;
711
 
class     CT_ClassDef;
712
 
class       CT_UnionDef;
713
 
class     CT_Enumerator;
714
 
class     CT_LinkageSpec;
715
 
class     CT_Handler;
716
 
class     CT_TemplateDecl;
717
 
class     CT_TemplateParamDecl;
718
 
class       CT_TypeParamDecl;
719
 
class       CT_NonTypeParamDecl;
720
 
class     CT_NamespaceDef;
721
 
class     CT_NamespaceAliasDef;
722
 
class     CT_UsingDirective;
723
 
class   CT_List;
724
 
class     CT_CmpdStmt;
725
 
class     CT_DeclSpecSeq;
726
 
class     CT_HandlerSeq;
727
 
class     CT_DesignatorSeq;
728
 
class     CT_DeclList;
729
 
class       CT_Program;
730
 
class       CT_ArgDeclList;
731
 
class         CT_ArgNameList;
732
 
class       CT_ArgDeclSeq;
733
 
class       CT_MembList;
734
 
class     CT_ExprList;
735
 
class     CT_DeclaratorList;
736
 
class     CT_BaseSpecList;
737
 
class     CT_MembInitList;
738
 
class     CT_SimpleName;
739
 
class       CT_SpecialName;
740
 
class         CT_PrivateName;
741
 
class         CT_OperatorName;
742
 
class         CT_DestructorName;
743
 
class         CT_ConversionName;
744
 
class         CT_TemplateName;
745
 
class       CT_QualName;
746
 
class         CT_RootQualName;
747
 
class     CT_String;
748
 
class       CT_WideString;
749
 
class     CT_TemplateParamList;
750
 
class     CT_TemplateArgList;
751
 
class   CT_Token;
752
 
class   CT_Error;
753
 
class   CT_Condition;
754
 
class   CT_BaseSpec;
755
 
class   CT_AccessSpec;
756
 
class   CT_ArrayDelimiter;
757
 
class   CT_Any;
758
 
class   CT_AnyList;
759
 
class   CT_AnyExtension;
760
 
class   CT_AnyCondition;
761
 
 
762
 
 
763
 
} // namespace Puma
764
 
 
765
 
 
766
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
767
 
// This file is part of PUMA.
768
 
// Copyright (C) 1999-2003  The PUMA developer team.
769
 
//                                                                
770
 
// This program is free software;  you can redistribute it and/or 
771
 
// modify it under the terms of the GNU General Public License as 
772
 
// published by the Free Software Foundation; either version 2 of 
773
 
// the License, or (at your option) any later version.            
774
 
//                                                                
775
 
// This program is distributed in the hope that it will be useful,
776
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
777
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
778
 
// GNU General Public License for more details.                   
779
 
//                                                                
780
 
// You should have received a copy of the GNU General Public      
781
 
// License along with this program; if not, write to the Free     
782
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
783
 
// MA  02111-1307  USA                                            
784
 
 
785
 
#ifndef __error_severity_h__
786
 
#define __error_severity_h__
787
 
 
788
 
// Severity of errors: represented by a short integer and a text
789
 
 
790
 
namespace Puma {
791
 
 
792
 
 
793
 
 
794
 
#line 795 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
795
 
} // closed Puma
796
 
class WinIfExists;
797
 
class WinImportHandler;
798
 
class WinMacros;
799
 
class CMatchSyntax;
800
 
class ExtGnu;
801
 
class ExtAC;
802
 
class ExtACBuilderCoupling;
803
 
class ExtACSyntaxCoupling;
804
 
class ExtACTree;
805
 
class ExtACKeywords;
806
 
class WinAsm;
807
 
class WinDeclSpecs;
808
 
class WinMemberExplSpec;
809
 
class WinTypeKeywords;
810
 
class PragmaOnceUnitState;
811
 
class PragmaOnce;
812
 
class CCExprResolve;
813
 
class CExprResolve;
814
 
namespace Puma {
815
 
 
816
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
817
 
class ErrorSeverity {
818
 
#line 819 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
819
 
  friend class ::WinIfExists;
820
 
  friend class ::WinImportHandler;
821
 
  friend class ::WinMacros;
822
 
  friend class ::CMatchSyntax;
823
 
  friend class ::ExtGnu;
824
 
  friend class ::ExtAC;
825
 
  friend class ::ExtACBuilderCoupling;
826
 
  friend class ::ExtACSyntaxCoupling;
827
 
  friend class ::ExtACTree;
828
 
  friend class ::ExtACKeywords;
829
 
  friend class ::WinAsm;
830
 
  friend class ::WinDeclSpecs;
831
 
  friend class ::WinMemberExplSpec;
832
 
  friend class ::WinTypeKeywords;
833
 
  friend class ::PragmaOnceUnitState;
834
 
  friend class ::PragmaOnce;
835
 
  friend class ::CCExprResolve;
836
 
  friend class ::CExprResolve;
837
 
 
838
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
839
 
 
840
 
  unsigned short _severity;
841
 
  const char *_text;
842
 
 
843
 
public:
844
 
  ErrorSeverity (unsigned short s = 0, const char* t = (const char*)0) :
845
 
    _severity (s), _text (t) {}
846
 
  ErrorSeverity (const ErrorSeverity &s) :
847
 
    _severity (s._severity), _text (s._text) {}
848
 
  ErrorSeverity &operator =(const ErrorSeverity &s) 
849
 
    { _severity = s._severity; _text = s._text; return *this; }
850
 
 
851
 
  int operator < (const ErrorSeverity &s) const
852
 
   { return _severity < s._severity; }
853
 
  int operator > (const ErrorSeverity &s) const
854
 
   { return _severity > s._severity; }
855
 
  int operator <= (const ErrorSeverity &s) const
856
 
   { return _severity < s._severity || _severity == s._severity; }
857
 
  int operator >= (const ErrorSeverity &s) const
858
 
   { return _severity > s._severity || _severity == s._severity; }
859
 
  int operator == (const ErrorSeverity &s) const
860
 
   { return _severity == s._severity; }
861
 
  int operator != (const ErrorSeverity &s) const
862
 
   { return _severity != s._severity; }
863
 
  const char *text () const
864
 
   { return _text; }
865
 
};
866
 
 
867
 
extern const ErrorSeverity sev_none;
868
 
extern const ErrorSeverity sev_message;
869
 
extern const ErrorSeverity sev_warning;
870
 
extern const ErrorSeverity sev_error;
871
 
extern const ErrorSeverity sev_fatal;
872
 
      
873
 
 
874
 
} // namespace Puma
875
 
 
876
 
#endif /* __error_severity_h__ */
877
 
 
878
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemObject.h"
879
 
// This file is part of PUMA.
880
 
// Copyright (C) 1999-2003  The PUMA developer team.
881
 
//                                                                
882
 
// This program is free software;  you can redistribute it and/or 
883
 
// modify it under the terms of the GNU General Public License as 
884
 
// published by the Free Software Foundation; either version 2 of 
885
 
// the License, or (at your option) any later version.            
886
 
//                                                                
887
 
// This program is distributed in the hope that it will be useful,
888
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
889
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
890
 
// GNU General Public License for more details.                   
891
 
//                                                                
892
 
// You should have received a copy of the GNU General Public      
893
 
// License along with this program; if not, write to the Free     
894
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
895
 
// MA  02111-1307  USA                                            
896
 
 
897
 
#ifndef __CSemObject_h__
898
 
#define __CSemObject_h__
899
 
 
900
 
namespace Puma {
901
 
 
902
 
 
903
 
class CObjectInfo;
904
 
 
905
 
 
906
 
#line 907 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
907
 
} // closed Puma
908
 
class WinIfExists;
909
 
class WinImportHandler;
910
 
class WinMacros;
911
 
class CMatchSyntax;
912
 
class ExtGnu;
913
 
class ExtAC;
914
 
class ExtACBuilderCoupling;
915
 
class ExtACSyntaxCoupling;
916
 
class ExtACTree;
917
 
class ExtACKeywords;
918
 
class WinAsm;
919
 
class WinDeclSpecs;
920
 
class WinMemberExplSpec;
921
 
class WinTypeKeywords;
922
 
class PragmaOnceUnitState;
923
 
class PragmaOnce;
924
 
class CCExprResolve;
925
 
class CExprResolve;
926
 
namespace Puma {
927
 
 
928
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemObject.h"
929
 
class CSemObject {
930
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
931
 
  friend class ::WinIfExists;
932
 
  friend class ::WinImportHandler;
933
 
  friend class ::WinMacros;
934
 
  friend class ::CMatchSyntax;
935
 
  friend class ::ExtGnu;
936
 
  friend class ::ExtAC;
937
 
  friend class ::ExtACBuilderCoupling;
938
 
  friend class ::ExtACSyntaxCoupling;
939
 
  friend class ::ExtACTree;
940
 
  friend class ::ExtACKeywords;
941
 
  friend class ::WinAsm;
942
 
  friend class ::WinDeclSpecs;
943
 
  friend class ::WinMemberExplSpec;
944
 
  friend class ::WinTypeKeywords;
945
 
  friend class ::PragmaOnceUnitState;
946
 
  friend class ::PragmaOnce;
947
 
  friend class ::CCExprResolve;
948
 
  friend class ::CExprResolve;
949
 
 
950
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemObject.h"
951
 
 
952
 
  CObjectInfo *_obj;
953
 
 
954
 
public:
955
 
  CSemObject () : _obj ((CObjectInfo*)0) {}
956
 
  void Object (CObjectInfo *o) { _obj = o; }
957
 
  /*virtual*/ CObjectInfo *Object () const { return _obj; }
958
 
};
959
 
 
960
 
 
961
 
} // namespace Puma
962
 
 
963
 
#endif /* __CSemObject_h__ */
964
 
 
965
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemScope.h"
966
 
// This file is part of PUMA.
967
 
// Copyright (C) 1999-2003  The PUMA developer team.
968
 
//                                                                
969
 
// This program is free software;  you can redistribute it and/or 
970
 
// modify it under the terms of the GNU General Public License as 
971
 
// published by the Free Software Foundation; either version 2 of 
972
 
// the License, or (at your option) any later version.            
973
 
//                                                                
974
 
// This program is distributed in the hope that it will be useful,
975
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
976
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
977
 
// GNU General Public License for more details.                   
978
 
//                                                                
979
 
// You should have received a copy of the GNU General Public      
980
 
// License along with this program; if not, write to the Free     
981
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
982
 
// MA  02111-1307  USA                                            
983
 
 
984
 
#ifndef __CSemScope_h__
985
 
#define __CSemScope_h__
986
 
 
987
 
namespace Puma {
988
 
 
989
 
 
990
 
class CStructure;
991
 
 
992
 
 
993
 
#line 994 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
994
 
} // closed Puma
995
 
class WinIfExists;
996
 
class WinImportHandler;
997
 
class WinMacros;
998
 
class CMatchSyntax;
999
 
class ExtGnu;
1000
 
class ExtAC;
1001
 
class ExtACBuilderCoupling;
1002
 
class ExtACSyntaxCoupling;
1003
 
class ExtACTree;
1004
 
class ExtACKeywords;
1005
 
class WinAsm;
1006
 
class WinDeclSpecs;
1007
 
class WinMemberExplSpec;
1008
 
class WinTypeKeywords;
1009
 
class PragmaOnceUnitState;
1010
 
class PragmaOnce;
1011
 
class CCExprResolve;
1012
 
class CExprResolve;
1013
 
namespace Puma {
1014
 
 
1015
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemScope.h"
1016
 
class CSemScope {
1017
 
#line 1018 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
1018
 
  friend class ::WinIfExists;
1019
 
  friend class ::WinImportHandler;
1020
 
  friend class ::WinMacros;
1021
 
  friend class ::CMatchSyntax;
1022
 
  friend class ::ExtGnu;
1023
 
  friend class ::ExtAC;
1024
 
  friend class ::ExtACBuilderCoupling;
1025
 
  friend class ::ExtACSyntaxCoupling;
1026
 
  friend class ::ExtACTree;
1027
 
  friend class ::ExtACKeywords;
1028
 
  friend class ::WinAsm;
1029
 
  friend class ::WinDeclSpecs;
1030
 
  friend class ::WinMemberExplSpec;
1031
 
  friend class ::WinTypeKeywords;
1032
 
  friend class ::PragmaOnceUnitState;
1033
 
  friend class ::PragmaOnce;
1034
 
  friend class ::CCExprResolve;
1035
 
  friend class ::CExprResolve;
1036
 
 
1037
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemScope.h"
1038
 
 
1039
 
  CStructure *_scope;
1040
 
 
1041
 
public:
1042
 
  CSemScope () : _scope ((CStructure*)0) {}
1043
 
  void Scope (CStructure *s) { _scope = s; }
1044
 
  CStructure *Scope () const { return _scope; }
1045
 
};
1046
 
 
1047
 
 
1048
 
} // namespace Puma
1049
 
 
1050
 
#endif /* __CSemScope_h__ */
1051
 
 
1052
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemValue.h"
1053
 
// This file is part of PUMA.
1054
 
// Copyright (C) 1999-2003  The PUMA developer team.
1055
 
//                                                                
1056
 
// This program is free software;  you can redistribute it and/or 
1057
 
// modify it under the terms of the GNU General Public License as 
1058
 
// published by the Free Software Foundation; either version 2 of 
1059
 
// the License, or (at your option) any later version.            
1060
 
//                                                                
1061
 
// This program is distributed in the hope that it will be useful,
1062
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
1063
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
1064
 
// GNU General Public License for more details.                   
1065
 
//                                                                
1066
 
// You should have received a copy of the GNU General Public      
1067
 
// License along with this program; if not, write to the Free     
1068
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
1069
 
// MA  02111-1307  USA                                            
1070
 
 
1071
 
#ifndef __CSemValue_h__
1072
 
#define __CSemValue_h__
1073
 
 
1074
 
 
1075
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CExprValue.h"
1076
 
// This file is part of PUMA.
1077
 
// Copyright (C) 1999-2003  The PUMA developer team.
1078
 
//                                                                
1079
 
// This program is free software;  you can redistribute it and/or 
1080
 
// modify it under the terms of the GNU General Public License as 
1081
 
// published by the Free Software Foundation; either version 2 of 
1082
 
// the License, or (at your option) any later version.            
1083
 
//                                                                
1084
 
// This program is distributed in the hope that it will be useful,
1085
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
1086
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
1087
 
// GNU General Public License for more details.                   
1088
 
//                                                                
1089
 
// You should have received a copy of the GNU General Public      
1090
 
// License along with this program; if not, write to the Free     
1091
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
1092
 
// MA  02111-1307  USA                                            
1093
 
 
1094
 
#ifndef __CExprValue_h__
1095
 
#define __CExprValue_h__
1096
 
 
1097
 
#include <ostream>
1098
 
using std::ostream;
1099
 
 
1100
 
namespace Puma {
1101
 
 
1102
 
 
1103
 
class CTypeInfo;
1104
 
class CConstant;
1105
 
class CStrLiteral;
1106
 
class CWStrLiteral;
1107
 
 
1108
 
 
1109
 
#line 1110 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
1110
 
} // closed Puma
1111
 
class WinIfExists;
1112
 
class WinImportHandler;
1113
 
class WinMacros;
1114
 
class CMatchSyntax;
1115
 
class ExtGnu;
1116
 
class ExtAC;
1117
 
class ExtACBuilderCoupling;
1118
 
class ExtACSyntaxCoupling;
1119
 
class ExtACTree;
1120
 
class ExtACKeywords;
1121
 
class WinAsm;
1122
 
class WinDeclSpecs;
1123
 
class WinMemberExplSpec;
1124
 
class WinTypeKeywords;
1125
 
class PragmaOnceUnitState;
1126
 
class PragmaOnce;
1127
 
class CCExprResolve;
1128
 
class CExprResolve;
1129
 
namespace Puma {
1130
 
 
1131
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CExprValue.h"
1132
 
class CExprValue {
1133
 
#line 1134 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
1134
 
  friend class ::WinIfExists;
1135
 
  friend class ::WinImportHandler;
1136
 
  friend class ::WinMacros;
1137
 
  friend class ::CMatchSyntax;
1138
 
  friend class ::ExtGnu;
1139
 
  friend class ::ExtAC;
1140
 
  friend class ::ExtACBuilderCoupling;
1141
 
  friend class ::ExtACSyntaxCoupling;
1142
 
  friend class ::ExtACTree;
1143
 
  friend class ::ExtACKeywords;
1144
 
  friend class ::WinAsm;
1145
 
  friend class ::WinDeclSpecs;
1146
 
  friend class ::WinMemberExplSpec;
1147
 
  friend class ::WinTypeKeywords;
1148
 
  friend class ::PragmaOnceUnitState;
1149
 
  friend class ::PragmaOnce;
1150
 
  friend class ::CCExprResolve;
1151
 
  friend class ::CExprResolve;
1152
 
 
1153
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CExprValue.h"
1154
 
 
1155
 
  CTypeInfo *_type;
1156
 
  
1157
 
protected:
1158
 
  CExprValue (CTypeInfo *t) : _type (t) {}
1159
 
  
1160
 
public:
1161
 
  virtual ~CExprValue () {}
1162
 
 
1163
 
  CTypeInfo *Type () const { return _type; }
1164
 
  virtual void print (ostream &out) const = 0;
1165
 
  
1166
 
  virtual CConstant *Constant () const { return (CConstant*)0; }
1167
 
  virtual CStrLiteral *StrLiteral () const { return (CStrLiteral*)0; }
1168
 
  virtual CWStrLiteral *WStrLiteral () const { return (CWStrLiteral*)0; }
1169
 
};
1170
 
 
1171
 
inline ostream& operator << (ostream &out, const CExprValue &ev) {
1172
 
  ev.print (out);
1173
 
  return out;
1174
 
}
1175
 
 
1176
 
} // namespace Puma
1177
 
 
1178
 
#endif /* __CExprValue_h__ */
1179
 
 
1180
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
69
  template <class JoinPoint>
 
70
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a0_around (JoinPoint *tjp);
 
71
  template <class JoinPoint>
 
72
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a1_after (JoinPoint *tjp);
 
73
  template <class JoinPoint>
 
74
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
 
75
  template <class JoinPoint>
 
76
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
 
77
  template <class JoinPoint>
 
78
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
 
79
  template <class JoinPoint>
 
80
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
 
81
  template <class JoinPoint>
 
82
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
 
83
  template <class JoinPoint>
 
84
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
 
85
  template <class JoinPoint>
 
86
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
 
87
  template <class JoinPoint>
 
88
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
 
89
  template <class JoinPoint>
 
90
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
 
91
  template <class JoinPoint>
 
92
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
 
93
  template <class JoinPoint>
 
94
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
 
95
  template <class JoinPoint>
 
96
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
 
97
  template <class JoinPoint>
 
98
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
 
99
  template <class JoinPoint>
 
100
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
101
  template <class JoinPoint>
 
102
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a16_around (JoinPoint *tjp);
 
103
}
 
104
#endif
 
105
 
 
106
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
107
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
108
#endif
 
109
 
 
110
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
 
111
// This file is part of PUMA.
 
112
// Copyright (C) 1999-2003  The PUMA developer team.
 
113
//                                                                
 
114
// This program is free software;  you can redistribute it and/or 
 
115
// modify it under the terms of the GNU General Public License as 
 
116
// published by the Free Software Foundation; either version 2 of 
 
117
// the License, or (at your option) any later version.            
 
118
//                                                                
 
119
// This program is distributed in the hope that it will be useful,
 
120
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
121
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
122
// GNU General Public License for more details.                   
 
123
//                                                                
 
124
// You should have received a copy of the GNU General Public      
 
125
// License along with this program; if not, write to the Free     
 
126
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
127
// MA  02111-1307  USA                                            
 
128
 
 
129
 
 
130
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
131
// This file is part of PUMA.
 
132
// Copyright (C) 1999-2003  The PUMA developer team.
 
133
//                                                                
 
134
// This program is free software;  you can redistribute it and/or 
 
135
// modify it under the terms of the GNU General Public License as 
 
136
// published by the Free Software Foundation; either version 2 of 
 
137
// the License, or (at your option) any later version.            
 
138
//                                                                
 
139
// This program is distributed in the hope that it will be useful,
 
140
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
141
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
142
// GNU General Public License for more details.                   
 
143
//                                                                
 
144
// You should have received a copy of the GNU General Public      
 
145
// License along with this program; if not, write to the Free     
 
146
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
147
// MA  02111-1307  USA                                            
 
148
 
 
149
#ifndef __c_sem_decl_specs_h__
 
150
#define __c_sem_decl_specs_h__
 
151
 
 
152
 
 
153
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
1181
154
// This file is part of PUMA.
1182
155
// Copyright (C) 1999-2003  The PUMA developer team.
1183
156
//                                                                
1200
173
#define __CTypeInfo_h__
1201
174
 
1202
175
 
1203
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Printable.h"
 
176
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
1204
177
// This file is part of PUMA.
1205
178
// Copyright (C) 1999-2003  The PUMA developer team.
1206
179
//                                                                
1229
202
 
1230
203
 
1231
204
 
1232
 
#line 1233 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
205
#line 206 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
1233
206
} // closed Puma
 
207
class CCExprResolve;
 
208
class CExprResolve;
1234
209
class WinIfExists;
1235
210
class WinImportHandler;
1236
211
class WinMacros;
1237
 
class CMatchSyntax;
1238
 
class ExtGnu;
 
212
class WinAsm;
 
213
class WinDeclSpecs;
 
214
class WinMemberExplSpec;
 
215
class WinTypeKeywords;
 
216
class WinFriend;
1239
217
class ExtAC;
1240
218
class ExtACBuilderCoupling;
1241
219
class ExtACSyntaxCoupling;
1242
220
class ExtACTree;
1243
221
class ExtACKeywords;
1244
 
class WinAsm;
1245
 
class WinDeclSpecs;
1246
 
class WinMemberExplSpec;
1247
 
class WinTypeKeywords;
 
222
class ExtGnu;
1248
223
class PragmaOnceUnitState;
1249
224
class PragmaOnce;
1250
 
class CCExprResolve;
1251
 
class CExprResolve;
 
225
class CMatchSyntax;
1252
226
namespace Puma {
1253
227
 
1254
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Printable.h"
 
228
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
1255
229
class Printable {
1256
 
#line 1257 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
230
#line 231 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
231
  friend class ::CCExprResolve;
 
232
  friend class ::CExprResolve;
1257
233
  friend class ::WinIfExists;
1258
234
  friend class ::WinImportHandler;
1259
235
  friend class ::WinMacros;
1260
 
  friend class ::CMatchSyntax;
1261
 
  friend class ::ExtGnu;
 
236
  friend class ::WinAsm;
 
237
  friend class ::WinDeclSpecs;
 
238
  friend class ::WinMemberExplSpec;
 
239
  friend class ::WinTypeKeywords;
 
240
  friend class ::WinFriend;
1262
241
  friend class ::ExtAC;
1263
242
  friend class ::ExtACBuilderCoupling;
1264
243
  friend class ::ExtACSyntaxCoupling;
1265
244
  friend class ::ExtACTree;
1266
245
  friend class ::ExtACKeywords;
1267
 
  friend class ::WinAsm;
1268
 
  friend class ::WinDeclSpecs;
1269
 
  friend class ::WinMemberExplSpec;
1270
 
  friend class ::WinTypeKeywords;
 
246
  friend class ::ExtGnu;
1271
247
  friend class ::PragmaOnceUnitState;
1272
248
  friend class ::PragmaOnce;
1273
 
  friend class ::CCExprResolve;
1274
 
  friend class ::CExprResolve;
 
249
  friend class ::CMatchSyntax;
1275
250
 
1276
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Printable.h"
 
251
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
1277
252
 
1278
253
public:
1279
254
  virtual ~Printable () {}
1291
266
 
1292
267
#endif /* __printable_h__ */
1293
268
 
1294
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
269
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
1295
270
namespace Puma {
1296
271
 
1297
272
 
1319
294
class CT_ExprList;
1320
295
class CObjectInfo;
1321
296
class CScopeInfo;
 
297
class CTemplateParamInfo;
1322
298
//class ostream;
1323
299
 
1324
300
 
1325
 
#line 1326 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
301
#line 302 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
1326
302
} // closed Puma
 
303
class CCExprResolve;
 
304
class CExprResolve;
1327
305
class WinIfExists;
1328
306
class WinImportHandler;
1329
307
class WinMacros;
1330
 
class CMatchSyntax;
1331
 
class ExtGnu;
 
308
class WinAsm;
 
309
class WinDeclSpecs;
 
310
class WinMemberExplSpec;
 
311
class WinTypeKeywords;
 
312
class WinFriend;
1332
313
class ExtAC;
1333
314
class ExtACBuilderCoupling;
1334
315
class ExtACSyntaxCoupling;
1335
316
class ExtACTree;
1336
317
class ExtACKeywords;
1337
 
class WinAsm;
1338
 
class WinDeclSpecs;
1339
 
class WinMemberExplSpec;
1340
 
class WinTypeKeywords;
 
318
class ExtGnu;
1341
319
class PragmaOnceUnitState;
1342
320
class PragmaOnce;
1343
 
class CCExprResolve;
1344
 
class CExprResolve;
 
321
class CMatchSyntax;
1345
322
namespace Puma {
1346
323
 
1347
 
#line 53 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
324
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
1348
325
class CTypeInfo : public Printable {
1349
 
#line 1350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
326
#line 327 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
327
  friend class ::CCExprResolve;
 
328
  friend class ::CExprResolve;
1350
329
  friend class ::WinIfExists;
1351
330
  friend class ::WinImportHandler;
1352
331
  friend class ::WinMacros;
1353
 
  friend class ::CMatchSyntax;
1354
 
  friend class ::ExtGnu;
 
332
  friend class ::WinAsm;
 
333
  friend class ::WinDeclSpecs;
 
334
  friend class ::WinMemberExplSpec;
 
335
  friend class ::WinTypeKeywords;
 
336
  friend class ::WinFriend;
1355
337
  friend class ::ExtAC;
1356
338
  friend class ::ExtACBuilderCoupling;
1357
339
  friend class ::ExtACSyntaxCoupling;
1358
340
  friend class ::ExtACTree;
1359
341
  friend class ::ExtACKeywords;
1360
 
  friend class ::WinAsm;
1361
 
  friend class ::WinDeclSpecs;
1362
 
  friend class ::WinMemberExplSpec;
1363
 
  friend class ::WinTypeKeywords;
 
342
  friend class ::ExtGnu;
1364
343
  friend class ::PragmaOnceUnitState;
1365
344
  friend class ::PragmaOnce;
1366
 
  friend class ::CCExprResolve;
1367
 
  friend class ::CExprResolve;
 
345
  friend class ::CMatchSyntax;
1368
346
 
1369
 
#line 53 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
347
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
1370
348
 
1371
349
  // needed for type printing
1372
350
  enum PrintState {
1374
352
    PRINT_PRE = 1,  // printing a declarator prefix like '*' or '&'
1375
353
    PRINT_ABS = 2,  // printing absolute names
1376
354
    PRINT_TPL = 4,  // printing template argument list
1377
 
    PRINT_TDN = 8   // print typedef names instead of defined type
 
355
    PRINT_TDN = 8,  // print typedef names instead of defined type
 
356
    PRINT_ELA = 16  // print elaborated type specifiers (struct, enum, union)
1378
357
  };
1379
358
 
1380
359
public:
1435
414
  bool operator !=(const CTypeInfo &) const;
1436
415
  
1437
416
  void print (ostream& os) const;
1438
 
  void TypeText (ostream &, const char * = (const char*)0,
1439
 
                 bool abs = false, bool tdef = false) const;
 
417
  void TypeText (ostream &, const char *name = (const char*)0,
 
418
                 bool abs = false, bool tdef = false, 
 
419
                 bool elaborated_type_spec = false) const;
1440
420
  long int Dimension () const;
1441
421
  
1442
422
  long int Size () const;
1568
548
  void Mangled (ostream &) const;
1569
549
 
1570
550
private:
 
551
  bool equalTemplateParams (CTemplateParamInfo *p1, CTemplateParamInfo *p2) const;
1571
552
  void TypeText (char, ostream &, const char * = (const char*)0) const;
1572
553
  void printName (char, ostream &, CObjectInfo *) const;
1573
554
  void printScope (char, ostream &, CObjectInfo *) const;
1579
560
 
1580
561
 
1581
562
 
1582
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
 
563
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
1583
564
// This file is part of PUMA.
1584
565
// Copyright (C) 1999-2003  The PUMA developer team.
1585
566
//                                                                
1610
591
 
1611
592
 
1612
593
 
1613
 
#line 1614 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
594
#line 595 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
1614
595
} // closed Puma
 
596
class CCExprResolve;
 
597
class CExprResolve;
1615
598
class WinIfExists;
1616
599
class WinImportHandler;
1617
600
class WinMacros;
1618
 
class CMatchSyntax;
1619
 
class ExtGnu;
 
601
class WinAsm;
 
602
class WinDeclSpecs;
 
603
class WinMemberExplSpec;
 
604
class WinTypeKeywords;
 
605
class WinFriend;
1620
606
class ExtAC;
1621
607
class ExtACBuilderCoupling;
1622
608
class ExtACSyntaxCoupling;
1623
609
class ExtACTree;
1624
610
class ExtACKeywords;
1625
 
class WinAsm;
1626
 
class WinDeclSpecs;
1627
 
class WinMemberExplSpec;
1628
 
class WinTypeKeywords;
 
611
class ExtGnu;
1629
612
class PragmaOnceUnitState;
1630
613
class PragmaOnce;
1631
 
class CCExprResolve;
1632
 
class CExprResolve;
 
614
class CMatchSyntax;
1633
615
namespace Puma {
1634
616
 
1635
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
 
617
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
1636
618
class CTypePrimitive : public CTypeInfo {
1637
 
#line 1638 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
619
#line 620 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
620
  friend class ::CCExprResolve;
 
621
  friend class ::CExprResolve;
1638
622
  friend class ::WinIfExists;
1639
623
  friend class ::WinImportHandler;
1640
624
  friend class ::WinMacros;
1641
 
  friend class ::CMatchSyntax;
1642
 
  friend class ::ExtGnu;
 
625
  friend class ::WinAsm;
 
626
  friend class ::WinDeclSpecs;
 
627
  friend class ::WinMemberExplSpec;
 
628
  friend class ::WinTypeKeywords;
 
629
  friend class ::WinFriend;
1643
630
  friend class ::ExtAC;
1644
631
  friend class ::ExtACBuilderCoupling;
1645
632
  friend class ::ExtACSyntaxCoupling;
1646
633
  friend class ::ExtACTree;
1647
634
  friend class ::ExtACKeywords;
1648
 
  friend class ::WinAsm;
1649
 
  friend class ::WinDeclSpecs;
1650
 
  friend class ::WinMemberExplSpec;
1651
 
  friend class ::WinTypeKeywords;
 
635
  friend class ::ExtGnu;
1652
636
  friend class ::PragmaOnceUnitState;
1653
637
  friend class ::PragmaOnce;
1654
 
  friend class ::CCExprResolve;
1655
 
  friend class ::CExprResolve;
 
638
  friend class ::CMatchSyntax;
1656
639
 
1657
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
 
640
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
1658
641
 
1659
642
  const char *_Text;
1660
643
 
1703
686
 
1704
687
#endif /* __CTypePrimitive_h__ */
1705
688
 
1706
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
 
689
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
1707
690
// This file is part of PUMA.
1708
691
// Copyright (C) 1999-2003  The PUMA developer team.
1709
692
//                                                                
1734
717
 
1735
718
 
1736
719
 
1737
 
#line 1738 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
720
#line 721 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
1738
721
} // closed Puma
 
722
class CCExprResolve;
 
723
class CExprResolve;
1739
724
class WinIfExists;
1740
725
class WinImportHandler;
1741
726
class WinMacros;
1742
 
class CMatchSyntax;
1743
 
class ExtGnu;
 
727
class WinAsm;
 
728
class WinDeclSpecs;
 
729
class WinMemberExplSpec;
 
730
class WinTypeKeywords;
 
731
class WinFriend;
1744
732
class ExtAC;
1745
733
class ExtACBuilderCoupling;
1746
734
class ExtACSyntaxCoupling;
1747
735
class ExtACTree;
1748
736
class ExtACKeywords;
1749
 
class WinAsm;
1750
 
class WinDeclSpecs;
1751
 
class WinMemberExplSpec;
1752
 
class WinTypeKeywords;
 
737
class ExtGnu;
1753
738
class PragmaOnceUnitState;
1754
739
class PragmaOnce;
1755
 
class CCExprResolve;
1756
 
class CExprResolve;
 
740
class CMatchSyntax;
1757
741
namespace Puma {
1758
742
 
1759
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
 
743
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
1760
744
class CTypeQualified : public CTypeInfo {
1761
 
#line 1762 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
745
#line 746 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
746
  friend class ::CCExprResolve;
 
747
  friend class ::CExprResolve;
1762
748
  friend class ::WinIfExists;
1763
749
  friend class ::WinImportHandler;
1764
750
  friend class ::WinMacros;
1765
 
  friend class ::CMatchSyntax;
1766
 
  friend class ::ExtGnu;
 
751
  friend class ::WinAsm;
 
752
  friend class ::WinDeclSpecs;
 
753
  friend class ::WinMemberExplSpec;
 
754
  friend class ::WinTypeKeywords;
 
755
  friend class ::WinFriend;
1767
756
  friend class ::ExtAC;
1768
757
  friend class ::ExtACBuilderCoupling;
1769
758
  friend class ::ExtACSyntaxCoupling;
1770
759
  friend class ::ExtACTree;
1771
760
  friend class ::ExtACKeywords;
1772
 
  friend class ::WinAsm;
1773
 
  friend class ::WinDeclSpecs;
1774
 
  friend class ::WinMemberExplSpec;
1775
 
  friend class ::WinTypeKeywords;
 
761
  friend class ::ExtGnu;
1776
762
  friend class ::PragmaOnceUnitState;
1777
763
  friend class ::PragmaOnce;
1778
 
  friend class ::CCExprResolve;
1779
 
  friend class ::CExprResolve;
1780
 
 
1781
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
1782
 
 
1783
 
  bool _Const;
1784
 
  bool _Volatile;
1785
 
  bool _Restrict;
 
764
  friend class ::CMatchSyntax;
 
765
 
 
766
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
 
767
 
 
768
  bool _QualConst;
 
769
  bool _QualVolatile;
 
770
  bool _QualRestrict;
1786
771
 
1787
772
protected:
1788
773
  CTypeQualified (CTypeInfo *, bool, bool, bool, TypeId);
1803
788
inline CTypeQualified::CTypeQualified (CTypeInfo *base, bool c, bool v, bool r, 
1804
789
 CTypeInfo::TypeId id) :
1805
790
  CTypeInfo (base, id),
1806
 
  _Const (c),
1807
 
  _Volatile (v),
1808
 
  _Restrict (r)
 
791
  _QualConst (c),
 
792
  _QualVolatile (v),
 
793
  _QualRestrict (r)
1809
794
 {}
1810
795
inline CTypeQualified::CTypeQualified (CTypeInfo *base, bool c, bool v, bool r) :
1811
796
  CTypeInfo (base, CTypeInfo::TYPE_QUALIFIED),
1812
 
  _Const (c),
1813
 
  _Volatile (v),
1814
 
  _Restrict (r)
 
797
  _QualConst (c),
 
798
  _QualVolatile (v),
 
799
  _QualRestrict (r)
1815
800
 {}
1816
801
inline CTypeQualified::~CTypeQualified ()
1817
802
 {}
1818
803
 
1819
804
inline bool CTypeQualified::isConst () const
1820
 
 { return _Const; }
 
805
 { return _QualConst; }
1821
806
inline bool CTypeQualified::isVolatile () const
1822
 
 { return _Volatile; }
 
807
 { return _QualVolatile; }
1823
808
inline bool CTypeQualified::isRestrict () const
1824
 
 { return _Restrict; }
 
809
 { return _QualRestrict; }
1825
810
 
1826
811
inline void CTypeQualified::isConst (bool v)
1827
 
 { _Const = v; }
 
812
 { _QualConst = v; }
1828
813
inline void CTypeQualified::isVolatile (bool v)
1829
 
 { _Volatile = v; }
 
814
 { _QualVolatile = v; }
1830
815
inline void CTypeQualified::isRestrict (bool v)
1831
 
 { _Restrict = v; }
 
816
 { _QualRestrict = v; }
1832
817
 
1833
818
 
1834
819
} // namespace Puma
1835
820
 
1836
821
#endif /* __CTypeQualified_h__ */
1837
822
 
1838
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
 
823
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
1839
824
// This file is part of PUMA.
1840
825
// Copyright (C) 1999-2003  The PUMA developer team.
1841
826
//                                                                
1866
851
 
1867
852
 
1868
853
 
1869
 
#line 1870 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
854
#line 855 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
1870
855
} // closed Puma
 
856
class CCExprResolve;
 
857
class CExprResolve;
1871
858
class WinIfExists;
1872
859
class WinImportHandler;
1873
860
class WinMacros;
1874
 
class CMatchSyntax;
1875
 
class ExtGnu;
 
861
class WinAsm;
 
862
class WinDeclSpecs;
 
863
class WinMemberExplSpec;
 
864
class WinTypeKeywords;
 
865
class WinFriend;
1876
866
class ExtAC;
1877
867
class ExtACBuilderCoupling;
1878
868
class ExtACSyntaxCoupling;
1879
869
class ExtACTree;
1880
870
class ExtACKeywords;
1881
 
class WinAsm;
1882
 
class WinDeclSpecs;
1883
 
class WinMemberExplSpec;
1884
 
class WinTypeKeywords;
 
871
class ExtGnu;
1885
872
class PragmaOnceUnitState;
1886
873
class PragmaOnce;
1887
 
class CCExprResolve;
1888
 
class CExprResolve;
 
874
class CMatchSyntax;
1889
875
namespace Puma {
1890
876
 
1891
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
 
877
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
1892
878
class CTypeAddress : public CTypeInfo {
1893
 
#line 1894 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
879
#line 880 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
880
  friend class ::CCExprResolve;
 
881
  friend class ::CExprResolve;
1894
882
  friend class ::WinIfExists;
1895
883
  friend class ::WinImportHandler;
1896
884
  friend class ::WinMacros;
1897
 
  friend class ::CMatchSyntax;
1898
 
  friend class ::ExtGnu;
 
885
  friend class ::WinAsm;
 
886
  friend class ::WinDeclSpecs;
 
887
  friend class ::WinMemberExplSpec;
 
888
  friend class ::WinTypeKeywords;
 
889
  friend class ::WinFriend;
1899
890
  friend class ::ExtAC;
1900
891
  friend class ::ExtACBuilderCoupling;
1901
892
  friend class ::ExtACSyntaxCoupling;
1902
893
  friend class ::ExtACTree;
1903
894
  friend class ::ExtACKeywords;
1904
 
  friend class ::WinAsm;
1905
 
  friend class ::WinDeclSpecs;
1906
 
  friend class ::WinMemberExplSpec;
1907
 
  friend class ::WinTypeKeywords;
 
895
  friend class ::ExtGnu;
1908
896
  friend class ::PragmaOnceUnitState;
1909
897
  friend class ::PragmaOnce;
1910
 
  friend class ::CCExprResolve;
1911
 
  friend class ::CExprResolve;
 
898
  friend class ::CMatchSyntax;
1912
899
 
1913
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
 
900
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
1914
901
 
1915
902
public:
1916
903
  CTypeAddress (CTypeInfo *);
1928
915
 
1929
916
#endif /* __CTypeAddress_h__ */
1930
917
 
1931
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
 
918
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
1932
919
// This file is part of PUMA.
1933
920
// Copyright (C) 1999-2003  The PUMA developer team.
1934
921
//                                                                
1959
946
 
1960
947
 
1961
948
 
1962
 
#line 1963 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
949
#line 950 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
1963
950
} // closed Puma
 
951
class CCExprResolve;
 
952
class CExprResolve;
1964
953
class WinIfExists;
1965
954
class WinImportHandler;
1966
955
class WinMacros;
1967
 
class CMatchSyntax;
1968
 
class ExtGnu;
 
956
class WinAsm;
 
957
class WinDeclSpecs;
 
958
class WinMemberExplSpec;
 
959
class WinTypeKeywords;
 
960
class WinFriend;
1969
961
class ExtAC;
1970
962
class ExtACBuilderCoupling;
1971
963
class ExtACSyntaxCoupling;
1972
964
class ExtACTree;
1973
965
class ExtACKeywords;
1974
 
class WinAsm;
1975
 
class WinDeclSpecs;
1976
 
class WinMemberExplSpec;
1977
 
class WinTypeKeywords;
 
966
class ExtGnu;
1978
967
class PragmaOnceUnitState;
1979
968
class PragmaOnce;
1980
 
class CCExprResolve;
1981
 
class CExprResolve;
 
969
class CMatchSyntax;
1982
970
namespace Puma {
1983
971
 
1984
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
 
972
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
1985
973
class CTypeBitField : public CTypeInfo {
1986
 
#line 1987 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
974
#line 975 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
975
  friend class ::CCExprResolve;
 
976
  friend class ::CExprResolve;
1987
977
  friend class ::WinIfExists;
1988
978
  friend class ::WinImportHandler;
1989
979
  friend class ::WinMacros;
1990
 
  friend class ::CMatchSyntax;
1991
 
  friend class ::ExtGnu;
 
980
  friend class ::WinAsm;
 
981
  friend class ::WinDeclSpecs;
 
982
  friend class ::WinMemberExplSpec;
 
983
  friend class ::WinTypeKeywords;
 
984
  friend class ::WinFriend;
1992
985
  friend class ::ExtAC;
1993
986
  friend class ::ExtACBuilderCoupling;
1994
987
  friend class ::ExtACSyntaxCoupling;
1995
988
  friend class ::ExtACTree;
1996
989
  friend class ::ExtACKeywords;
1997
 
  friend class ::WinAsm;
1998
 
  friend class ::WinDeclSpecs;
1999
 
  friend class ::WinMemberExplSpec;
2000
 
  friend class ::WinTypeKeywords;
 
990
  friend class ::ExtGnu;
2001
991
  friend class ::PragmaOnceUnitState;
2002
992
  friend class ::PragmaOnce;
2003
 
  friend class ::CCExprResolve;
2004
 
  friend class ::CExprResolve;
 
993
  friend class ::CMatchSyntax;
2005
994
 
2006
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
 
995
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
2007
996
 
2008
997
  long int _Size;
2009
998
 
2032
1021
 
2033
1022
#endif /* __CTypeBitField_h__ */
2034
1023
 
2035
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
 
1024
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
2036
1025
// This file is part of PUMA.
2037
1026
// Copyright (C) 1999-2003  The PUMA developer team.
2038
1027
//                                                                
2063
1052
 
2064
1053
 
2065
1054
 
2066
 
#line 2067 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
1055
#line 1056 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
2067
1056
} // closed Puma
 
1057
class CCExprResolve;
 
1058
class CExprResolve;
2068
1059
class WinIfExists;
2069
1060
class WinImportHandler;
2070
1061
class WinMacros;
2071
 
class CMatchSyntax;
2072
 
class ExtGnu;
 
1062
class WinAsm;
 
1063
class WinDeclSpecs;
 
1064
class WinMemberExplSpec;
 
1065
class WinTypeKeywords;
 
1066
class WinFriend;
2073
1067
class ExtAC;
2074
1068
class ExtACBuilderCoupling;
2075
1069
class ExtACSyntaxCoupling;
2076
1070
class ExtACTree;
2077
1071
class ExtACKeywords;
2078
 
class WinAsm;
2079
 
class WinDeclSpecs;
2080
 
class WinMemberExplSpec;
2081
 
class WinTypeKeywords;
 
1072
class ExtGnu;
2082
1073
class PragmaOnceUnitState;
2083
1074
class PragmaOnce;
2084
 
class CCExprResolve;
2085
 
class CExprResolve;
 
1075
class CMatchSyntax;
2086
1076
namespace Puma {
2087
1077
 
2088
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
 
1078
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
2089
1079
class CTypeArray : public CTypeInfo {
2090
 
#line 2091 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
1080
#line 1081 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
1081
  friend class ::CCExprResolve;
 
1082
  friend class ::CExprResolve;
2091
1083
  friend class ::WinIfExists;
2092
1084
  friend class ::WinImportHandler;
2093
1085
  friend class ::WinMacros;
2094
 
  friend class ::CMatchSyntax;
2095
 
  friend class ::ExtGnu;
 
1086
  friend class ::WinAsm;
 
1087
  friend class ::WinDeclSpecs;
 
1088
  friend class ::WinMemberExplSpec;
 
1089
  friend class ::WinTypeKeywords;
 
1090
  friend class ::WinFriend;
2096
1091
  friend class ::ExtAC;
2097
1092
  friend class ::ExtACBuilderCoupling;
2098
1093
  friend class ::ExtACSyntaxCoupling;
2099
1094
  friend class ::ExtACTree;
2100
1095
  friend class ::ExtACKeywords;
2101
 
  friend class ::WinAsm;
2102
 
  friend class ::WinDeclSpecs;
2103
 
  friend class ::WinMemberExplSpec;
2104
 
  friend class ::WinTypeKeywords;
 
1096
  friend class ::ExtGnu;
2105
1097
  friend class ::PragmaOnceUnitState;
2106
1098
  friend class ::PragmaOnce;
2107
 
  friend class ::CCExprResolve;
2108
 
  friend class ::CExprResolve;
 
1099
  friend class ::CMatchSyntax;
2109
1100
 
2110
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
 
1101
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
2111
1102
 
2112
1103
  long int _Size;
2113
1104
  bool _isFixed;
2114
1105
  CTypeQualified *_Quals;
2115
1106
  CTypeTemplateParam *_DepDim;
 
1107
  bool _hasDim;
2116
1108
 
2117
1109
protected:
2118
1110
  CTypeArray (CTypeInfo *, CTypeQualified *, TypeId);
2119
1111
  
2120
1112
public:
2121
 
  CTypeArray (CTypeInfo *, CTypeQualified * = 0);
 
1113
  CTypeArray (CTypeInfo *, CTypeQualified * = 0, bool has_dimension = false);
2122
1114
  ~CTypeArray ();
2123
1115
 
2124
1116
  void Dimension (long int);
2127
1119
  void isFixed (bool);
2128
1120
  bool isFixed () const;
2129
1121
  
 
1122
  void hasDimension (bool);
 
1123
  bool hasDimension () const;
 
1124
  
2130
1125
  CTypeQualified *Qualifiers () const;
2131
1126
  
2132
1127
  void DepDim (CTypeTemplateParam *);
2133
1128
  CTypeTemplateParam *DepDim () const;
2134
1129
};
2135
1130
 
2136
 
inline CTypeArray::CTypeArray (CTypeInfo *base, CTypeQualified *quals) :
 
1131
inline CTypeArray::CTypeArray (CTypeInfo *base, CTypeQualified *quals, bool has_dimension) :
2137
1132
  CTypeInfo (base, CTypeInfo::TYPE_ARRAY),
2138
1133
  _Size (0),
2139
1134
  _isFixed (false),
2140
1135
  _Quals (quals),
2141
 
  _DepDim (0)
 
1136
  _DepDim (0),
 
1137
  _hasDim (has_dimension)
2142
1138
 {}
2143
1139
inline CTypeArray::CTypeArray (CTypeInfo *base, CTypeQualified *quals, CTypeInfo::TypeId id) :
2144
1140
  CTypeInfo (base, id),
2145
1141
  _Size (0),
2146
1142
  _isFixed (false),
2147
1143
  _Quals (quals),
2148
 
  _DepDim (0)
 
1144
  _DepDim (0),
 
1145
  _hasDim (false)
2149
1146
 {}
2150
1147
inline CTypeArray::~CTypeArray ()
2151
1148
 { if (_Quals) CTypeInfo::Destroy (_Quals); }
2160
1157
inline bool CTypeArray::isFixed () const
2161
1158
 { return _isFixed; }
2162
1159
 
 
1160
inline void CTypeArray::hasDimension (bool v)
 
1161
 { _hasDim = v; }
 
1162
inline bool CTypeArray::hasDimension () const
 
1163
 { return _hasDim || _Size != 0; }
 
1164
 
2163
1165
inline CTypeQualified *CTypeArray::Qualifiers () const
2164
1166
 { return _Quals; }
2165
1167
 
2173
1175
 
2174
1176
#endif /* __CTypeArray_h__ */
2175
1177
 
2176
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
 
1178
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
2177
1179
// This file is part of PUMA.
2178
1180
// Copyright (C) 1999-2003  The PUMA developer team.
2179
1181
//                                                                
2204
1206
 
2205
1207
 
2206
1208
 
2207
 
#line 2208 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
1209
#line 1210 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
2208
1210
} // closed Puma
 
1211
class CCExprResolve;
 
1212
class CExprResolve;
2209
1213
class WinIfExists;
2210
1214
class WinImportHandler;
2211
1215
class WinMacros;
2212
 
class CMatchSyntax;
2213
 
class ExtGnu;
 
1216
class WinAsm;
 
1217
class WinDeclSpecs;
 
1218
class WinMemberExplSpec;
 
1219
class WinTypeKeywords;
 
1220
class WinFriend;
2214
1221
class ExtAC;
2215
1222
class ExtACBuilderCoupling;
2216
1223
class ExtACSyntaxCoupling;
2217
1224
class ExtACTree;
2218
1225
class ExtACKeywords;
2219
 
class WinAsm;
2220
 
class WinDeclSpecs;
2221
 
class WinMemberExplSpec;
2222
 
class WinTypeKeywords;
 
1226
class ExtGnu;
2223
1227
class PragmaOnceUnitState;
2224
1228
class PragmaOnce;
2225
 
class CCExprResolve;
2226
 
class CExprResolve;
 
1229
class CMatchSyntax;
2227
1230
namespace Puma {
2228
1231
 
2229
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
 
1232
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
2230
1233
class CTypeVarArray : public CTypeArray {
2231
 
#line 2232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
1234
#line 1235 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
1235
  friend class ::CCExprResolve;
 
1236
  friend class ::CExprResolve;
2232
1237
  friend class ::WinIfExists;
2233
1238
  friend class ::WinImportHandler;
2234
1239
  friend class ::WinMacros;
2235
 
  friend class ::CMatchSyntax;
2236
 
  friend class ::ExtGnu;
 
1240
  friend class ::WinAsm;
 
1241
  friend class ::WinDeclSpecs;
 
1242
  friend class ::WinMemberExplSpec;
 
1243
  friend class ::WinTypeKeywords;
 
1244
  friend class ::WinFriend;
2237
1245
  friend class ::ExtAC;
2238
1246
  friend class ::ExtACBuilderCoupling;
2239
1247
  friend class ::ExtACSyntaxCoupling;
2240
1248
  friend class ::ExtACTree;
2241
1249
  friend class ::ExtACKeywords;
2242
 
  friend class ::WinAsm;
2243
 
  friend class ::WinDeclSpecs;
2244
 
  friend class ::WinMemberExplSpec;
2245
 
  friend class ::WinTypeKeywords;
 
1250
  friend class ::ExtGnu;
2246
1251
  friend class ::PragmaOnceUnitState;
2247
1252
  friend class ::PragmaOnce;
2248
 
  friend class ::CCExprResolve;
2249
 
  friend class ::CExprResolve;
 
1253
  friend class ::CMatchSyntax;
2250
1254
 
2251
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
 
1255
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
2252
1256
 
2253
1257
public:
2254
1258
  CTypeVarArray (CTypeInfo *, CTypeQualified * = 0);
2266
1270
 
2267
1271
#endif /* __CTypeVarArray_h__ */
2268
1272
 
2269
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
 
1273
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
2270
1274
// This file is part of PUMA.
2271
1275
// Copyright (C) 1999-2003  The PUMA developer team.
2272
1276
//                                                                
2297
1301
 
2298
1302
 
2299
1303
 
2300
 
#line 2301 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
1304
#line 1305 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
2301
1305
} // closed Puma
 
1306
class CCExprResolve;
 
1307
class CExprResolve;
2302
1308
class WinIfExists;
2303
1309
class WinImportHandler;
2304
1310
class WinMacros;
2305
 
class CMatchSyntax;
2306
 
class ExtGnu;
 
1311
class WinAsm;
 
1312
class WinDeclSpecs;
 
1313
class WinMemberExplSpec;
 
1314
class WinTypeKeywords;
 
1315
class WinFriend;
2307
1316
class ExtAC;
2308
1317
class ExtACBuilderCoupling;
2309
1318
class ExtACSyntaxCoupling;
2310
1319
class ExtACTree;
2311
1320
class ExtACKeywords;
2312
 
class WinAsm;
2313
 
class WinDeclSpecs;
2314
 
class WinMemberExplSpec;
2315
 
class WinTypeKeywords;
 
1321
class ExtGnu;
2316
1322
class PragmaOnceUnitState;
2317
1323
class PragmaOnce;
2318
 
class CCExprResolve;
2319
 
class CExprResolve;
 
1324
class CMatchSyntax;
2320
1325
namespace Puma {
2321
1326
 
2322
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
 
1327
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
2323
1328
class CTypePointer : public CTypeInfo {
2324
 
#line 2325 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
1329
#line 1330 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
1330
  friend class ::CCExprResolve;
 
1331
  friend class ::CExprResolve;
2325
1332
  friend class ::WinIfExists;
2326
1333
  friend class ::WinImportHandler;
2327
1334
  friend class ::WinMacros;
2328
 
  friend class ::CMatchSyntax;
2329
 
  friend class ::ExtGnu;
 
1335
  friend class ::WinAsm;
 
1336
  friend class ::WinDeclSpecs;
 
1337
  friend class ::WinMemberExplSpec;
 
1338
  friend class ::WinTypeKeywords;
 
1339
  friend class ::WinFriend;
2330
1340
  friend class ::ExtAC;
2331
1341
  friend class ::ExtACBuilderCoupling;
2332
1342
  friend class ::ExtACSyntaxCoupling;
2333
1343
  friend class ::ExtACTree;
2334
1344
  friend class ::ExtACKeywords;
2335
 
  friend class ::WinAsm;
2336
 
  friend class ::WinDeclSpecs;
2337
 
  friend class ::WinMemberExplSpec;
2338
 
  friend class ::WinTypeKeywords;
 
1345
  friend class ::ExtGnu;
2339
1346
  friend class ::PragmaOnceUnitState;
2340
1347
  friend class ::PragmaOnce;
2341
 
  friend class ::CCExprResolve;
2342
 
  friend class ::CExprResolve;
 
1348
  friend class ::CMatchSyntax;
2343
1349
 
2344
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
 
1350
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
2345
1351
 
2346
1352
protected:
2347
1353
  CTypePointer (CTypeInfo *, CTypeInfo::TypeId);
2365
1371
 
2366
1372
#endif /* __CTypePointer_h__ */
2367
1373
 
2368
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
 
1374
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
2369
1375
// This file is part of PUMA.
2370
1376
// Copyright (C) 1999-2003  The PUMA developer team.
2371
1377
//                                                                
2400
1406
class CTemplateParamInfo;
2401
1407
 
2402
1408
 
2403
 
#line 2404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
1409
#line 1410 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
2404
1410
} // closed Puma
 
1411
class CCExprResolve;
 
1412
class CExprResolve;
2405
1413
class WinIfExists;
2406
1414
class WinImportHandler;
2407
1415
class WinMacros;
2408
 
class CMatchSyntax;
2409
 
class ExtGnu;
 
1416
class WinAsm;
 
1417
class WinDeclSpecs;
 
1418
class WinMemberExplSpec;
 
1419
class WinTypeKeywords;
 
1420
class WinFriend;
2410
1421
class ExtAC;
2411
1422
class ExtACBuilderCoupling;
2412
1423
class ExtACSyntaxCoupling;
2413
1424
class ExtACTree;
2414
1425
class ExtACKeywords;
2415
 
class WinAsm;
2416
 
class WinDeclSpecs;
2417
 
class WinMemberExplSpec;
2418
 
class WinTypeKeywords;
 
1426
class ExtGnu;
2419
1427
class PragmaOnceUnitState;
2420
1428
class PragmaOnce;
2421
 
class CCExprResolve;
2422
 
class CExprResolve;
 
1429
class CMatchSyntax;
2423
1430
namespace Puma {
2424
1431
 
2425
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
 
1432
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
2426
1433
class CTypeMemberPointer : public CTypePointer {
2427
 
#line 2428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
1434
#line 1435 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
1435
  friend class ::CCExprResolve;
 
1436
  friend class ::CExprResolve;
2428
1437
  friend class ::WinIfExists;
2429
1438
  friend class ::WinImportHandler;
2430
1439
  friend class ::WinMacros;
2431
 
  friend class ::CMatchSyntax;
2432
 
  friend class ::ExtGnu;
 
1440
  friend class ::WinAsm;
 
1441
  friend class ::WinDeclSpecs;
 
1442
  friend class ::WinMemberExplSpec;
 
1443
  friend class ::WinTypeKeywords;
 
1444
  friend class ::WinFriend;
2433
1445
  friend class ::ExtAC;
2434
1446
  friend class ::ExtACBuilderCoupling;
2435
1447
  friend class ::ExtACSyntaxCoupling;
2436
1448
  friend class ::ExtACTree;
2437
1449
  friend class ::ExtACKeywords;
2438
 
  friend class ::WinAsm;
2439
 
  friend class ::WinDeclSpecs;
2440
 
  friend class ::WinMemberExplSpec;
2441
 
  friend class ::WinTypeKeywords;
 
1450
  friend class ::ExtGnu;
2442
1451
  friend class ::PragmaOnceUnitState;
2443
1452
  friend class ::PragmaOnce;
2444
 
  friend class ::CCExprResolve;
2445
 
  friend class ::CExprResolve;
 
1453
  friend class ::CMatchSyntax;
2446
1454
 
2447
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
 
1455
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
2448
1456
 
2449
1457
  CObjectInfo *_Class;
2450
1458
 
2468
1476
 
2469
1477
#endif /* __CTypeMemberPointer_h__ */
2470
1478
 
2471
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
1479
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
2472
1480
// This file is part of PUMA.
2473
1481
// Copyright (C) 1999-2003  The PUMA developer team.
2474
1482
//                                                                
2496
1504
#endif
2497
1505
 
2498
1506
 
2499
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
1507
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
2500
1508
// This file is part of PUMA.
2501
1509
// Copyright (C) 1999-2003  The PUMA developer team.
2502
1510
//                                                                
2519
1527
#define __CTypeList_h__
2520
1528
 
2521
1529
 
2522
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
 
1530
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Array.h"
2523
1531
// This file is part of PUMA.
2524
1532
// Copyright (C) 1999-2003  The PUMA developer team.
2525
1533
//                                                                
2545
1553
 
2546
1554
namespace Puma {
2547
1555
 
2548
 
 
2549
 
#line 2550 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
2550
 
} // closed Puma
2551
 
class WinIfExists;
2552
 
class WinImportHandler;
2553
 
class WinMacros;
2554
 
class CMatchSyntax;
2555
 
class ExtGnu;
2556
 
class ExtAC;
2557
 
class ExtACBuilderCoupling;
2558
 
class ExtACSyntaxCoupling;
2559
 
class ExtACTree;
2560
 
class ExtACKeywords;
2561
 
class WinAsm;
2562
 
class WinDeclSpecs;
2563
 
class WinMemberExplSpec;
2564
 
class WinTypeKeywords;
2565
 
class PragmaOnceUnitState;
2566
 
class PragmaOnce;
2567
 
class CCExprResolve;
2568
 
class CExprResolve;
2569
 
namespace Puma {
2570
 
 
2571
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
2572
1556
template <class Item>
2573
1557
class Array {
2574
 
#line 2575 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
2575
 
  friend class ::WinIfExists;
2576
 
  friend class ::WinImportHandler;
2577
 
  friend class ::WinMacros;
2578
 
  friend class ::CMatchSyntax;
2579
 
  friend class ::ExtGnu;
2580
 
  friend class ::ExtAC;
2581
 
  friend class ::ExtACBuilderCoupling;
2582
 
  friend class ::ExtACSyntaxCoupling;
2583
 
  friend class ::ExtACTree;
2584
 
  friend class ::ExtACKeywords;
2585
 
  friend class ::WinAsm;
2586
 
  friend class ::WinDeclSpecs;
2587
 
  friend class ::WinMemberExplSpec;
2588
 
  friend class ::WinTypeKeywords;
2589
 
  friend class ::PragmaOnceUnitState;
2590
 
  friend class ::PragmaOnce;
2591
 
  friend class ::CCExprResolve;
2592
 
  friend class ::CExprResolve;
2593
 
 
2594
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
2595
 
 
2596
 
   protected:
2597
 
      static const long default_init_size = 5;
2598
 
      static const long default_increment = 5;
2599
 
 
2600
 
   public:
2601
 
      Array (long is = default_init_size, long incr = default_increment);
2602
 
      Array (const Array<Item>& array);
2603
 
      Array<Item>& operator =(const Array<Item>&);
2604
 
      ~Array ();
2605
 
      void append (const Item& item);
2606
 
      void insert (long index, const Item& item);
2607
 
      void prepend (const Item& item);
2608
 
      void remove (long index);
2609
 
      void reset ();
2610
 
      Item& get (long index);
2611
 
      Item& operator[] (long index);
2612
 
      Item fetch (long index) const;
2613
 
      Item& lookup (long index) const;
2614
 
      long length () const;
2615
 
 
2616
 
   private:
2617
 
      Item* data;
2618
 
      long size;
2619
 
      long count;
2620
 
      long increment;
 
1558
protected:
 
1559
  static const long default_init_size = 5;
 
1560
  static const long default_increment = 5;
 
1561
 
 
1562
public:
 
1563
  Array (long is = default_init_size, long incr = default_increment);
 
1564
  Array (const Array<Item>& array);
 
1565
  Array<Item>& operator =(const Array<Item>&);
 
1566
  ~Array ();
 
1567
  void append (const Item& item);
 
1568
  void insert (long index, const Item& item);
 
1569
  void prepend (const Item& item);
 
1570
  void remove (long index);
 
1571
  void reset ();
 
1572
  Item& get (long index);
 
1573
  Item& operator[] (long index);
 
1574
  Item fetch (long index) const;
 
1575
  Item& lookup (long index) const;
 
1576
  long length () const;
 
1577
 
 
1578
private:
 
1579
  Item* data;
 
1580
  long size;
 
1581
  long count;
 
1582
  long increment;
2621
1583
      
2622
 
      void check (long wanted);
2623
 
 };
2624
 
 
2625
 
template <class Item>
2626
 
inline Array<Item>::Array (long is, long incr)
2627
 
 {
2628
 
   count     = 0; 
2629
 
   size      = is;
2630
 
   increment = incr;
2631
 
   data      = new Item[size];
2632
 
 }
2633
 
 
2634
 
template <class Item>
2635
 
Array<Item>::Array (const Array<Item>& array)
2636
 
 {
2637
 
   count = 0;
2638
 
   size  = array.size;
2639
 
   data  = new Item[size];
2640
 
   increment = array.increment;
2641
 
 
2642
 
   for (int pos = 0; pos < array.length (); pos++)
2643
 
      append (array.lookup (pos));
2644
 
 }
2645
 
 
2646
 
template <class Item>
2647
 
Array<Item>& Array<Item>::operator =(const Array<Item>& array)
2648
 
 {
2649
 
   if (data)
2650
 
      delete[] data;
2651
 
   count = 0;
2652
 
   size  = array.size;
2653
 
   data  = new Item[size];
2654
 
   increment = array.increment;
2655
 
 
2656
 
   for (int pos = 0; pos < array.length (); pos++)
2657
 
      append (array.lookup (pos));
2658
 
   return *this;
2659
 
 }
2660
 
 
2661
 
template <class Item>
2662
 
Array<Item>::~Array ()
2663
 
 {
2664
 
   if (data)
2665
 
      delete[] data;
2666
 
 }
2667
 
 
2668
 
template <class Item>
2669
 
inline void Array<Item>::check (long wanted)
2670
 
 {
2671
 
   if (wanted >= size)
2672
 
    {
2673
 
      Item* new_data;
2674
 
 
2675
 
      while (wanted >= size)
2676
 
      {
2677
 
         size += increment;
2678
 
         increment*=2;
2679
 
      }
2680
 
      new_data = new Item[size];
2681
 
      for (int pos = 0; pos < count; pos++)
2682
 
         new_data[pos] = data[pos];
2683
 
      delete[] data;
2684
 
      data = new_data;
2685
 
    }
2686
 
 }
 
1584
  void grow (long wanted);
 
1585
};
 
1586
 
 
1587
template <class Item>
 
1588
inline Array<Item>::Array (long is, long incr) {
 
1589
  count     = 0; 
 
1590
  size      = is;
 
1591
  increment = incr;
 
1592
  data      = 0;
 
1593
}
 
1594
 
 
1595
template <class Item>
 
1596
Array<Item>::Array (const Array<Item>& array) {
 
1597
  count     = 0;
 
1598
  size      = array.size;
 
1599
  increment = array.increment;
 
1600
  
 
1601
  if (size && array.data) {
 
1602
    data = new Item[size];
 
1603
    for (; count < array.count; count++) {
 
1604
      data[count] = array.data[count];
 
1605
    }
 
1606
  } else
 
1607
    data = 0;
 
1608
}
 
1609
 
 
1610
template <class Item>
 
1611
Array<Item>& Array<Item>::operator =(const Array<Item>& array) {
 
1612
  if (data)
 
1613
    delete[] data;
 
1614
 
 
1615
  count     = 0;
 
1616
  size      = array.size;
 
1617
  increment = array.increment;
 
1618
 
 
1619
  if (size && array.data) {
 
1620
    data = new Item[size];
 
1621
    for (; count < array.count; count++) {
 
1622
      data[count] = array.data[count];
 
1623
    }
 
1624
  } else
 
1625
    data = 0;
 
1626
  
 
1627
  return *this;
 
1628
}
 
1629
 
 
1630
template <class Item>
 
1631
Array<Item>::~Array () {
 
1632
  if (data)
 
1633
    delete[] data;
 
1634
}
 
1635
 
 
1636
template <class Item>
 
1637
inline void Array<Item>::grow (long wanted) {
 
1638
  do {
 
1639
    size += increment;
 
1640
    increment *= 2;
 
1641
  } while (wanted >= size);
 
1642
 
 
1643
  if (data) {
 
1644
    Item* new_data = new Item[size];
 
1645
    for (long i = 0; i < count; i++) {
 
1646
      new_data[i] = data[i];
 
1647
    }
 
1648
    delete[] data;
 
1649
    data = new_data;
 
1650
  } else
 
1651
    data = new Item[size];
 
1652
}
2687
1653
   
2688
1654
template <class Item>
2689
 
inline void Array<Item>::append (const Item& item)
2690
 
 {
2691
 
   check (count);
2692
 
   data[count++] = item;
2693
 
 }
2694
 
 
2695
 
template <class Item>
2696
 
void Array<Item>::prepend (const Item& item)
2697
 
 {
2698
 
   insert (0, item);
2699
 
 }
2700
 
 
2701
 
template <class Item>
2702
 
void Array<Item>::insert (long index, const Item& item)
2703
 
 {
2704
 
   check (count);
2705
 
   for (int pos = count; pos > index; pos--)
2706
 
      data[pos] = data[pos - 1];
2707
 
   data[index] = item;
2708
 
   count++;
2709
 
 }
2710
 
 
2711
 
template <class Item>
2712
 
inline Item& Array<Item>::get (long index)
2713
 
 {
2714
 
   check (index);
2715
 
   if (index >= count)
2716
 
      count = index + 1;
2717
 
   return data[index];
2718
 
 }
2719
 
 
2720
 
template <class Item>
2721
 
inline Item& Array<Item>::operator[] (long index)
2722
 
 {
2723
 
   return get (index);
2724
 
 }
2725
 
 
2726
 
template <class Item>
2727
 
inline Item Array<Item>::fetch (long index) const
2728
 
 {
2729
 
   assert(index < count);
2730
 
   return data[index];
2731
 
 }
2732
 
 
2733
 
template <class Item>
2734
 
inline long Array<Item>::length () const
2735
 
 {
2736
 
   return count;
2737
 
 }
2738
 
 
2739
 
template <class Item>
2740
 
inline void Array<Item>::remove (long index)
2741
 
 {
2742
 
   if (index < count && count > 0)
2743
 
    {
2744
 
      for (int pos = index; pos < count - 1; pos++)
2745
 
         data[pos] = data[pos + 1];
2746
 
      count--;
2747
 
    }
2748
 
 }
 
1655
inline void Array<Item>::append (const Item& item) {
 
1656
  if (count >= size || ! data) {
 
1657
    grow (count);
 
1658
  }
 
1659
  data[count++] = item;
 
1660
}
 
1661
 
 
1662
template <class Item>
 
1663
void Array<Item>::prepend (const Item& item) {
 
1664
  insert (0, item);
 
1665
}
 
1666
 
 
1667
template <class Item>
 
1668
void Array<Item>::insert (long index, const Item& item) {
 
1669
  if (count >= size || ! data) {
 
1670
    grow (count);
 
1671
  }
 
1672
  for (long i = count; i > index; i--)
 
1673
    data[i] = data[i - 1];
 
1674
  data[index] = item;
 
1675
  count++;
 
1676
}
 
1677
 
 
1678
template <class Item>
 
1679
inline Item& Array<Item>::get (long index) {
 
1680
  if (index >= size || ! data) {
 
1681
    grow (index);
 
1682
  }
 
1683
  if (index >= count)
 
1684
    count = index + 1;
 
1685
  return data[index];
 
1686
}
 
1687
 
 
1688
template <class Item>
 
1689
inline Item& Array<Item>::operator[] (long index) {
 
1690
  return get (index);
 
1691
}
 
1692
 
 
1693
template <class Item>
 
1694
inline Item Array<Item>::fetch (long index) const {
 
1695
  assert(index < count && data);
 
1696
  return data[index];
 
1697
}
 
1698
 
 
1699
template <class Item>
 
1700
inline long Array<Item>::length () const {
 
1701
  return count;
 
1702
}
 
1703
 
 
1704
template <class Item>
 
1705
inline void Array<Item>::remove (long index) {
 
1706
  if (index < count && count > 0) {
 
1707
    for (long i = index; i < count - 1; i++)
 
1708
      data[i] = data[i + 1];
 
1709
    count--;
 
1710
  }
 
1711
}
2749
1712
 
2750
1713
#ifndef __puma
2751
1714
template <>
2752
1715
inline void Array<int>::reset () {
2753
 
   count = 0; 
 
1716
  count = 0; 
2754
1717
}
2755
1718
#endif
2756
1719
 
2757
1720
template <class Item>
2758
 
void Array<Item>::reset ()
2759
 
 {
2760
 
   if (data)
2761
 
      delete[] data;
2762
 
   count     = 0; 
2763
 
   size      = default_init_size;
2764
 
   increment = default_increment;
2765
 
   data      = new Item[size];
2766
 
 }
 
1721
void Array<Item>::reset () {
 
1722
  if (data)
 
1723
    delete[] data;
 
1724
    
 
1725
  count     = 0; 
 
1726
  size      = default_init_size;
 
1727
  increment = default_increment;
 
1728
  data      = new Item[size];
 
1729
}
2767
1730
 
2768
1731
template <class Item>
2769
 
inline Item& Array<Item>::lookup (long index) const
2770
 
 {
2771
 
   assert(index >= 0 && index < count);
2772
 
//   if (index >= count) index = count - 1; 
2773
 
//   if (index < 0)      index = 0;
2774
 
   return data[index];
2775
 
 }
 
1732
inline Item& Array<Item>::lookup (long index) const {
 
1733
  assert(index >= 0 && index < count);
 
1734
  return data[index];
 
1735
}
2776
1736
 
2777
1737
 
2778
1738
} // namespace Puma
2806
1766
  void remove (long idx)                   { Base::remove (idx); }
2807
1767
  void reset ()                            { Base::reset (); }
2808
1768
 
2809
 
  Item *&get (long idx)          { return (Item*&)Base::get (idx); }
2810
 
  Item *&operator[] (long idx)   { return (Item*&)Base::operator[] (idx); }
2811
 
  Item *fetch (long idx) const   { return (Item*)Base::fetch (idx); }
2812
 
  Item *&lookup (long idx) const { return (Item*&)Base::lookup (idx); }
2813
 
  long length () const           { return Base::length (); }
 
1769
  Item *&get (long idx)                    { return (Item*&)Base::get (idx); }
 
1770
  Item *&operator[] (long idx)             { return (Item*&)Base::operator[] (idx); }
 
1771
  Item *fetch (long idx) const             { return (Item*)Base::fetch (idx); }
 
1772
  Item *&lookup (long idx) const           { return (Item*&)Base::lookup (idx); }
 
1773
  long length () const                     { return Base::length (); }
2814
1774
};
2815
1775
 
2816
1776
 
2820
1780
 
2821
1781
#endif /* __array_h__ */
2822
1782
 
2823
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
1783
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
2824
1784
namespace Puma {
2825
1785
 
2826
1786
 
2828
1788
class CT_ArgDeclList;
2829
1789
 
2830
1790
 
2831
 
#line 2832 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
1791
#line 1792 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
2832
1792
} // closed Puma
 
1793
class CCExprResolve;
 
1794
class CExprResolve;
2833
1795
class WinIfExists;
2834
1796
class WinImportHandler;
2835
1797
class WinMacros;
2836
 
class CMatchSyntax;
2837
 
class ExtGnu;
 
1798
class WinAsm;
 
1799
class WinDeclSpecs;
 
1800
class WinMemberExplSpec;
 
1801
class WinTypeKeywords;
 
1802
class WinFriend;
2838
1803
class ExtAC;
2839
1804
class ExtACBuilderCoupling;
2840
1805
class ExtACSyntaxCoupling;
2841
1806
class ExtACTree;
2842
1807
class ExtACKeywords;
2843
 
class WinAsm;
2844
 
class WinDeclSpecs;
2845
 
class WinMemberExplSpec;
2846
 
class WinTypeKeywords;
 
1808
class ExtGnu;
2847
1809
class PragmaOnceUnitState;
2848
1810
class PragmaOnce;
2849
 
class CCExprResolve;
2850
 
class CExprResolve;
 
1811
class CMatchSyntax;
2851
1812
namespace Puma {
2852
1813
 
2853
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
1814
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
2854
1815
class CTypeList {
2855
 
#line 2856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
1816
#line 1817 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
1817
  friend class ::CCExprResolve;
 
1818
  friend class ::CExprResolve;
2856
1819
  friend class ::WinIfExists;
2857
1820
  friend class ::WinImportHandler;
2858
1821
  friend class ::WinMacros;
2859
 
  friend class ::CMatchSyntax;
2860
 
  friend class ::ExtGnu;
 
1822
  friend class ::WinAsm;
 
1823
  friend class ::WinDeclSpecs;
 
1824
  friend class ::WinMemberExplSpec;
 
1825
  friend class ::WinTypeKeywords;
 
1826
  friend class ::WinFriend;
2861
1827
  friend class ::ExtAC;
2862
1828
  friend class ::ExtACBuilderCoupling;
2863
1829
  friend class ::ExtACSyntaxCoupling;
2864
1830
  friend class ::ExtACTree;
2865
1831
  friend class ::ExtACKeywords;
2866
 
  friend class ::WinAsm;
2867
 
  friend class ::WinDeclSpecs;
2868
 
  friend class ::WinMemberExplSpec;
2869
 
  friend class ::WinTypeKeywords;
 
1832
  friend class ::ExtGnu;
2870
1833
  friend class ::PragmaOnceUnitState;
2871
1834
  friend class ::PragmaOnce;
2872
 
  friend class ::CCExprResolve;
2873
 
  friend class ::CExprResolve;
 
1835
  friend class ::CMatchSyntax;
2874
1836
 
2875
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
1837
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
2876
1838
 
2877
1839
  Array<CTypeInfo*> _List;
2878
1840
  CT_ArgDeclList *_ArgumentList;
2920
1882
 
2921
1883
#endif /* __CTypeList_h__ */
2922
1884
 
2923
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
1885
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
2924
1886
namespace Puma {
2925
1887
 
2926
1888
 
2928
1890
class CRecord;
2929
1891
 
2930
1892
 
2931
 
#line 2932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
1893
#line 1894 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
2932
1894
} // closed Puma
 
1895
class CCExprResolve;
 
1896
class CExprResolve;
2933
1897
class WinIfExists;
2934
1898
class WinImportHandler;
2935
1899
class WinMacros;
2936
 
class CMatchSyntax;
2937
 
class ExtGnu;
 
1900
class WinAsm;
 
1901
class WinDeclSpecs;
 
1902
class WinMemberExplSpec;
 
1903
class WinTypeKeywords;
 
1904
class WinFriend;
2938
1905
class ExtAC;
2939
1906
class ExtACBuilderCoupling;
2940
1907
class ExtACSyntaxCoupling;
2941
1908
class ExtACTree;
2942
1909
class ExtACKeywords;
2943
 
class WinAsm;
2944
 
class WinDeclSpecs;
2945
 
class WinMemberExplSpec;
2946
 
class WinTypeKeywords;
 
1910
class ExtGnu;
2947
1911
class PragmaOnceUnitState;
2948
1912
class PragmaOnce;
2949
 
class CCExprResolve;
2950
 
class CExprResolve;
 
1913
class CMatchSyntax;
2951
1914
namespace Puma {
2952
1915
 
2953
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
1916
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
2954
1917
class CTypeFunction : public CTypeQualified {
2955
 
#line 2956 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
1918
#line 1919 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
1919
  friend class ::CCExprResolve;
 
1920
  friend class ::CExprResolve;
2956
1921
  friend class ::WinIfExists;
2957
1922
  friend class ::WinImportHandler;
2958
1923
  friend class ::WinMacros;
2959
 
  friend class ::CMatchSyntax;
2960
 
  friend class ::ExtGnu;
 
1924
  friend class ::WinAsm;
 
1925
  friend class ::WinDeclSpecs;
 
1926
  friend class ::WinMemberExplSpec;
 
1927
  friend class ::WinTypeKeywords;
 
1928
  friend class ::WinFriend;
2961
1929
  friend class ::ExtAC;
2962
1930
  friend class ::ExtACBuilderCoupling;
2963
1931
  friend class ::ExtACSyntaxCoupling;
2964
1932
  friend class ::ExtACTree;
2965
1933
  friend class ::ExtACKeywords;
2966
 
  friend class ::WinAsm;
2967
 
  friend class ::WinDeclSpecs;
2968
 
  friend class ::WinMemberExplSpec;
2969
 
  friend class ::WinTypeKeywords;
 
1934
  friend class ::ExtGnu;
2970
1935
  friend class ::PragmaOnceUnitState;
2971
1936
  friend class ::PragmaOnce;
2972
 
  friend class ::CCExprResolve;
2973
 
  friend class ::CExprResolve;
 
1937
  friend class ::CMatchSyntax;
2974
1938
 
2975
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
1939
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
2976
1940
 
2977
1941
  CTypeList *_ArgTypes;
2978
1942
  CFunctionInfo *_Function;
3020
1984
 
3021
1985
#endif /* __CTypeFunction_h__ */
3022
1986
 
3023
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
 
1987
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
3024
1988
// This file is part of PUMA.
3025
1989
// Copyright (C) 1999-2003  The PUMA developer team.
3026
1990
//                                                                
3053
2017
class CEnumInfo;
3054
2018
 
3055
2019
 
3056
 
#line 3057 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
2020
#line 2021 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
3057
2021
} // closed Puma
 
2022
class CCExprResolve;
 
2023
class CExprResolve;
3058
2024
class WinIfExists;
3059
2025
class WinImportHandler;
3060
2026
class WinMacros;
3061
 
class CMatchSyntax;
3062
 
class ExtGnu;
 
2027
class WinAsm;
 
2028
class WinDeclSpecs;
 
2029
class WinMemberExplSpec;
 
2030
class WinTypeKeywords;
 
2031
class WinFriend;
3063
2032
class ExtAC;
3064
2033
class ExtACBuilderCoupling;
3065
2034
class ExtACSyntaxCoupling;
3066
2035
class ExtACTree;
3067
2036
class ExtACKeywords;
3068
 
class WinAsm;
3069
 
class WinDeclSpecs;
3070
 
class WinMemberExplSpec;
3071
 
class WinTypeKeywords;
 
2037
class ExtGnu;
3072
2038
class PragmaOnceUnitState;
3073
2039
class PragmaOnce;
3074
 
class CCExprResolve;
3075
 
class CExprResolve;
 
2040
class CMatchSyntax;
3076
2041
namespace Puma {
3077
2042
 
3078
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
 
2043
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
3079
2044
class CTypeEnum : public CTypeInfo {
3080
 
#line 3081 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
2045
#line 2046 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
2046
  friend class ::CCExprResolve;
 
2047
  friend class ::CExprResolve;
3081
2048
  friend class ::WinIfExists;
3082
2049
  friend class ::WinImportHandler;
3083
2050
  friend class ::WinMacros;
3084
 
  friend class ::CMatchSyntax;
3085
 
  friend class ::ExtGnu;
 
2051
  friend class ::WinAsm;
 
2052
  friend class ::WinDeclSpecs;
 
2053
  friend class ::WinMemberExplSpec;
 
2054
  friend class ::WinTypeKeywords;
 
2055
  friend class ::WinFriend;
3086
2056
  friend class ::ExtAC;
3087
2057
  friend class ::ExtACBuilderCoupling;
3088
2058
  friend class ::ExtACSyntaxCoupling;
3089
2059
  friend class ::ExtACTree;
3090
2060
  friend class ::ExtACKeywords;
3091
 
  friend class ::WinAsm;
3092
 
  friend class ::WinDeclSpecs;
3093
 
  friend class ::WinMemberExplSpec;
3094
 
  friend class ::WinTypeKeywords;
 
2061
  friend class ::ExtGnu;
3095
2062
  friend class ::PragmaOnceUnitState;
3096
2063
  friend class ::PragmaOnce;
3097
 
  friend class ::CCExprResolve;
3098
 
  friend class ::CExprResolve;
 
2064
  friend class ::CMatchSyntax;
3099
2065
 
3100
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
 
2066
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
3101
2067
 
3102
2068
  CEnumInfo *_Enum;
3103
2069
 
3107
2073
 
3108
2074
  CEnumInfo *EnumInfo () const;
3109
2075
  bool isComplete (unsigned long = 0) const;
 
2076
  
 
2077
  CTypeInfo *UnderlyingType () const;
3110
2078
};
3111
2079
 
3112
2080
inline CTypeEnum::CTypeEnum (CEnumInfo *e) :
3118
2086
 
3119
2087
inline CEnumInfo *CTypeEnum::EnumInfo () const 
3120
2088
 { return _Enum; }
3121
 
 
 
2089
 
3122
2090
 
3123
2091
} // namespace Puma
3124
2092
 
3125
2093
#endif /* __CTypeEnum_h__ */
3126
2094
 
3127
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
 
2095
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
3128
2096
// This file is part of PUMA.
3129
2097
// Copyright (C) 1999-2003  The PUMA developer team.
3130
2098
//                                                                
3157
2125
class CRecord;
3158
2126
 
3159
2127
 
3160
 
#line 3161 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
2128
#line 2129 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
3161
2129
} // closed Puma
 
2130
class CCExprResolve;
 
2131
class CExprResolve;
3162
2132
class WinIfExists;
3163
2133
class WinImportHandler;
3164
2134
class WinMacros;
3165
 
class CMatchSyntax;
3166
 
class ExtGnu;
 
2135
class WinAsm;
 
2136
class WinDeclSpecs;
 
2137
class WinMemberExplSpec;
 
2138
class WinTypeKeywords;
 
2139
class WinFriend;
3167
2140
class ExtAC;
3168
2141
class ExtACBuilderCoupling;
3169
2142
class ExtACSyntaxCoupling;
3170
2143
class ExtACTree;
3171
2144
class ExtACKeywords;
3172
 
class WinAsm;
3173
 
class WinDeclSpecs;
3174
 
class WinMemberExplSpec;
3175
 
class WinTypeKeywords;
 
2145
class ExtGnu;
3176
2146
class PragmaOnceUnitState;
3177
2147
class PragmaOnce;
3178
 
class CCExprResolve;
3179
 
class CExprResolve;
 
2148
class CMatchSyntax;
3180
2149
namespace Puma {
3181
2150
 
3182
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
 
2151
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
3183
2152
class CTypeRecord : public CTypeInfo {
3184
 
#line 3185 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
2153
#line 2154 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
2154
  friend class ::CCExprResolve;
 
2155
  friend class ::CExprResolve;
3185
2156
  friend class ::WinIfExists;
3186
2157
  friend class ::WinImportHandler;
3187
2158
  friend class ::WinMacros;
3188
 
  friend class ::CMatchSyntax;
3189
 
  friend class ::ExtGnu;
 
2159
  friend class ::WinAsm;
 
2160
  friend class ::WinDeclSpecs;
 
2161
  friend class ::WinMemberExplSpec;
 
2162
  friend class ::WinTypeKeywords;
 
2163
  friend class ::WinFriend;
3190
2164
  friend class ::ExtAC;
3191
2165
  friend class ::ExtACBuilderCoupling;
3192
2166
  friend class ::ExtACSyntaxCoupling;
3193
2167
  friend class ::ExtACTree;
3194
2168
  friend class ::ExtACKeywords;
3195
 
  friend class ::WinAsm;
3196
 
  friend class ::WinDeclSpecs;
3197
 
  friend class ::WinMemberExplSpec;
3198
 
  friend class ::WinTypeKeywords;
 
2169
  friend class ::ExtGnu;
3199
2170
  friend class ::PragmaOnceUnitState;
3200
2171
  friend class ::PragmaOnce;
3201
 
  friend class ::CCExprResolve;
3202
 
  friend class ::CExprResolve;
 
2172
  friend class ::CMatchSyntax;
3203
2173
 
3204
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
 
2174
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
3205
2175
 
3206
2176
  bool _hasConstMember;
3207
2177
 
3256
2226
 
3257
2227
#endif /* __CTypeRecord_h__ */
3258
2228
 
3259
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
 
2229
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
3260
2230
// This file is part of PUMA.
3261
2231
// Copyright (C) 1999-2003  The PUMA developer team.
3262
2232
//                                                                
3290
2260
class CRecord;
3291
2261
 
3292
2262
 
3293
 
#line 3294 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
2263
#line 2264 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
3294
2264
} // closed Puma
 
2265
class CCExprResolve;
 
2266
class CExprResolve;
3295
2267
class WinIfExists;
3296
2268
class WinImportHandler;
3297
2269
class WinMacros;
3298
 
class CMatchSyntax;
3299
 
class ExtGnu;
 
2270
class WinAsm;
 
2271
class WinDeclSpecs;
 
2272
class WinMemberExplSpec;
 
2273
class WinTypeKeywords;
 
2274
class WinFriend;
3300
2275
class ExtAC;
3301
2276
class ExtACBuilderCoupling;
3302
2277
class ExtACSyntaxCoupling;
3303
2278
class ExtACTree;
3304
2279
class ExtACKeywords;
3305
 
class WinAsm;
3306
 
class WinDeclSpecs;
3307
 
class WinMemberExplSpec;
3308
 
class WinTypeKeywords;
 
2280
class ExtGnu;
3309
2281
class PragmaOnceUnitState;
3310
2282
class PragmaOnce;
3311
 
class CCExprResolve;
3312
 
class CExprResolve;
 
2283
class CMatchSyntax;
3313
2284
namespace Puma {
3314
2285
 
3315
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
 
2286
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
3316
2287
class CTypeClass : public CTypeRecord {
3317
 
#line 3318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
2288
#line 2289 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
2289
  friend class ::CCExprResolve;
 
2290
  friend class ::CExprResolve;
3318
2291
  friend class ::WinIfExists;
3319
2292
  friend class ::WinImportHandler;
3320
2293
  friend class ::WinMacros;
3321
 
  friend class ::CMatchSyntax;
3322
 
  friend class ::ExtGnu;
 
2294
  friend class ::WinAsm;
 
2295
  friend class ::WinDeclSpecs;
 
2296
  friend class ::WinMemberExplSpec;
 
2297
  friend class ::WinTypeKeywords;
 
2298
  friend class ::WinFriend;
3323
2299
  friend class ::ExtAC;
3324
2300
  friend class ::ExtACBuilderCoupling;
3325
2301
  friend class ::ExtACSyntaxCoupling;
3326
2302
  friend class ::ExtACTree;
3327
2303
  friend class ::ExtACKeywords;
3328
 
  friend class ::WinAsm;
3329
 
  friend class ::WinDeclSpecs;
3330
 
  friend class ::WinMemberExplSpec;
3331
 
  friend class ::WinTypeKeywords;
 
2304
  friend class ::ExtGnu;
3332
2305
  friend class ::PragmaOnceUnitState;
3333
2306
  friend class ::PragmaOnce;
3334
 
  friend class ::CCExprResolve;
3335
 
  friend class ::CExprResolve;
 
2307
  friend class ::CMatchSyntax;
3336
2308
 
3337
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
 
2309
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
3338
2310
 
3339
2311
public:
3340
2312
  CTypeClass (CRecord *);
3354
2326
 
3355
2327
#endif /* __CTypeClass_h__ */
3356
2328
 
3357
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
 
2329
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
3358
2330
// This file is part of PUMA.
3359
2331
// Copyright (C) 1999-2003  The PUMA developer team.
3360
2332
//                                                                
3388
2360
class CRecord;
3389
2361
 
3390
2362
 
3391
 
#line 3392 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
2363
#line 2364 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
3392
2364
} // closed Puma
 
2365
class CCExprResolve;
 
2366
class CExprResolve;
3393
2367
class WinIfExists;
3394
2368
class WinImportHandler;
3395
2369
class WinMacros;
3396
 
class CMatchSyntax;
3397
 
class ExtGnu;
 
2370
class WinAsm;
 
2371
class WinDeclSpecs;
 
2372
class WinMemberExplSpec;
 
2373
class WinTypeKeywords;
 
2374
class WinFriend;
3398
2375
class ExtAC;
3399
2376
class ExtACBuilderCoupling;
3400
2377
class ExtACSyntaxCoupling;
3401
2378
class ExtACTree;
3402
2379
class ExtACKeywords;
3403
 
class WinAsm;
3404
 
class WinDeclSpecs;
3405
 
class WinMemberExplSpec;
3406
 
class WinTypeKeywords;
 
2380
class ExtGnu;
3407
2381
class PragmaOnceUnitState;
3408
2382
class PragmaOnce;
3409
 
class CCExprResolve;
3410
 
class CExprResolve;
 
2383
class CMatchSyntax;
3411
2384
namespace Puma {
3412
2385
 
3413
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
 
2386
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
3414
2387
class CTypeUnion : public CTypeRecord {
3415
 
#line 3416 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
2388
#line 2389 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
2389
  friend class ::CCExprResolve;
 
2390
  friend class ::CExprResolve;
3416
2391
  friend class ::WinIfExists;
3417
2392
  friend class ::WinImportHandler;
3418
2393
  friend class ::WinMacros;
3419
 
  friend class ::CMatchSyntax;
3420
 
  friend class ::ExtGnu;
 
2394
  friend class ::WinAsm;
 
2395
  friend class ::WinDeclSpecs;
 
2396
  friend class ::WinMemberExplSpec;
 
2397
  friend class ::WinTypeKeywords;
 
2398
  friend class ::WinFriend;
3421
2399
  friend class ::ExtAC;
3422
2400
  friend class ::ExtACBuilderCoupling;
3423
2401
  friend class ::ExtACSyntaxCoupling;
3424
2402
  friend class ::ExtACTree;
3425
2403
  friend class ::ExtACKeywords;
3426
 
  friend class ::WinAsm;
3427
 
  friend class ::WinDeclSpecs;
3428
 
  friend class ::WinMemberExplSpec;
3429
 
  friend class ::WinTypeKeywords;
 
2404
  friend class ::ExtGnu;
3430
2405
  friend class ::PragmaOnceUnitState;
3431
2406
  friend class ::PragmaOnce;
3432
 
  friend class ::CCExprResolve;
3433
 
  friend class ::CExprResolve;
 
2407
  friend class ::CMatchSyntax;
3434
2408
 
3435
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
 
2409
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
3436
2410
 
3437
2411
public:
3438
2412
  CTypeUnion (CRecord *);
3452
2426
 
3453
2427
#endif /* __CTypeUnion_h__ */
3454
2428
 
3455
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
 
2429
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
3456
2430
// This file is part of PUMA.
3457
2431
// Copyright (C) 1999-2003  The PUMA developer team.
3458
2432
//                                                                
3485
2459
class CTemplateParamInfo;
3486
2460
 
3487
2461
 
3488
 
#line 3489 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
2462
#line 2463 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
3489
2463
} // closed Puma
 
2464
class CCExprResolve;
 
2465
class CExprResolve;
3490
2466
class WinIfExists;
3491
2467
class WinImportHandler;
3492
2468
class WinMacros;
3493
 
class CMatchSyntax;
3494
 
class ExtGnu;
 
2469
class WinAsm;
 
2470
class WinDeclSpecs;
 
2471
class WinMemberExplSpec;
 
2472
class WinTypeKeywords;
 
2473
class WinFriend;
3495
2474
class ExtAC;
3496
2475
class ExtACBuilderCoupling;
3497
2476
class ExtACSyntaxCoupling;
3498
2477
class ExtACTree;
3499
2478
class ExtACKeywords;
3500
 
class WinAsm;
3501
 
class WinDeclSpecs;
3502
 
class WinMemberExplSpec;
3503
 
class WinTypeKeywords;
 
2479
class ExtGnu;
3504
2480
class PragmaOnceUnitState;
3505
2481
class PragmaOnce;
3506
 
class CCExprResolve;
3507
 
class CExprResolve;
 
2482
class CMatchSyntax;
3508
2483
namespace Puma {
3509
2484
 
3510
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
 
2485
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
3511
2486
class CTypeTemplateParam : public CTypeInfo {
3512
 
#line 3513 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
2487
#line 2488 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
2488
  friend class ::CCExprResolve;
 
2489
  friend class ::CExprResolve;
3513
2490
  friend class ::WinIfExists;
3514
2491
  friend class ::WinImportHandler;
3515
2492
  friend class ::WinMacros;
3516
 
  friend class ::CMatchSyntax;
3517
 
  friend class ::ExtGnu;
 
2493
  friend class ::WinAsm;
 
2494
  friend class ::WinDeclSpecs;
 
2495
  friend class ::WinMemberExplSpec;
 
2496
  friend class ::WinTypeKeywords;
 
2497
  friend class ::WinFriend;
3518
2498
  friend class ::ExtAC;
3519
2499
  friend class ::ExtACBuilderCoupling;
3520
2500
  friend class ::ExtACSyntaxCoupling;
3521
2501
  friend class ::ExtACTree;
3522
2502
  friend class ::ExtACKeywords;
3523
 
  friend class ::WinAsm;
3524
 
  friend class ::WinDeclSpecs;
3525
 
  friend class ::WinMemberExplSpec;
3526
 
  friend class ::WinTypeKeywords;
 
2503
  friend class ::ExtGnu;
3527
2504
  friend class ::PragmaOnceUnitState;
3528
2505
  friend class ::PragmaOnce;
3529
 
  friend class ::CCExprResolve;
3530
 
  friend class ::CExprResolve;
 
2506
  friend class ::CMatchSyntax;
3531
2507
 
3532
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
 
2508
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
3533
2509
 
3534
2510
  CTemplateParamInfo *_TemplateParam;
3535
2511
 
3538
2514
  ~CTypeTemplateParam ();
3539
2515
 
3540
2516
  CTemplateParamInfo *TemplateParamInfo () const;
 
2517
  void TemplateParamInfo (CTemplateParamInfo *);
3541
2518
  bool isType () const;
3542
2519
  bool isNonType () const;
3543
2520
};
3555
2532
inline bool CTypeTemplateParam::isNonType () const
3556
2533
 { return (! isType ()); }
3557
2534
 
 
2535
inline void CTypeTemplateParam::TemplateParamInfo (CTemplateParamInfo *info)
 
2536
 { _TemplateParam = info; }
3558
2537
 
3559
2538
} // namespace Puma
3560
2539
 
3561
2540
#endif /* __CTypeTemplateParam_h__ */
3562
2541
 
3563
 
#line 280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
2542
#line 284 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
3564
2543
namespace Puma {
3565
2544
 
3566
2545
inline CTypeInfo::CTypeInfo (CTypeInfo *info, CTypeInfo::TypeId id) :
3586
2565
 
3587
2566
inline void CTypeInfo::print (ostream& out) const 
3588
2567
 { TypeText ((char)PRINT_STD, out); }
3589
 
inline void CTypeInfo::TypeText (ostream &out, const char *t, bool abs, bool tdef) const
 
2568
inline void CTypeInfo::TypeText (ostream &out, const char *t, bool abs, bool tdef, bool elaborated_type_spec) const
3590
2569
 { char flags = (char)(abs ? PRINT_ABS : PRINT_STD);
3591
 
   if (tdef) flags |= (char)PRINT_TDN; TypeText (flags, out, t); }
 
2570
   if (tdef) flags |= (char)PRINT_TDN; 
 
2571
   if (elaborated_type_spec) flags |= (char)PRINT_ELA;
 
2572
   TypeText (flags, out, t); }
3592
2573
 
3593
2574
inline long int CTypeInfo::Dimension () const
3594
2575
 { return TypeArray () ? TypeArray ()->Dimension () : 
3774
2755
 
3775
2756
#endif /* __CTypeInfo_h__ */
3776
2757
 
3777
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemValue.h"
3778
 
namespace Puma {
3779
 
 
3780
 
 
3781
 
 
3782
 
#line 3783 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
3783
 
} // closed Puma
3784
 
class WinIfExists;
3785
 
class WinImportHandler;
3786
 
class WinMacros;
3787
 
class CMatchSyntax;
3788
 
class ExtGnu;
3789
 
class ExtAC;
3790
 
class ExtACBuilderCoupling;
3791
 
class ExtACSyntaxCoupling;
3792
 
class ExtACTree;
3793
 
class ExtACKeywords;
3794
 
class WinAsm;
3795
 
class WinDeclSpecs;
3796
 
class WinMemberExplSpec;
3797
 
class WinTypeKeywords;
3798
 
class PragmaOnceUnitState;
3799
 
class PragmaOnce;
3800
 
class CCExprResolve;
3801
 
class CExprResolve;
3802
 
namespace Puma {
3803
 
 
3804
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemValue.h"
 
2758
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2759
 
 
2760
#line 2761 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
2761
 
 
2762
#ifndef __ac_fwd_ExtACTree__
 
2763
#define __ac_fwd_ExtACTree__
 
2764
class ExtACTree;
 
2765
namespace AC {
 
2766
  template <class JoinPoint>
 
2767
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
2768
  template <class JoinPoint>
 
2769
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
2770
}
 
2771
#endif
 
2772
 
 
2773
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
2774
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
2775
#endif
 
2776
 
 
2777
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2778
// This file is part of PUMA.
 
2779
// Copyright (C) 1999-2003  The PUMA developer team.
 
2780
//                                                                
 
2781
// This program is free software;  you can redistribute it and/or 
 
2782
// modify it under the terms of the GNU General Public License as 
 
2783
// published by the Free Software Foundation; either version 2 of 
 
2784
// the License, or (at your option) any later version.            
 
2785
//                                                                
 
2786
// This program is distributed in the hope that it will be useful,
 
2787
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
2788
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
2789
// GNU General Public License for more details.                   
 
2790
//                                                                
 
2791
// You should have received a copy of the GNU General Public      
 
2792
// License along with this program; if not, write to the Free     
 
2793
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
2794
// MA  02111-1307  USA                                            
 
2795
 
 
2796
#ifndef __CTree_h__
 
2797
#define __CTree_h__
 
2798
 
 
2799
namespace Puma {
 
2800
 
 
2801
 
 
2802
// Syntax tree node hierarchy:
 
2803
class CTree;
 
2804
class   CT_Statement;          
 
2805
class     CT_LabelStmt;
 
2806
class     CT_IfStmt;
 
2807
class     CT_IfElseStmt;
 
2808
class     CT_SwitchStmt;
 
2809
class     CT_BreakStmt;
 
2810
class     CT_ExprStmt;
 
2811
class     CT_WhileStmt;
 
2812
class     CT_DoStmt;
 
2813
class     CT_ForStmt;
 
2814
class     CT_ContinueStmt;
 
2815
class     CT_ReturnStmt;
 
2816
class     CT_GotoStmt;
 
2817
class     CT_DeclStmt;
 
2818
class     CT_CaseStmt;
 
2819
class     CT_DefaultStmt;
 
2820
class     CT_TryStmt;
 
2821
class   CT_Expression;
 
2822
class     CT_Call;
 
2823
class       CT_CallExpr;
 
2824
class       CT_ImplicitCall;
 
2825
class     CT_ThrowExpr;
 
2826
class     CT_NewExpr;
 
2827
class     CT_DeleteExpr;
 
2828
class     CT_ConstructExpr;
 
2829
class     CT_Integer;
 
2830
class     CT_Character;
 
2831
class       CT_WideCharacter;
 
2832
class     CT_Float;
 
2833
class     CT_Bool;
 
2834
class     CT_BracedExpr;
 
2835
class     CT_BinaryExpr;
 
2836
class       CT_MembPtrExpr;
 
2837
class         CT_MembRefExpr;
 
2838
class     CT_UnaryExpr;
 
2839
class       CT_PostfixExpr;
 
2840
class       CT_AddrExpr;
 
2841
class       CT_DerefExpr;
 
2842
class     CT_IfThenExpr;
 
2843
class     CT_CmpdLiteral;
 
2844
class     CT_IndexExpr;
 
2845
class     CT_CastExpr;
 
2846
class     CT_StaticCast;
 
2847
class       CT_ConstCast;
 
2848
class       CT_ReintCast;
 
2849
class       CT_DynamicCast;
 
2850
class     CT_TypeidExpr;
 
2851
class     CT_SizeofExpr;
 
2852
class     CT_MembDesignator;
 
2853
class     CT_IndexDesignator;
 
2854
class     CT_ImplicitCast;
 
2855
class   CT_DeclSpec;
 
2856
class     CT_PrimDeclSpec;
 
2857
class     CT_NamedType;
 
2858
class     CT_ClassSpec;
 
2859
class       CT_UnionSpec;
 
2860
class       CT_EnumSpec;
 
2861
class     CT_ExceptionSpec;
 
2862
class   CT_Declarator;
 
2863
class     CT_InitDeclarator;
 
2864
class     CT_BracedDeclarator;
 
2865
class     CT_ArrayDeclarator;
 
2866
class     CT_FctDeclarator;
 
2867
class     CT_RefDeclarator;
 
2868
class     CT_PtrDeclarator;
 
2869
class     CT_MembPtrDeclarator;
 
2870
class     CT_BitFieldDeclarator;
 
2871
class   CT_Decl;
 
2872
class     CT_ObjDecl;
 
2873
class     CT_ArgDecl;
 
2874
class     CT_AccessDecl;
 
2875
class       CT_UsingDecl;
 
2876
class     CT_FctDef;
 
2877
class     CT_AsmDef;
 
2878
class     CT_EnumDef;
 
2879
class     CT_ClassDef;
 
2880
class       CT_UnionDef;
 
2881
class     CT_Enumerator;
 
2882
class     CT_LinkageSpec;
 
2883
class     CT_Handler;
 
2884
class     CT_TemplateDecl;
 
2885
class     CT_TemplateParamDecl;
 
2886
class       CT_TypeParamDecl;
 
2887
class       CT_NonTypeParamDecl;
 
2888
class     CT_NamespaceDef;
 
2889
class     CT_NamespaceAliasDef;
 
2890
class     CT_UsingDirective;
 
2891
class     CT_Condition;
 
2892
class   CT_List;
 
2893
class     CT_CmpdStmt;
 
2894
class     CT_DeclSpecSeq;
 
2895
class     CT_HandlerSeq;
 
2896
class     CT_DesignatorSeq;
 
2897
class     CT_DeclList;
 
2898
class       CT_Program;
 
2899
class       CT_ArgDeclList;
 
2900
class         CT_ArgNameList;
 
2901
class       CT_ArgDeclSeq;
 
2902
class       CT_MembList;
 
2903
class     CT_ExprList;
 
2904
class     CT_DeclaratorList;
 
2905
class     CT_BaseSpecList;
 
2906
class     CT_MembInitList;
 
2907
class     CT_SimpleName;
 
2908
class       CT_SpecialName;
 
2909
class         CT_PrivateName;
 
2910
class         CT_OperatorName;
 
2911
class         CT_DestructorName;
 
2912
class         CT_ConversionName;
 
2913
class         CT_TemplateName;
 
2914
class       CT_QualName;
 
2915
class         CT_RootQualName;
 
2916
class     CT_String;
 
2917
class       CT_WideString;
 
2918
class     CT_TemplateParamList;
 
2919
class     CT_TemplateArgList;
 
2920
class   CT_Token;
 
2921
class   CT_Error;
 
2922
class   CT_BaseSpec;
 
2923
class   CT_AccessSpec;
 
2924
class   CT_ArrayDelimiter;
 
2925
class   CT_Any;
 
2926
class   CT_AnyList;
 
2927
class   CT_AnyExtension;
 
2928
class   CT_AnyCondition;
 
2929
 
 
2930
 
 
2931
} // namespace Puma
 
2932
 
 
2933
 
 
2934
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
2935
// This file is part of PUMA.
 
2936
// Copyright (C) 1999-2003  The PUMA developer team.
 
2937
//                                                                
 
2938
// This program is free software;  you can redistribute it and/or 
 
2939
// modify it under the terms of the GNU General Public License as 
 
2940
// published by the Free Software Foundation; either version 2 of 
 
2941
// the License, or (at your option) any later version.            
 
2942
//                                                                
 
2943
// This program is distributed in the hope that it will be useful,
 
2944
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
2945
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
2946
// GNU General Public License for more details.                   
 
2947
//                                                                
 
2948
// You should have received a copy of the GNU General Public      
 
2949
// License along with this program; if not, write to the Free     
 
2950
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
2951
// MA  02111-1307  USA                                            
 
2952
 
 
2953
#ifndef __error_severity_h__
 
2954
#define __error_severity_h__
 
2955
 
 
2956
// Severity of errors: represented by a short integer and a text
 
2957
 
 
2958
namespace Puma {
 
2959
 
 
2960
 
 
2961
 
 
2962
#line 2963 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
2963
} // closed Puma
 
2964
class CCExprResolve;
 
2965
class CExprResolve;
 
2966
class WinIfExists;
 
2967
class WinImportHandler;
 
2968
class WinMacros;
 
2969
class WinAsm;
 
2970
class WinDeclSpecs;
 
2971
class WinMemberExplSpec;
 
2972
class WinTypeKeywords;
 
2973
class WinFriend;
 
2974
class ExtAC;
 
2975
class ExtACBuilderCoupling;
 
2976
class ExtACSyntaxCoupling;
 
2977
class ExtACTree;
 
2978
class ExtACKeywords;
 
2979
class ExtGnu;
 
2980
class PragmaOnceUnitState;
 
2981
class PragmaOnce;
 
2982
class CMatchSyntax;
 
2983
namespace Puma {
 
2984
 
 
2985
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
2986
class ErrorSeverity {
 
2987
#line 2988 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
2988
  friend class ::CCExprResolve;
 
2989
  friend class ::CExprResolve;
 
2990
  friend class ::WinIfExists;
 
2991
  friend class ::WinImportHandler;
 
2992
  friend class ::WinMacros;
 
2993
  friend class ::WinAsm;
 
2994
  friend class ::WinDeclSpecs;
 
2995
  friend class ::WinMemberExplSpec;
 
2996
  friend class ::WinTypeKeywords;
 
2997
  friend class ::WinFriend;
 
2998
  friend class ::ExtAC;
 
2999
  friend class ::ExtACBuilderCoupling;
 
3000
  friend class ::ExtACSyntaxCoupling;
 
3001
  friend class ::ExtACTree;
 
3002
  friend class ::ExtACKeywords;
 
3003
  friend class ::ExtGnu;
 
3004
  friend class ::PragmaOnceUnitState;
 
3005
  friend class ::PragmaOnce;
 
3006
  friend class ::CMatchSyntax;
 
3007
 
 
3008
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
3009
 
 
3010
  unsigned short _severity;
 
3011
  const char *_text;
 
3012
 
 
3013
public:
 
3014
  ErrorSeverity (unsigned short s = 0, const char* t = (const char*)0) :
 
3015
    _severity (s), _text (t) {}
 
3016
  ErrorSeverity (const ErrorSeverity &s) :
 
3017
    _severity (s._severity), _text (s._text) {}
 
3018
  ErrorSeverity &operator =(const ErrorSeverity &s) 
 
3019
    { _severity = s._severity; _text = s._text; return *this; }
 
3020
 
 
3021
  int operator < (const ErrorSeverity &s) const
 
3022
   { return _severity < s._severity; }
 
3023
  int operator > (const ErrorSeverity &s) const
 
3024
   { return _severity > s._severity; }
 
3025
  int operator <= (const ErrorSeverity &s) const
 
3026
   { return _severity < s._severity || _severity == s._severity; }
 
3027
  int operator >= (const ErrorSeverity &s) const
 
3028
   { return _severity > s._severity || _severity == s._severity; }
 
3029
  int operator == (const ErrorSeverity &s) const
 
3030
   { return _severity == s._severity; }
 
3031
  int operator != (const ErrorSeverity &s) const
 
3032
   { return _severity != s._severity; }
 
3033
  const char *text () const
 
3034
   { return _text; }
 
3035
};
 
3036
 
 
3037
extern const ErrorSeverity sev_none;
 
3038
extern const ErrorSeverity sev_message;
 
3039
extern const ErrorSeverity sev_warning;
 
3040
extern const ErrorSeverity sev_error;
 
3041
extern const ErrorSeverity sev_fatal;
 
3042
      
 
3043
 
 
3044
} // namespace Puma
 
3045
 
 
3046
#endif /* __error_severity_h__ */
 
3047
 
 
3048
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemObject.h"
 
3049
// This file is part of PUMA.
 
3050
// Copyright (C) 1999-2003  The PUMA developer team.
 
3051
//                                                                
 
3052
// This program is free software;  you can redistribute it and/or 
 
3053
// modify it under the terms of the GNU General Public License as 
 
3054
// published by the Free Software Foundation; either version 2 of 
 
3055
// the License, or (at your option) any later version.            
 
3056
//                                                                
 
3057
// This program is distributed in the hope that it will be useful,
 
3058
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
3059
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
3060
// GNU General Public License for more details.                   
 
3061
//                                                                
 
3062
// You should have received a copy of the GNU General Public      
 
3063
// License along with this program; if not, write to the Free     
 
3064
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
3065
// MA  02111-1307  USA                                            
 
3066
 
 
3067
#ifndef __CSemObject_h__
 
3068
#define __CSemObject_h__
 
3069
 
 
3070
namespace Puma {
 
3071
 
 
3072
 
 
3073
class CObjectInfo;
 
3074
 
 
3075
 
 
3076
#line 3077 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
3077
} // closed Puma
 
3078
class CCExprResolve;
 
3079
class CExprResolve;
 
3080
class WinIfExists;
 
3081
class WinImportHandler;
 
3082
class WinMacros;
 
3083
class WinAsm;
 
3084
class WinDeclSpecs;
 
3085
class WinMemberExplSpec;
 
3086
class WinTypeKeywords;
 
3087
class WinFriend;
 
3088
class ExtAC;
 
3089
class ExtACBuilderCoupling;
 
3090
class ExtACSyntaxCoupling;
 
3091
class ExtACTree;
 
3092
class ExtACKeywords;
 
3093
class ExtGnu;
 
3094
class PragmaOnceUnitState;
 
3095
class PragmaOnce;
 
3096
class CMatchSyntax;
 
3097
namespace Puma {
 
3098
 
 
3099
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemObject.h"
 
3100
class CSemObject {
 
3101
#line 3102 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
3102
  friend class ::CCExprResolve;
 
3103
  friend class ::CExprResolve;
 
3104
  friend class ::WinIfExists;
 
3105
  friend class ::WinImportHandler;
 
3106
  friend class ::WinMacros;
 
3107
  friend class ::WinAsm;
 
3108
  friend class ::WinDeclSpecs;
 
3109
  friend class ::WinMemberExplSpec;
 
3110
  friend class ::WinTypeKeywords;
 
3111
  friend class ::WinFriend;
 
3112
  friend class ::ExtAC;
 
3113
  friend class ::ExtACBuilderCoupling;
 
3114
  friend class ::ExtACSyntaxCoupling;
 
3115
  friend class ::ExtACTree;
 
3116
  friend class ::ExtACKeywords;
 
3117
  friend class ::ExtGnu;
 
3118
  friend class ::PragmaOnceUnitState;
 
3119
  friend class ::PragmaOnce;
 
3120
  friend class ::CMatchSyntax;
 
3121
 
 
3122
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemObject.h"
 
3123
 
 
3124
  CObjectInfo *_obj;
 
3125
 
 
3126
public:
 
3127
  CSemObject () : _obj ((CObjectInfo*)0) {}
 
3128
  void Object (CObjectInfo *o) { _obj = o; }
 
3129
  /*virtual*/ CObjectInfo *Object () const { return _obj; }
 
3130
};
 
3131
 
 
3132
 
 
3133
} // namespace Puma
 
3134
 
 
3135
#endif /* __CSemObject_h__ */
 
3136
 
 
3137
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemScope.h"
 
3138
// This file is part of PUMA.
 
3139
// Copyright (C) 1999-2003  The PUMA developer team.
 
3140
//                                                                
 
3141
// This program is free software;  you can redistribute it and/or 
 
3142
// modify it under the terms of the GNU General Public License as 
 
3143
// published by the Free Software Foundation; either version 2 of 
 
3144
// the License, or (at your option) any later version.            
 
3145
//                                                                
 
3146
// This program is distributed in the hope that it will be useful,
 
3147
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
3148
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
3149
// GNU General Public License for more details.                   
 
3150
//                                                                
 
3151
// You should have received a copy of the GNU General Public      
 
3152
// License along with this program; if not, write to the Free     
 
3153
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
3154
// MA  02111-1307  USA                                            
 
3155
 
 
3156
#ifndef __CSemScope_h__
 
3157
#define __CSemScope_h__
 
3158
 
 
3159
namespace Puma {
 
3160
 
 
3161
 
 
3162
class CStructure;
 
3163
 
 
3164
 
 
3165
#line 3166 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
3166
} // closed Puma
 
3167
class CCExprResolve;
 
3168
class CExprResolve;
 
3169
class WinIfExists;
 
3170
class WinImportHandler;
 
3171
class WinMacros;
 
3172
class WinAsm;
 
3173
class WinDeclSpecs;
 
3174
class WinMemberExplSpec;
 
3175
class WinTypeKeywords;
 
3176
class WinFriend;
 
3177
class ExtAC;
 
3178
class ExtACBuilderCoupling;
 
3179
class ExtACSyntaxCoupling;
 
3180
class ExtACTree;
 
3181
class ExtACKeywords;
 
3182
class ExtGnu;
 
3183
class PragmaOnceUnitState;
 
3184
class PragmaOnce;
 
3185
class CMatchSyntax;
 
3186
namespace Puma {
 
3187
 
 
3188
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemScope.h"
 
3189
class CSemScope {
 
3190
#line 3191 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
3191
  friend class ::CCExprResolve;
 
3192
  friend class ::CExprResolve;
 
3193
  friend class ::WinIfExists;
 
3194
  friend class ::WinImportHandler;
 
3195
  friend class ::WinMacros;
 
3196
  friend class ::WinAsm;
 
3197
  friend class ::WinDeclSpecs;
 
3198
  friend class ::WinMemberExplSpec;
 
3199
  friend class ::WinTypeKeywords;
 
3200
  friend class ::WinFriend;
 
3201
  friend class ::ExtAC;
 
3202
  friend class ::ExtACBuilderCoupling;
 
3203
  friend class ::ExtACSyntaxCoupling;
 
3204
  friend class ::ExtACTree;
 
3205
  friend class ::ExtACKeywords;
 
3206
  friend class ::ExtGnu;
 
3207
  friend class ::PragmaOnceUnitState;
 
3208
  friend class ::PragmaOnce;
 
3209
  friend class ::CMatchSyntax;
 
3210
 
 
3211
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemScope.h"
 
3212
 
 
3213
  CStructure *_scope;
 
3214
 
 
3215
public:
 
3216
  CSemScope () : _scope ((CStructure*)0) {}
 
3217
  void Scope (CStructure *s) { _scope = s; }
 
3218
  CStructure *Scope () const { return _scope; }
 
3219
};
 
3220
 
 
3221
 
 
3222
} // namespace Puma
 
3223
 
 
3224
#endif /* __CSemScope_h__ */
 
3225
 
 
3226
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemValue.h"
 
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 __CSemValue_h__
 
3246
#define __CSemValue_h__
 
3247
 
 
3248
 
 
3249
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CExprValue.h"
 
3250
// This file is part of PUMA.
 
3251
// Copyright (C) 1999-2003  The PUMA developer team.
 
3252
//                                                                
 
3253
// This program is free software;  you can redistribute it and/or 
 
3254
// modify it under the terms of the GNU General Public License as 
 
3255
// published by the Free Software Foundation; either version 2 of 
 
3256
// the License, or (at your option) any later version.            
 
3257
//                                                                
 
3258
// This program is distributed in the hope that it will be useful,
 
3259
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
3260
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
3261
// GNU General Public License for more details.                   
 
3262
//                                                                
 
3263
// You should have received a copy of the GNU General Public      
 
3264
// License along with this program; if not, write to the Free     
 
3265
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
3266
// MA  02111-1307  USA                                            
 
3267
 
 
3268
#ifndef __CExprValue_h__
 
3269
#define __CExprValue_h__
 
3270
 
 
3271
 
 
3272
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CExprValue.h"
 
3273
using std::ostream;
 
3274
 
 
3275
namespace Puma {
 
3276
 
 
3277
 
 
3278
class CTypeInfo;
 
3279
class CConstant;
 
3280
class CStrLiteral;
 
3281
class CWStrLiteral;
 
3282
 
 
3283
 
 
3284
#line 3285 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
3285
} // closed Puma
 
3286
class CCExprResolve;
 
3287
class CExprResolve;
 
3288
class WinIfExists;
 
3289
class WinImportHandler;
 
3290
class WinMacros;
 
3291
class WinAsm;
 
3292
class WinDeclSpecs;
 
3293
class WinMemberExplSpec;
 
3294
class WinTypeKeywords;
 
3295
class WinFriend;
 
3296
class ExtAC;
 
3297
class ExtACBuilderCoupling;
 
3298
class ExtACSyntaxCoupling;
 
3299
class ExtACTree;
 
3300
class ExtACKeywords;
 
3301
class ExtGnu;
 
3302
class PragmaOnceUnitState;
 
3303
class PragmaOnce;
 
3304
class CMatchSyntax;
 
3305
namespace Puma {
 
3306
 
 
3307
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CExprValue.h"
 
3308
class CExprValue {
 
3309
#line 3310 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
3310
  friend class ::CCExprResolve;
 
3311
  friend class ::CExprResolve;
 
3312
  friend class ::WinIfExists;
 
3313
  friend class ::WinImportHandler;
 
3314
  friend class ::WinMacros;
 
3315
  friend class ::WinAsm;
 
3316
  friend class ::WinDeclSpecs;
 
3317
  friend class ::WinMemberExplSpec;
 
3318
  friend class ::WinTypeKeywords;
 
3319
  friend class ::WinFriend;
 
3320
  friend class ::ExtAC;
 
3321
  friend class ::ExtACBuilderCoupling;
 
3322
  friend class ::ExtACSyntaxCoupling;
 
3323
  friend class ::ExtACTree;
 
3324
  friend class ::ExtACKeywords;
 
3325
  friend class ::ExtGnu;
 
3326
  friend class ::PragmaOnceUnitState;
 
3327
  friend class ::PragmaOnce;
 
3328
  friend class ::CMatchSyntax;
 
3329
 
 
3330
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CExprValue.h"
 
3331
 
 
3332
  CTypeInfo *_type;
 
3333
  
 
3334
protected:
 
3335
  CExprValue (CTypeInfo *t) : _type (t) {}
 
3336
  
 
3337
public:
 
3338
  virtual ~CExprValue () {}
 
3339
 
 
3340
  CTypeInfo *Type () const { return _type; }
 
3341
  virtual void print (ostream &out) const = 0;
 
3342
  
 
3343
  virtual CConstant *Constant () const { return (CConstant*)0; }
 
3344
  virtual CStrLiteral *StrLiteral () const { return (CStrLiteral*)0; }
 
3345
  virtual CWStrLiteral *WStrLiteral () const { return (CWStrLiteral*)0; }
 
3346
};
 
3347
 
 
3348
inline ostream& operator << (ostream &out, const CExprValue &ev) {
 
3349
  ev.print (out);
 
3350
  return out;
 
3351
}
 
3352
 
 
3353
} // namespace Puma
 
3354
 
 
3355
#endif /* __CExprValue_h__ */
 
3356
 
 
3357
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemValue.h"
 
3358
namespace Puma {
 
3359
 
 
3360
 
 
3361
 
 
3362
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
3363
} // closed Puma
 
3364
class CCExprResolve;
 
3365
class CExprResolve;
 
3366
class WinIfExists;
 
3367
class WinImportHandler;
 
3368
class WinMacros;
 
3369
class WinAsm;
 
3370
class WinDeclSpecs;
 
3371
class WinMemberExplSpec;
 
3372
class WinTypeKeywords;
 
3373
class WinFriend;
 
3374
class ExtAC;
 
3375
class ExtACBuilderCoupling;
 
3376
class ExtACSyntaxCoupling;
 
3377
class ExtACTree;
 
3378
class ExtACKeywords;
 
3379
class ExtGnu;
 
3380
class PragmaOnceUnitState;
 
3381
class PragmaOnce;
 
3382
class CMatchSyntax;
 
3383
namespace Puma {
 
3384
 
 
3385
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemValue.h"
3805
3386
class CSemValue {
3806
 
#line 3807 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
3387
#line 3388 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
3388
  friend class ::CCExprResolve;
 
3389
  friend class ::CExprResolve;
3807
3390
  friend class ::WinIfExists;
3808
3391
  friend class ::WinImportHandler;
3809
3392
  friend class ::WinMacros;
3810
 
  friend class ::CMatchSyntax;
3811
 
  friend class ::ExtGnu;
 
3393
  friend class ::WinAsm;
 
3394
  friend class ::WinDeclSpecs;
 
3395
  friend class ::WinMemberExplSpec;
 
3396
  friend class ::WinTypeKeywords;
 
3397
  friend class ::WinFriend;
3812
3398
  friend class ::ExtAC;
3813
3399
  friend class ::ExtACBuilderCoupling;
3814
3400
  friend class ::ExtACSyntaxCoupling;
3815
3401
  friend class ::ExtACTree;
3816
3402
  friend class ::ExtACKeywords;
3817
 
  friend class ::WinAsm;
3818
 
  friend class ::WinDeclSpecs;
3819
 
  friend class ::WinMemberExplSpec;
3820
 
  friend class ::WinTypeKeywords;
 
3403
  friend class ::ExtGnu;
3821
3404
  friend class ::PragmaOnceUnitState;
3822
3405
  friend class ::PragmaOnce;
3823
 
  friend class ::CCExprResolve;
3824
 
  friend class ::CExprResolve;
 
3406
  friend class ::CMatchSyntax;
3825
3407
 
3826
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemValue.h"
 
3408
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemValue.h"
3827
3409
 
3828
3410
  bool value_ref;
3829
3411
  bool type_ref;
3840
3422
  void setValueRef (CExprValue *);
3841
3423
  void setType (CTypeInfo *);
3842
3424
  void setTypeRef (CTypeInfo *);
 
3425
  CExprValue* getValue() { return value; }
 
3426
  CTypeInfo* getType() { return type; }
3843
3427
};
3844
3428
 
3845
3429
inline CSemValue::CSemValue () : 
3871
3455
 
3872
3456
#endif /* __CSemValue_h__ */
3873
3457
 
3874
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
 
3458
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
3875
3459
// This file is part of PUMA.
3876
3460
// Copyright (C) 1999-2003  The PUMA developer team.
3877
3461
//                                                                
3894
3478
#define __CStrLiteral_h__
3895
3479
 
3896
3480
 
3897
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
 
3481
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
3898
3482
namespace Puma {
3899
3483
 
3900
3484
 
3901
3485
 
3902
 
#line 3903 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
3486
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
3903
3487
} // closed Puma
 
3488
class CCExprResolve;
 
3489
class CExprResolve;
3904
3490
class WinIfExists;
3905
3491
class WinImportHandler;
3906
3492
class WinMacros;
3907
 
class CMatchSyntax;
3908
 
class ExtGnu;
 
3493
class WinAsm;
 
3494
class WinDeclSpecs;
 
3495
class WinMemberExplSpec;
 
3496
class WinTypeKeywords;
 
3497
class WinFriend;
3909
3498
class ExtAC;
3910
3499
class ExtACBuilderCoupling;
3911
3500
class ExtACSyntaxCoupling;
3912
3501
class ExtACTree;
3913
3502
class ExtACKeywords;
3914
 
class WinAsm;
3915
 
class WinDeclSpecs;
3916
 
class WinMemberExplSpec;
3917
 
class WinTypeKeywords;
 
3503
class ExtGnu;
3918
3504
class PragmaOnceUnitState;
3919
3505
class PragmaOnce;
3920
 
class CCExprResolve;
3921
 
class CExprResolve;
 
3506
class CMatchSyntax;
3922
3507
namespace Puma {
3923
3508
 
3924
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
 
3509
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
3925
3510
class CStrLiteral : public CExprValue {
3926
 
#line 3927 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
3511
#line 3512 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
3512
  friend class ::CCExprResolve;
 
3513
  friend class ::CExprResolve;
3927
3514
  friend class ::WinIfExists;
3928
3515
  friend class ::WinImportHandler;
3929
3516
  friend class ::WinMacros;
3930
 
  friend class ::CMatchSyntax;
3931
 
  friend class ::ExtGnu;
 
3517
  friend class ::WinAsm;
 
3518
  friend class ::WinDeclSpecs;
 
3519
  friend class ::WinMemberExplSpec;
 
3520
  friend class ::WinTypeKeywords;
 
3521
  friend class ::WinFriend;
3932
3522
  friend class ::ExtAC;
3933
3523
  friend class ::ExtACBuilderCoupling;
3934
3524
  friend class ::ExtACSyntaxCoupling;
3935
3525
  friend class ::ExtACTree;
3936
3526
  friend class ::ExtACKeywords;
3937
 
  friend class ::WinAsm;
3938
 
  friend class ::WinDeclSpecs;
3939
 
  friend class ::WinMemberExplSpec;
3940
 
  friend class ::WinTypeKeywords;
 
3527
  friend class ::ExtGnu;
3941
3528
  friend class ::PragmaOnceUnitState;
3942
3529
  friend class ::PragmaOnce;
3943
 
  friend class ::CCExprResolve;
3944
 
  friend class ::CExprResolve;
 
3530
  friend class ::CMatchSyntax;
3945
3531
 
3946
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
 
3532
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
3947
3533
 
3948
3534
  const char *_string;
3949
3535
  unsigned long _len;
3965
3551
 
3966
3552
#endif /* __CStrLiteral_h__ */
3967
3553
 
3968
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTokens.h"
 
3554
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTokens.h"
3969
3555
// This file is part of PUMA.
3970
3556
// Copyright (C) 1999-2003  The PUMA developer team.
3971
3557
//                                                                
3996
3582
  TOK_ZERO_VAL,
3997
3583
  TOK_INT_VAL,
3998
3584
  TOK_FLT_VAL,
 
3585
  TOK_STRING_VAL,
 
3586
  TOK_CHAR_VAL,
3999
3587
  TOK_COMMA,
4000
3588
  TOK_ASSIGN,
4001
3589
  TOK_QUESTION,
4178
3766
  TOK_LAST_AC = TOK_UNKNOWN_T,
4179
3767
  
4180
3768
  // further [A](C|C++) token
4181
 
  TOK_STRING_VAL,
4182
 
  TOK_CHAR_VAL,
4183
3769
  TOK_ID,
4184
3770
 
4185
3771
  // These two always have to be the ** last ** token listed here!!!
4192
3778
 
4193
3779
#endif /* __C_TOKENS__ */
4194
3780
 
4195
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
3781
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
4196
3782
// This file is part of PUMA.
4197
3783
// Copyright (C) 1999-2003  The PUMA developer team.
4198
3784
//                                                                
4220
3806
 
4221
3807
#include <stdlib.h>
4222
3808
 
4223
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
3809
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/LanguageID.h"
4224
3810
// This file is part of PUMA.
4225
3811
// Copyright (C) 1999-2003  The PUMA developer team.
4226
3812
//                                                                
4248
3834
 
4249
3835
 
4250
3836
 
4251
 
#line 4252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
3837
#line 3838 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
4252
3838
} // closed Puma
 
3839
class CCExprResolve;
 
3840
class CExprResolve;
4253
3841
class WinIfExists;
4254
3842
class WinImportHandler;
4255
3843
class WinMacros;
4256
 
class CMatchSyntax;
4257
 
class ExtGnu;
 
3844
class WinAsm;
 
3845
class WinDeclSpecs;
 
3846
class WinMemberExplSpec;
 
3847
class WinTypeKeywords;
 
3848
class WinFriend;
4258
3849
class ExtAC;
4259
3850
class ExtACBuilderCoupling;
4260
3851
class ExtACSyntaxCoupling;
4261
3852
class ExtACTree;
4262
3853
class ExtACKeywords;
4263
 
class WinAsm;
4264
 
class WinDeclSpecs;
4265
 
class WinMemberExplSpec;
4266
 
class WinTypeKeywords;
 
3854
class ExtGnu;
4267
3855
class PragmaOnceUnitState;
4268
3856
class PragmaOnce;
4269
 
class CCExprResolve;
4270
 
class CExprResolve;
 
3857
class CMatchSyntax;
4271
3858
namespace Puma {
4272
3859
 
4273
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
3860
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/LanguageID.h"
4274
3861
class LanguageID {
4275
 
#line 4276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
3862
#line 3863 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
3863
  friend class ::CCExprResolve;
 
3864
  friend class ::CExprResolve;
4276
3865
  friend class ::WinIfExists;
4277
3866
  friend class ::WinImportHandler;
4278
3867
  friend class ::WinMacros;
4279
 
  friend class ::CMatchSyntax;
4280
 
  friend class ::ExtGnu;
 
3868
  friend class ::WinAsm;
 
3869
  friend class ::WinDeclSpecs;
 
3870
  friend class ::WinMemberExplSpec;
 
3871
  friend class ::WinTypeKeywords;
 
3872
  friend class ::WinFriend;
4281
3873
  friend class ::ExtAC;
4282
3874
  friend class ::ExtACBuilderCoupling;
4283
3875
  friend class ::ExtACSyntaxCoupling;
4284
3876
  friend class ::ExtACTree;
4285
3877
  friend class ::ExtACKeywords;
4286
 
  friend class ::WinAsm;
4287
 
  friend class ::WinDeclSpecs;
4288
 
  friend class ::WinMemberExplSpec;
4289
 
  friend class ::WinTypeKeywords;
 
3878
  friend class ::ExtGnu;
4290
3879
  friend class ::PragmaOnceUnitState;
4291
3880
  friend class ::PragmaOnce;
4292
 
  friend class ::CCExprResolve;
4293
 
  friend class ::CExprResolve;
 
3881
  friend class ::CMatchSyntax;
4294
3882
 
4295
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
3883
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/LanguageID.h"
4296
3884
 
4297
3885
  const char *_id;
4298
3886
 
4309
3897
 
4310
3898
#endif /* __language_id_h__ */
4311
3899
 
4312
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
 
3900
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
4313
3901
// This file is part of PUMA.
4314
3902
// Copyright (C) 1999-2003  The PUMA developer team.
4315
3903
//                                                                
4332
3920
#define __location_h__
4333
3921
 
4334
3922
 
4335
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
3923
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
 
3924
// This file is part of PUMA.
 
3925
// Copyright (C) 1999-2003  The PUMA developer team.
 
3926
//                                                                
 
3927
// This program is free software;  you can redistribute it and/or 
 
3928
// modify it under the terms of the GNU General Public License as 
 
3929
// published by the Free Software Foundation; either version 2 of 
 
3930
// the License, or (at your option) any later version.            
 
3931
//                                                                
 
3932
// This program is distributed in the hope that it will be useful,
 
3933
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
3934
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
3935
// GNU General Public License for more details.                   
 
3936
//                                                                
 
3937
// You should have received a copy of the GNU General Public      
 
3938
// License along with this program; if not, write to the Free     
 
3939
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
3940
// MA  02111-1307  USA                                            
 
3941
 
 
3942
#ifndef __filename_h__
 
3943
#define __filename_h__
 
3944
 
 
3945
 
 
3946
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
4336
3947
// This file is part of PUMA.
4337
3948
// Copyright (C) 1999-2003  The PUMA developer team.
4338
3949
//                                                                
4355
3966
#define __smart_ptr_h__
4356
3967
 
4357
3968
 
4358
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
3969
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/RefCnt.h"
4359
3970
// This file is part of PUMA.
4360
3971
// Copyright (C) 1999-2003  The PUMA developer team.
4361
3972
//                                                                
4381
3992
 
4382
3993
 
4383
3994
 
4384
 
#line 4385 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
3995
#line 3996 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
4385
3996
} // closed Puma
 
3997
class CCExprResolve;
 
3998
class CExprResolve;
4386
3999
class WinIfExists;
4387
4000
class WinImportHandler;
4388
4001
class WinMacros;
4389
 
class CMatchSyntax;
4390
 
class ExtGnu;
 
4002
class WinAsm;
 
4003
class WinDeclSpecs;
 
4004
class WinMemberExplSpec;
 
4005
class WinTypeKeywords;
 
4006
class WinFriend;
4391
4007
class ExtAC;
4392
4008
class ExtACBuilderCoupling;
4393
4009
class ExtACSyntaxCoupling;
4394
4010
class ExtACTree;
4395
4011
class ExtACKeywords;
4396
 
class WinAsm;
4397
 
class WinDeclSpecs;
4398
 
class WinMemberExplSpec;
4399
 
class WinTypeKeywords;
 
4012
class ExtGnu;
4400
4013
class PragmaOnceUnitState;
4401
4014
class PragmaOnce;
4402
 
class CCExprResolve;
4403
 
class CExprResolve;
 
4015
class CMatchSyntax;
4404
4016
namespace Puma {
4405
4017
 
4406
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
4018
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/RefCnt.h"
4407
4019
class RefCnt {
4408
 
#line 4409 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4020
#line 4021 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4021
  friend class ::CCExprResolve;
 
4022
  friend class ::CExprResolve;
4409
4023
  friend class ::WinIfExists;
4410
4024
  friend class ::WinImportHandler;
4411
4025
  friend class ::WinMacros;
4412
 
  friend class ::CMatchSyntax;
4413
 
  friend class ::ExtGnu;
 
4026
  friend class ::WinAsm;
 
4027
  friend class ::WinDeclSpecs;
 
4028
  friend class ::WinMemberExplSpec;
 
4029
  friend class ::WinTypeKeywords;
 
4030
  friend class ::WinFriend;
4414
4031
  friend class ::ExtAC;
4415
4032
  friend class ::ExtACBuilderCoupling;
4416
4033
  friend class ::ExtACSyntaxCoupling;
4417
4034
  friend class ::ExtACTree;
4418
4035
  friend class ::ExtACKeywords;
4419
 
  friend class ::WinAsm;
4420
 
  friend class ::WinDeclSpecs;
4421
 
  friend class ::WinMemberExplSpec;
4422
 
  friend class ::WinTypeKeywords;
 
4036
  friend class ::ExtGnu;
4423
4037
  friend class ::PragmaOnceUnitState;
4424
4038
  friend class ::PragmaOnce;
4425
 
  friend class ::CCExprResolve;
4426
 
  friend class ::CExprResolve;
 
4039
  friend class ::CMatchSyntax;
4427
4040
 
4428
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
4041
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/RefCnt.h"
4429
4042
 
4430
4043
  int _counter;
4431
4044
 
4443
4056
 
4444
4057
#endif /* __ref_cnt_h__ */
4445
4058
 
4446
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
4059
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
4447
4060
namespace Puma {
4448
4061
 
4449
4062
 
4450
4063
 
4451
 
#line 4452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4064
#line 4065 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
4452
4065
} // closed Puma
 
4066
class CCExprResolve;
 
4067
class CExprResolve;
4453
4068
class WinIfExists;
4454
4069
class WinImportHandler;
4455
4070
class WinMacros;
4456
 
class CMatchSyntax;
4457
 
class ExtGnu;
 
4071
class WinAsm;
 
4072
class WinDeclSpecs;
 
4073
class WinMemberExplSpec;
 
4074
class WinTypeKeywords;
 
4075
class WinFriend;
4458
4076
class ExtAC;
4459
4077
class ExtACBuilderCoupling;
4460
4078
class ExtACSyntaxCoupling;
4461
4079
class ExtACTree;
4462
4080
class ExtACKeywords;
4463
 
class WinAsm;
4464
 
class WinDeclSpecs;
4465
 
class WinMemberExplSpec;
4466
 
class WinTypeKeywords;
 
4081
class ExtGnu;
4467
4082
class PragmaOnceUnitState;
4468
4083
class PragmaOnce;
4469
 
class CCExprResolve;
4470
 
class CExprResolve;
 
4084
class CMatchSyntax;
4471
4085
namespace Puma {
4472
4086
 
4473
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
4087
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
4474
4088
class SmartPtr {
4475
 
#line 4476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4089
#line 4090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4090
  friend class ::CCExprResolve;
 
4091
  friend class ::CExprResolve;
4476
4092
  friend class ::WinIfExists;
4477
4093
  friend class ::WinImportHandler;
4478
4094
  friend class ::WinMacros;
4479
 
  friend class ::CMatchSyntax;
4480
 
  friend class ::ExtGnu;
 
4095
  friend class ::WinAsm;
 
4096
  friend class ::WinDeclSpecs;
 
4097
  friend class ::WinMemberExplSpec;
 
4098
  friend class ::WinTypeKeywords;
 
4099
  friend class ::WinFriend;
4481
4100
  friend class ::ExtAC;
4482
4101
  friend class ::ExtACBuilderCoupling;
4483
4102
  friend class ::ExtACSyntaxCoupling;
4484
4103
  friend class ::ExtACTree;
4485
4104
  friend class ::ExtACKeywords;
4486
 
  friend class ::WinAsm;
4487
 
  friend class ::WinDeclSpecs;
4488
 
  friend class ::WinMemberExplSpec;
4489
 
  friend class ::WinTypeKeywords;
 
4105
  friend class ::ExtGnu;
4490
4106
  friend class ::PragmaOnceUnitState;
4491
4107
  friend class ::PragmaOnce;
4492
 
  friend class ::CCExprResolve;
4493
 
  friend class ::CExprResolve;
 
4108
  friend class ::CMatchSyntax;
4494
4109
 
4495
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
4110
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
4496
4111
 
4497
4112
  RefCnt *_data;
4498
4113
 
4514
4129
 
4515
4130
#endif /* __smart_ptr_h__ */
4516
4131
 
4517
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
4518
 
// This file is part of PUMA.
4519
 
// Copyright (C) 1999-2003  The PUMA developer team.
4520
 
//                                                                
4521
 
// This program is free software;  you can redistribute it and/or 
4522
 
// modify it under the terms of the GNU General Public License as 
4523
 
// published by the Free Software Foundation; either version 2 of 
4524
 
// the License, or (at your option) any later version.            
4525
 
//                                                                
4526
 
// This program is distributed in the hope that it will be useful,
4527
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
4528
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
4529
 
// GNU General Public License for more details.                   
4530
 
//                                                                
4531
 
// You should have received a copy of the GNU General Public      
4532
 
// License along with this program; if not, write to the Free     
4533
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
4534
 
// MA  02111-1307  USA                                            
4535
 
 
4536
 
#ifndef __location_info_h__
4537
 
#define __location_info_h__
4538
 
 
4539
 
 
4540
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
4541
 
// This file is part of PUMA.
4542
 
// Copyright (C) 1999-2003  The PUMA developer team.
4543
 
//                                                                
4544
 
// This program is free software;  you can redistribute it and/or 
4545
 
// modify it under the terms of the GNU General Public License as 
4546
 
// published by the Free Software Foundation; either version 2 of 
4547
 
// the License, or (at your option) any later version.            
4548
 
//                                                                
4549
 
// This program is distributed in the hope that it will be useful,
4550
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
4551
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
4552
 
// GNU General Public License for more details.                   
4553
 
//                                                                
4554
 
// You should have received a copy of the GNU General Public      
4555
 
// License along with this program; if not, write to the Free     
4556
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
4557
 
// MA  02111-1307  USA                                            
4558
 
 
4559
 
#ifndef __filename_h__
4560
 
#define __filename_h__
4561
 
 
4562
 
 
4563
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
4132
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
4564
4133
// This file is part of PUMA.
4565
4134
// Copyright (C) 1999-2003  The PUMA developer team.
4566
4135
//                                                                
4583
4152
#define __filename_info_h__
4584
4153
 
4585
4154
 
4586
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
 
4155
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
4587
4156
// This file is part of PUMA.
4588
4157
// Copyright (C) 1999-2003  The PUMA developer team.
4589
4158
//                                                                
4606
4175
#define __DString_h__
4607
4176
 
4608
4177
 
4609
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
4178
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
4610
4179
// This file is part of PUMA.
4611
4180
// Copyright (C) 1999-2003  The PUMA developer team.
4612
4181
//                                                                
4629
4198
#define __StrHashTable_h__
4630
4199
 
4631
4200
 
4632
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
4201
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
4633
4202
// This file is part of PUMA.
4634
4203
// Copyright (C) 1999-2003  The PUMA developer team.
4635
4204
//                                                                
4652
4221
#define __StrHashKey_h__
4653
4222
 
4654
4223
 
4655
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
4224
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
4656
4225
// This file is part of PUMA.
4657
4226
// Copyright (C) 1999-2003  The PUMA developer team.
4658
4227
//                                                                
4682
4251
class Unit;
4683
4252
 
4684
4253
 
4685
 
#line 4686 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4254
#line 4255 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
4686
4255
} // closed Puma
 
4256
class CCExprResolve;
 
4257
class CExprResolve;
4687
4258
class WinIfExists;
4688
4259
class WinImportHandler;
4689
4260
class WinMacros;
4690
 
class CMatchSyntax;
4691
 
class ExtGnu;
 
4261
class WinAsm;
 
4262
class WinDeclSpecs;
 
4263
class WinMemberExplSpec;
 
4264
class WinTypeKeywords;
 
4265
class WinFriend;
4692
4266
class ExtAC;
4693
4267
class ExtACBuilderCoupling;
4694
4268
class ExtACSyntaxCoupling;
4695
4269
class ExtACTree;
4696
4270
class ExtACKeywords;
4697
 
class WinAsm;
4698
 
class WinDeclSpecs;
4699
 
class WinMemberExplSpec;
4700
 
class WinTypeKeywords;
 
4271
class ExtGnu;
4701
4272
class PragmaOnceUnitState;
4702
4273
class PragmaOnce;
4703
 
class CCExprResolve;
4704
 
class CExprResolve;
 
4274
class CMatchSyntax;
4705
4275
namespace Puma {
4706
4276
 
4707
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
4277
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
4708
4278
class StrCol {
4709
 
#line 4710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4279
#line 4280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4280
  friend class ::CCExprResolve;
 
4281
  friend class ::CExprResolve;
4710
4282
  friend class ::WinIfExists;
4711
4283
  friend class ::WinImportHandler;
4712
4284
  friend class ::WinMacros;
4713
 
  friend class ::CMatchSyntax;
4714
 
  friend class ::ExtGnu;
 
4285
  friend class ::WinAsm;
 
4286
  friend class ::WinDeclSpecs;
 
4287
  friend class ::WinMemberExplSpec;
 
4288
  friend class ::WinTypeKeywords;
 
4289
  friend class ::WinFriend;
4715
4290
  friend class ::ExtAC;
4716
4291
  friend class ::ExtACBuilderCoupling;
4717
4292
  friend class ::ExtACSyntaxCoupling;
4718
4293
  friend class ::ExtACTree;
4719
4294
  friend class ::ExtACKeywords;
4720
 
  friend class ::WinAsm;
4721
 
  friend class ::WinDeclSpecs;
4722
 
  friend class ::WinMemberExplSpec;
4723
 
  friend class ::WinTypeKeywords;
 
4295
  friend class ::ExtGnu;
4724
4296
  friend class ::PragmaOnceUnitState;
4725
4297
  friend class ::PragmaOnce;
4726
 
  friend class ::CCExprResolve;
4727
 
  friend class ::CExprResolve;
 
4298
  friend class ::CMatchSyntax;
4728
4299
 
4729
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
4300
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
4730
4301
 
4731
4302
protected:
4732
4303
  StrCol () {}
4754
4325
 
4755
4326
#endif /* __str_col__ */
4756
4327
 
4757
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Chain.h"
 
4328
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Chain.h"
4758
4329
// This file is part of PUMA.
4759
4330
// Copyright (C) 1999-2003  The PUMA developer team.
4760
4331
//                                                                
4789
4360
 
4790
4361
 
4791
4362
 
4792
 
#line 4793 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4363
#line 4364 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
4793
4364
} // closed Puma
 
4365
class CCExprResolve;
 
4366
class CExprResolve;
4794
4367
class WinIfExists;
4795
4368
class WinImportHandler;
4796
4369
class WinMacros;
4797
 
class CMatchSyntax;
4798
 
class ExtGnu;
 
4370
class WinAsm;
 
4371
class WinDeclSpecs;
 
4372
class WinMemberExplSpec;
 
4373
class WinTypeKeywords;
 
4374
class WinFriend;
4799
4375
class ExtAC;
4800
4376
class ExtACBuilderCoupling;
4801
4377
class ExtACSyntaxCoupling;
4802
4378
class ExtACTree;
4803
4379
class ExtACKeywords;
4804
 
class WinAsm;
4805
 
class WinDeclSpecs;
4806
 
class WinMemberExplSpec;
4807
 
class WinTypeKeywords;
 
4380
class ExtGnu;
4808
4381
class PragmaOnceUnitState;
4809
4382
class PragmaOnce;
4810
 
class CCExprResolve;
4811
 
class CExprResolve;
 
4383
class CMatchSyntax;
4812
4384
namespace Puma {
4813
4385
 
4814
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Chain.h"
 
4386
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Chain.h"
4815
4387
class Chain {
4816
 
#line 4817 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4388
#line 4389 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4389
  friend class ::CCExprResolve;
 
4390
  friend class ::CExprResolve;
4817
4391
  friend class ::WinIfExists;
4818
4392
  friend class ::WinImportHandler;
4819
4393
  friend class ::WinMacros;
4820
 
  friend class ::CMatchSyntax;
4821
 
  friend class ::ExtGnu;
 
4394
  friend class ::WinAsm;
 
4395
  friend class ::WinDeclSpecs;
 
4396
  friend class ::WinMemberExplSpec;
 
4397
  friend class ::WinTypeKeywords;
 
4398
  friend class ::WinFriend;
4822
4399
  friend class ::ExtAC;
4823
4400
  friend class ::ExtACBuilderCoupling;
4824
4401
  friend class ::ExtACSyntaxCoupling;
4825
4402
  friend class ::ExtACTree;
4826
4403
  friend class ::ExtACKeywords;
4827
 
  friend class ::WinAsm;
4828
 
  friend class ::WinDeclSpecs;
4829
 
  friend class ::WinMemberExplSpec;
4830
 
  friend class ::WinTypeKeywords;
 
4404
  friend class ::ExtGnu;
4831
4405
  friend class ::PragmaOnceUnitState;
4832
4406
  friend class ::PragmaOnce;
4833
 
  friend class ::CCExprResolve;
4834
 
  friend class ::CExprResolve;
 
4407
  friend class ::CMatchSyntax;
4835
4408
 
4836
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Chain.h"
 
4409
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Chain.h"
4837
4410
 
4838
4411
  Chain *next;
4839
4412
 
4897
4470
 
4898
4471
#endif /* __Chain_h__ */
4899
4472
 
4900
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
4473
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
4901
4474
namespace Puma {
4902
4475
 
4903
4476
 
4904
4477
 
4905
 
#line 4906 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4478
#line 4479 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
4906
4479
} // closed Puma
 
4480
class CCExprResolve;
 
4481
class CExprResolve;
4907
4482
class WinIfExists;
4908
4483
class WinImportHandler;
4909
4484
class WinMacros;
4910
 
class CMatchSyntax;
4911
 
class ExtGnu;
 
4485
class WinAsm;
 
4486
class WinDeclSpecs;
 
4487
class WinMemberExplSpec;
 
4488
class WinTypeKeywords;
 
4489
class WinFriend;
4912
4490
class ExtAC;
4913
4491
class ExtACBuilderCoupling;
4914
4492
class ExtACSyntaxCoupling;
4915
4493
class ExtACTree;
4916
4494
class ExtACKeywords;
4917
 
class WinAsm;
4918
 
class WinDeclSpecs;
4919
 
class WinMemberExplSpec;
4920
 
class WinTypeKeywords;
 
4495
class ExtGnu;
4921
4496
class PragmaOnceUnitState;
4922
4497
class PragmaOnce;
4923
 
class CCExprResolve;
4924
 
class CExprResolve;
 
4498
class CMatchSyntax;
4925
4499
namespace Puma {
4926
4500
 
4927
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
4501
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
4928
4502
class StrHashKey : public Chain {
4929
 
#line 4930 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4503
#line 4504 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4504
  friend class ::CCExprResolve;
 
4505
  friend class ::CExprResolve;
4930
4506
  friend class ::WinIfExists;
4931
4507
  friend class ::WinImportHandler;
4932
4508
  friend class ::WinMacros;
4933
 
  friend class ::CMatchSyntax;
4934
 
  friend class ::ExtGnu;
 
4509
  friend class ::WinAsm;
 
4510
  friend class ::WinDeclSpecs;
 
4511
  friend class ::WinMemberExplSpec;
 
4512
  friend class ::WinTypeKeywords;
 
4513
  friend class ::WinFriend;
4935
4514
  friend class ::ExtAC;
4936
4515
  friend class ::ExtACBuilderCoupling;
4937
4516
  friend class ::ExtACSyntaxCoupling;
4938
4517
  friend class ::ExtACTree;
4939
4518
  friend class ::ExtACKeywords;
4940
 
  friend class ::WinAsm;
4941
 
  friend class ::WinDeclSpecs;
4942
 
  friend class ::WinMemberExplSpec;
4943
 
  friend class ::WinTypeKeywords;
 
4519
  friend class ::ExtGnu;
4944
4520
  friend class ::PragmaOnceUnitState;
4945
4521
  friend class ::PragmaOnce;
4946
 
  friend class ::CCExprResolve;
4947
 
  friend class ::CExprResolve;
 
4522
  friend class ::CMatchSyntax;
4948
4523
 
4949
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
4524
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
4950
4525
 
4951
4526
  unsigned int m_Magic;
4952
4527
  unsigned int m_Len;
4957
4532
public:
4958
4533
  StrHashKey (int m, const char *s, int l) : 
4959
4534
    m_Magic (m), m_Len (l), m_Str (StrCol::dup (s, l)) {}
 
4535
  ~StrHashKey () { if (m_Str) delete[] m_Str; }
4960
4536
 
4961
4537
  unsigned int getMagic () const { return m_Magic; }
4962
4538
  unsigned int length () const { return m_Len; }
4968
4544
 
4969
4545
#endif /* __StrHashKey_h__ */
4970
4546
 
4971
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
4547
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
4972
4548
#include <assert.h>
4973
4549
 
4974
4550
namespace Puma {
4975
4551
 
4976
4552
 
4977
4553
 
4978
 
#line 4979 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4554
#line 4555 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
4979
4555
} // closed Puma
 
4556
class CCExprResolve;
 
4557
class CExprResolve;
4980
4558
class WinIfExists;
4981
4559
class WinImportHandler;
4982
4560
class WinMacros;
4983
 
class CMatchSyntax;
4984
 
class ExtGnu;
 
4561
class WinAsm;
 
4562
class WinDeclSpecs;
 
4563
class WinMemberExplSpec;
 
4564
class WinTypeKeywords;
 
4565
class WinFriend;
4985
4566
class ExtAC;
4986
4567
class ExtACBuilderCoupling;
4987
4568
class ExtACSyntaxCoupling;
4988
4569
class ExtACTree;
4989
4570
class ExtACKeywords;
4990
 
class WinAsm;
4991
 
class WinDeclSpecs;
4992
 
class WinMemberExplSpec;
4993
 
class WinTypeKeywords;
 
4571
class ExtGnu;
4994
4572
class PragmaOnceUnitState;
4995
4573
class PragmaOnce;
4996
 
class CCExprResolve;
4997
 
class CExprResolve;
 
4574
class CMatchSyntax;
4998
4575
namespace Puma {
4999
4576
 
5000
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
4577
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
5001
4578
class StrHashTable {
5002
 
#line 5003 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4579
#line 4580 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4580
  friend class ::CCExprResolve;
 
4581
  friend class ::CExprResolve;
5003
4582
  friend class ::WinIfExists;
5004
4583
  friend class ::WinImportHandler;
5005
4584
  friend class ::WinMacros;
5006
 
  friend class ::CMatchSyntax;
5007
 
  friend class ::ExtGnu;
 
4585
  friend class ::WinAsm;
 
4586
  friend class ::WinDeclSpecs;
 
4587
  friend class ::WinMemberExplSpec;
 
4588
  friend class ::WinTypeKeywords;
 
4589
  friend class ::WinFriend;
5008
4590
  friend class ::ExtAC;
5009
4591
  friend class ::ExtACBuilderCoupling;
5010
4592
  friend class ::ExtACSyntaxCoupling;
5011
4593
  friend class ::ExtACTree;
5012
4594
  friend class ::ExtACKeywords;
5013
 
  friend class ::WinAsm;
5014
 
  friend class ::WinDeclSpecs;
5015
 
  friend class ::WinMemberExplSpec;
5016
 
  friend class ::WinTypeKeywords;
 
4595
  friend class ::ExtGnu;
5017
4596
  friend class ::PragmaOnceUnitState;
5018
4597
  friend class ::PragmaOnce;
5019
 
  friend class ::CCExprResolve;
5020
 
  friend class ::CExprResolve;
 
4598
  friend class ::CMatchSyntax;
5021
4599
 
5022
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
4600
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
5023
4601
 
5024
4602
  StrHashKey *_emptyKey;
5025
4603
 
5032
4610
  StrHashKey *empty () const { assert (_emptyKey); return _emptyKey; }
5033
4611
  StrHashKey *insert (const char *);
5034
4612
  void remove (StrHashKey *);
 
4613
  void clear ();
5035
4614
 
5036
4615
  enum { STRHASHTABLE_SIZE=0xffff };
5037
4616
  
5039
4618
  Chain m_Table[STRHASHTABLE_SIZE];
5040
4619
 
5041
4620
  StrHashKey *find (unsigned int, const char *, unsigned int);
5042
 
  unsigned int hash (const char *, unsigned int);
 
4621
  unsigned int hash (const char *, unsigned int &);
5043
4622
};
5044
4623
 
5045
4624
 
5047
4626
 
5048
4627
#endif /* __StrHashTable_h__ */
5049
4628
 
5050
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
 
4629
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
5051
4630
#include <assert.h>
5052
4631
 
5053
4632
namespace Puma {
5056
4635
extern StrHashTable ___str_dict;
5057
4636
 
5058
4637
 
5059
 
#line 5060 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4638
#line 4639 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
5060
4639
} // closed Puma
 
4640
class CCExprResolve;
 
4641
class CExprResolve;
5061
4642
class WinIfExists;
5062
4643
class WinImportHandler;
5063
4644
class WinMacros;
5064
 
class CMatchSyntax;
5065
 
class ExtGnu;
 
4645
class WinAsm;
 
4646
class WinDeclSpecs;
 
4647
class WinMemberExplSpec;
 
4648
class WinTypeKeywords;
 
4649
class WinFriend;
5066
4650
class ExtAC;
5067
4651
class ExtACBuilderCoupling;
5068
4652
class ExtACSyntaxCoupling;
5069
4653
class ExtACTree;
5070
4654
class ExtACKeywords;
5071
 
class WinAsm;
5072
 
class WinDeclSpecs;
5073
 
class WinMemberExplSpec;
5074
 
class WinTypeKeywords;
 
4655
class ExtGnu;
5075
4656
class PragmaOnceUnitState;
5076
4657
class PragmaOnce;
5077
 
class CCExprResolve;
5078
 
class CExprResolve;
 
4658
class CMatchSyntax;
5079
4659
namespace Puma {
5080
4660
 
5081
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
 
4661
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
5082
4662
class DString {
5083
 
#line 5084 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4663
#line 4664 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4664
  friend class ::CCExprResolve;
 
4665
  friend class ::CExprResolve;
5084
4666
  friend class ::WinIfExists;
5085
4667
  friend class ::WinImportHandler;
5086
4668
  friend class ::WinMacros;
5087
 
  friend class ::CMatchSyntax;
5088
 
  friend class ::ExtGnu;
 
4669
  friend class ::WinAsm;
 
4670
  friend class ::WinDeclSpecs;
 
4671
  friend class ::WinMemberExplSpec;
 
4672
  friend class ::WinTypeKeywords;
 
4673
  friend class ::WinFriend;
5089
4674
  friend class ::ExtAC;
5090
4675
  friend class ::ExtACBuilderCoupling;
5091
4676
  friend class ::ExtACSyntaxCoupling;
5092
4677
  friend class ::ExtACTree;
5093
4678
  friend class ::ExtACKeywords;
5094
 
  friend class ::WinAsm;
5095
 
  friend class ::WinDeclSpecs;
5096
 
  friend class ::WinMemberExplSpec;
5097
 
  friend class ::WinTypeKeywords;
 
4679
  friend class ::ExtGnu;
5098
4680
  friend class ::PragmaOnceUnitState;
5099
4681
  friend class ::PragmaOnce;
5100
 
  friend class ::CCExprResolve;
5101
 
  friend class ::CExprResolve;
 
4682
  friend class ::CMatchSyntax;
5102
4683
 
5103
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
 
4684
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
5104
4685
 
5105
4686
  StrHashKey *m_Key;
5106
4687
 
5167
4748
    assert (m_Key);
5168
4749
    return c_str ();
5169
4750
  }
 
4751
  
 
4752
  static void clearDict() {
 
4753
    ___str_dict.clear ();
 
4754
  }
5170
4755
};
5171
4756
 
5172
4757
 
5174
4759
 
5175
4760
#endif /* __DString_h__ */
5176
4761
 
5177
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
4762
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
5178
4763
namespace Puma {
5179
4764
 
5180
4765
 
5181
4766
 
5182
 
#line 5183 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4767
#line 4768 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
5183
4768
} // closed Puma
 
4769
class CCExprResolve;
 
4770
class CExprResolve;
5184
4771
class WinIfExists;
5185
4772
class WinImportHandler;
5186
4773
class WinMacros;
5187
 
class CMatchSyntax;
5188
 
class ExtGnu;
 
4774
class WinAsm;
 
4775
class WinDeclSpecs;
 
4776
class WinMemberExplSpec;
 
4777
class WinTypeKeywords;
 
4778
class WinFriend;
5189
4779
class ExtAC;
5190
4780
class ExtACBuilderCoupling;
5191
4781
class ExtACSyntaxCoupling;
5192
4782
class ExtACTree;
5193
4783
class ExtACKeywords;
5194
 
class WinAsm;
5195
 
class WinDeclSpecs;
5196
 
class WinMemberExplSpec;
5197
 
class WinTypeKeywords;
 
4784
class ExtGnu;
5198
4785
class PragmaOnceUnitState;
5199
4786
class PragmaOnce;
5200
 
class CCExprResolve;
5201
 
class CExprResolve;
 
4787
class CMatchSyntax;
5202
4788
namespace Puma {
5203
4789
 
5204
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
4790
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
5205
4791
class FilenameInfo : public RefCnt {
5206
 
#line 5207 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4792
#line 4793 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4793
  friend class ::CCExprResolve;
 
4794
  friend class ::CExprResolve;
5207
4795
  friend class ::WinIfExists;
5208
4796
  friend class ::WinImportHandler;
5209
4797
  friend class ::WinMacros;
5210
 
  friend class ::CMatchSyntax;
5211
 
  friend class ::ExtGnu;
 
4798
  friend class ::WinAsm;
 
4799
  friend class ::WinDeclSpecs;
 
4800
  friend class ::WinMemberExplSpec;
 
4801
  friend class ::WinTypeKeywords;
 
4802
  friend class ::WinFriend;
5212
4803
  friend class ::ExtAC;
5213
4804
  friend class ::ExtACBuilderCoupling;
5214
4805
  friend class ::ExtACSyntaxCoupling;
5215
4806
  friend class ::ExtACTree;
5216
4807
  friend class ::ExtACKeywords;
5217
 
  friend class ::WinAsm;
5218
 
  friend class ::WinDeclSpecs;
5219
 
  friend class ::WinMemberExplSpec;
5220
 
  friend class ::WinTypeKeywords;
 
4808
  friend class ::ExtGnu;
5221
4809
  friend class ::PragmaOnceUnitState;
5222
4810
  friend class ::PragmaOnce;
5223
 
  friend class ::CCExprResolve;
5224
 
  friend class ::CExprResolve;
 
4811
  friend class ::CMatchSyntax;
5225
4812
 
5226
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
4813
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
5227
4814
 
5228
4815
  DString _name;
5229
4816
  const char *_path;
5233
4820
  FilenameInfo () : _path ((const char*)0), _root ((const char*)0) {}
5234
4821
  ~FilenameInfo ();
5235
4822
  void name (const char *n);
5236
 
  void name (const DString &dsn) { _name = dsn; }
 
4823
//  void name (const DString &dsn) { _name = dsn; }
5237
4824
  const char *name () const { return _name.c_str (); }
5238
4825
  const char *path ();
5239
4826
  const char *root ();
5248
4835
 
5249
4836
#endif /* __filename_info_h__ */
5250
4837
 
5251
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
 
4838
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
5252
4839
namespace Puma {
5253
4840
 
5254
4841
 
5255
4842
 
5256
 
#line 5257 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4843
#line 4844 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
5257
4844
} // closed Puma
 
4845
class CCExprResolve;
 
4846
class CExprResolve;
5258
4847
class WinIfExists;
5259
4848
class WinImportHandler;
5260
4849
class WinMacros;
5261
 
class CMatchSyntax;
5262
 
class ExtGnu;
 
4850
class WinAsm;
 
4851
class WinDeclSpecs;
 
4852
class WinMemberExplSpec;
 
4853
class WinTypeKeywords;
 
4854
class WinFriend;
5263
4855
class ExtAC;
5264
4856
class ExtACBuilderCoupling;
5265
4857
class ExtACSyntaxCoupling;
5266
4858
class ExtACTree;
5267
4859
class ExtACKeywords;
5268
 
class WinAsm;
5269
 
class WinDeclSpecs;
5270
 
class WinMemberExplSpec;
5271
 
class WinTypeKeywords;
 
4860
class ExtGnu;
5272
4861
class PragmaOnceUnitState;
5273
4862
class PragmaOnce;
5274
 
class CCExprResolve;
5275
 
class CExprResolve;
 
4863
class CMatchSyntax;
5276
4864
namespace Puma {
5277
4865
 
5278
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
 
4866
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
5279
4867
class Filename : public SmartPtr, public Printable {
5280
 
#line 5281 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4868
#line 4869 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4869
  friend class ::CCExprResolve;
 
4870
  friend class ::CExprResolve;
5281
4871
  friend class ::WinIfExists;
5282
4872
  friend class ::WinImportHandler;
5283
4873
  friend class ::WinMacros;
5284
 
  friend class ::CMatchSyntax;
5285
 
  friend class ::ExtGnu;
 
4874
  friend class ::WinAsm;
 
4875
  friend class ::WinDeclSpecs;
 
4876
  friend class ::WinMemberExplSpec;
 
4877
  friend class ::WinTypeKeywords;
 
4878
  friend class ::WinFriend;
5286
4879
  friend class ::ExtAC;
5287
4880
  friend class ::ExtACBuilderCoupling;
5288
4881
  friend class ::ExtACSyntaxCoupling;
5289
4882
  friend class ::ExtACTree;
5290
4883
  friend class ::ExtACKeywords;
5291
 
  friend class ::WinAsm;
5292
 
  friend class ::WinDeclSpecs;
5293
 
  friend class ::WinMemberExplSpec;
5294
 
  friend class ::WinTypeKeywords;
 
4884
  friend class ::ExtGnu;
5295
4885
  friend class ::PragmaOnceUnitState;
5296
4886
  friend class ::PragmaOnce;
5297
 
  friend class ::CCExprResolve;
5298
 
  friend class ::CExprResolve;
 
4887
  friend class ::CMatchSyntax;
5299
4888
 
5300
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
 
4889
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
5301
4890
 
5302
4891
  FilenameInfo *info () const { return (FilenameInfo*)data (); }
5303
4892
 
5305
4894
  Filename () {}
5306
4895
  Filename (const char *n) { name (n); }
5307
4896
  Filename &operator = (const char *n) { name (n); return *this; }
 
4897
  bool operator ~ () const { return info () != 0; }
5308
4898
  void name (const char *n);
5309
4899
  const char *name () const;
5310
4900
  const char *path () const;
5320
4910
 
5321
4911
#endif /* __filename_h__ */
5322
4912
 
5323
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
 
4913
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
5324
4914
namespace Puma {
5325
4915
 
5326
4916
 
5327
4917
 
5328
 
#line 5329 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4918
#line 4919 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
5329
4919
} // closed Puma
 
4920
class CCExprResolve;
 
4921
class CExprResolve;
5330
4922
class WinIfExists;
5331
4923
class WinImportHandler;
5332
4924
class WinMacros;
5333
 
class CMatchSyntax;
5334
 
class ExtGnu;
 
4925
class WinAsm;
 
4926
class WinDeclSpecs;
 
4927
class WinMemberExplSpec;
 
4928
class WinTypeKeywords;
 
4929
class WinFriend;
5335
4930
class ExtAC;
5336
4931
class ExtACBuilderCoupling;
5337
4932
class ExtACSyntaxCoupling;
5338
4933
class ExtACTree;
5339
4934
class ExtACKeywords;
5340
 
class WinAsm;
5341
 
class WinDeclSpecs;
5342
 
class WinMemberExplSpec;
5343
 
class WinTypeKeywords;
 
4935
class ExtGnu;
5344
4936
class PragmaOnceUnitState;
5345
4937
class PragmaOnce;
5346
 
class CCExprResolve;
5347
 
class CExprResolve;
 
4938
class CMatchSyntax;
5348
4939
namespace Puma {
5349
4940
 
5350
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
5351
 
class LocationInfo : public RefCnt {
5352
 
#line 5353 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4941
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
 
4942
class Location {
 
4943
#line 4944 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
4944
  friend class ::CCExprResolve;
 
4945
  friend class ::CExprResolve;
5353
4946
  friend class ::WinIfExists;
5354
4947
  friend class ::WinImportHandler;
5355
4948
  friend class ::WinMacros;
5356
 
  friend class ::CMatchSyntax;
5357
 
  friend class ::ExtGnu;
 
4949
  friend class ::WinAsm;
 
4950
  friend class ::WinDeclSpecs;
 
4951
  friend class ::WinMemberExplSpec;
 
4952
  friend class ::WinTypeKeywords;
 
4953
  friend class ::WinFriend;
5358
4954
  friend class ::ExtAC;
5359
4955
  friend class ::ExtACBuilderCoupling;
5360
4956
  friend class ::ExtACSyntaxCoupling;
5361
4957
  friend class ::ExtACTree;
5362
4958
  friend class ::ExtACKeywords;
5363
 
  friend class ::WinAsm;
5364
 
  friend class ::WinDeclSpecs;
5365
 
  friend class ::WinMemberExplSpec;
5366
 
  friend class ::WinTypeKeywords;
 
4959
  friend class ::ExtGnu;
5367
4960
  friend class ::PragmaOnceUnitState;
5368
4961
  friend class ::PragmaOnce;
5369
 
  friend class ::CCExprResolve;
5370
 
  friend class ::CExprResolve;
 
4962
  friend class ::CMatchSyntax;
5371
4963
 
5372
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
 
4964
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
5373
4965
 
5374
4966
  Filename _filename;
5375
4967
  int _line;
 
4968
  int _column;
5376
4969
 
5377
4970
public:
5378
 
  LocationInfo () : _filename (), _line (0) {}
5379
 
  void setup (Filename f, int l);
 
4971
  Location () : _filename (), _line (0), _column (0) {}
 
4972
  Location (Filename f, int l, int c = 0) { setup (f, l, c); }
 
4973
  void setup (Filename f, int l, int c = 0) {
 
4974
    _filename = f;
 
4975
    _line     = l;
 
4976
    _column   = c;
 
4977
  }
5380
4978
  const Filename &filename () const { return _filename; }
5381
4979
  int line () const { return _line; }
5382
 
  bool operator < (const LocationInfo &l) const;
5383
 
  bool operator == (const LocationInfo &l) const;
5384
 
};
5385
 
 
5386
 
 
5387
 
} // namespace Puma
5388
 
 
5389
 
#endif /* __location_info_h__ */
5390
 
 
5391
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
5392
 
namespace Puma {
5393
 
 
5394
 
 
5395
 
 
5396
 
#line 5397 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
5397
 
} // closed Puma
5398
 
class WinIfExists;
5399
 
class WinImportHandler;
5400
 
class WinMacros;
5401
 
class CMatchSyntax;
5402
 
class ExtGnu;
5403
 
class ExtAC;
5404
 
class ExtACBuilderCoupling;
5405
 
class ExtACSyntaxCoupling;
5406
 
class ExtACTree;
5407
 
class ExtACKeywords;
5408
 
class WinAsm;
5409
 
class WinDeclSpecs;
5410
 
class WinMemberExplSpec;
5411
 
class WinTypeKeywords;
5412
 
class PragmaOnceUnitState;
5413
 
class PragmaOnce;
5414
 
class CCExprResolve;
5415
 
class CExprResolve;
5416
 
namespace Puma {
5417
 
 
5418
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
5419
 
class Location : public SmartPtr, public Printable {
5420
 
#line 5421 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
5421
 
  friend class ::WinIfExists;
5422
 
  friend class ::WinImportHandler;
5423
 
  friend class ::WinMacros;
5424
 
  friend class ::CMatchSyntax;
5425
 
  friend class ::ExtGnu;
5426
 
  friend class ::ExtAC;
5427
 
  friend class ::ExtACBuilderCoupling;
5428
 
  friend class ::ExtACSyntaxCoupling;
5429
 
  friend class ::ExtACTree;
5430
 
  friend class ::ExtACKeywords;
5431
 
  friend class ::WinAsm;
5432
 
  friend class ::WinDeclSpecs;
5433
 
  friend class ::WinMemberExplSpec;
5434
 
  friend class ::WinTypeKeywords;
5435
 
  friend class ::PragmaOnceUnitState;
5436
 
  friend class ::PragmaOnce;
5437
 
  friend class ::CCExprResolve;
5438
 
  friend class ::CExprResolve;
5439
 
 
5440
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
5441
 
 
5442
 
  LocationInfo *info () const { return (LocationInfo*)data (); }
5443
 
 
5444
 
public:
5445
 
  Location () {}
5446
 
  Location (Filename f, int l) { setup (f, l); }
5447
 
  Location (LocationInfo *lptr) : SmartPtr (lptr) {}
5448
 
  LocationInfo *operator ~ () { if (info ()) info ()->ref (); return info (); }
5449
 
  void setup (Filename f, int l);
5450
 
  const Filename &filename () const   { return info ()->filename (); }
5451
 
  int line () const;
5452
 
  bool operator == (const Location &l) const;
 
4980
  int column () const { return _column; }
 
4981
  bool operator == (const Location &l) const {
 
4982
    return filename () == l.filename () && line () == l.line () &&
 
4983
      column () == l.column ();
 
4984
  }
5453
4985
  bool operator != (const Location &l) const { return ! (*this == l); }
5454
 
  bool operator < (const Location &l) const;
 
4986
  bool operator < (const Location &l) const {
 
4987
    // TODO: does it make sense to compare the filenames? better assert?
 
4988
    if (filename () != l.filename ())
 
4989
      return false;
 
4990
    return line () < l.line () && column () < l.column ();
 
4991
  }
 
4992
};
5455
4993
 
5456
 
  virtual void print (ostream &os) const {
5457
 
    if (info ())
 
4994
inline std::ostream &operator << (std::ostream &os, const Location &loc) {
5458
4995
#ifdef VISUAL_STUDIO
5459
 
      os << filename () << "(" << line () << ")";
 
4996
  os << loc.filename () << "(" << loc.line () << ")";
5460
4997
#else
5461
 
      os << filename () << ":" << line ();
 
4998
  os << loc.filename () << ":" << loc.line ();
5462
4999
#endif
5463
 
  }
5464
 
};
5465
 
 
5466
 
 
 
5000
  return os;  
 
5001
}
5467
5002
} // namespace Puma
5468
5003
 
5469
5004
#endif /* __location_h__ */
5470
5005
 
5471
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
5006
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
5472
5007
// This file is part of PUMA.
5473
5008
// Copyright (C) 1999-2003  The PUMA developer team.
5474
5009
//                                                                
5503
5038
class List;
5504
5039
 
5505
5040
 
5506
 
#line 5507 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5041
#line 5042 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
5507
5042
} // closed Puma
 
5043
class CCExprResolve;
 
5044
class CExprResolve;
5508
5045
class WinIfExists;
5509
5046
class WinImportHandler;
5510
5047
class WinMacros;
5511
 
class CMatchSyntax;
5512
 
class ExtGnu;
 
5048
class WinAsm;
 
5049
class WinDeclSpecs;
 
5050
class WinMemberExplSpec;
 
5051
class WinTypeKeywords;
 
5052
class WinFriend;
5513
5053
class ExtAC;
5514
5054
class ExtACBuilderCoupling;
5515
5055
class ExtACSyntaxCoupling;
5516
5056
class ExtACTree;
5517
5057
class ExtACKeywords;
5518
 
class WinAsm;
5519
 
class WinDeclSpecs;
5520
 
class WinMemberExplSpec;
5521
 
class WinTypeKeywords;
 
5058
class ExtGnu;
5522
5059
class PragmaOnceUnitState;
5523
5060
class PragmaOnce;
5524
 
class CCExprResolve;
5525
 
class CExprResolve;
 
5061
class CMatchSyntax;
5526
5062
namespace Puma {
5527
5063
 
5528
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
5064
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
5529
5065
class ListElement {
5530
 
#line 5531 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5066
#line 5067 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5067
  friend class ::CCExprResolve;
 
5068
  friend class ::CExprResolve;
5531
5069
  friend class ::WinIfExists;
5532
5070
  friend class ::WinImportHandler;
5533
5071
  friend class ::WinMacros;
5534
 
  friend class ::CMatchSyntax;
5535
 
  friend class ::ExtGnu;
 
5072
  friend class ::WinAsm;
 
5073
  friend class ::WinDeclSpecs;
 
5074
  friend class ::WinMemberExplSpec;
 
5075
  friend class ::WinTypeKeywords;
 
5076
  friend class ::WinFriend;
5536
5077
  friend class ::ExtAC;
5537
5078
  friend class ::ExtACBuilderCoupling;
5538
5079
  friend class ::ExtACSyntaxCoupling;
5539
5080
  friend class ::ExtACTree;
5540
5081
  friend class ::ExtACKeywords;
5541
 
  friend class ::WinAsm;
5542
 
  friend class ::WinDeclSpecs;
5543
 
  friend class ::WinMemberExplSpec;
5544
 
  friend class ::WinTypeKeywords;
 
5082
  friend class ::ExtGnu;
5545
5083
  friend class ::PragmaOnceUnitState;
5546
5084
  friend class ::PragmaOnce;
5547
 
  friend class ::CCExprResolve;
5548
 
  friend class ::CExprResolve;
 
5085
  friend class ::CMatchSyntax;
5549
5086
 
5550
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
5087
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
5551
5088
 
5552
5089
  friend class List;
5553
5090
 
5568
5105
 
5569
5106
#endif /* __list_element_h__ */
5570
5107
 
5571
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
5108
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
5572
5109
#include <assert.h>
5573
5110
 
5574
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
5111
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
5575
5112
namespace Puma {
5576
5113
 
5577
5114
 
5578
5115
 
5579
 
#line 5580 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5116
#line 5117 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
5580
5117
} // closed Puma
 
5118
class CCExprResolve;
 
5119
class CExprResolve;
5581
5120
class WinIfExists;
5582
5121
class WinImportHandler;
5583
5122
class WinMacros;
5584
 
class CMatchSyntax;
5585
 
class ExtGnu;
 
5123
class WinAsm;
 
5124
class WinDeclSpecs;
 
5125
class WinMemberExplSpec;
 
5126
class WinTypeKeywords;
 
5127
class WinFriend;
5586
5128
class ExtAC;
5587
5129
class ExtACBuilderCoupling;
5588
5130
class ExtACSyntaxCoupling;
5589
5131
class ExtACTree;
5590
5132
class ExtACKeywords;
5591
 
class WinAsm;
5592
 
class WinDeclSpecs;
5593
 
class WinMemberExplSpec;
5594
 
class WinTypeKeywords;
 
5133
class ExtGnu;
5595
5134
class PragmaOnceUnitState;
5596
5135
class PragmaOnce;
5597
 
class CCExprResolve;
5598
 
class CExprResolve;
 
5136
class CMatchSyntax;
5599
5137
namespace Puma {
5600
5138
 
5601
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
5139
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
5602
5140
class Token : public ListElement {
5603
 
#line 5604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5141
#line 5142 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5142
  friend class ::CCExprResolve;
 
5143
  friend class ::CExprResolve;
5604
5144
  friend class ::WinIfExists;
5605
5145
  friend class ::WinImportHandler;
5606
5146
  friend class ::WinMacros;
5607
 
  friend class ::CMatchSyntax;
5608
 
  friend class ::ExtGnu;
 
5147
  friend class ::WinAsm;
 
5148
  friend class ::WinDeclSpecs;
 
5149
  friend class ::WinMemberExplSpec;
 
5150
  friend class ::WinTypeKeywords;
 
5151
  friend class ::WinFriend;
5609
5152
  friend class ::ExtAC;
5610
5153
  friend class ::ExtACBuilderCoupling;
5611
5154
  friend class ::ExtACSyntaxCoupling;
5612
5155
  friend class ::ExtACTree;
5613
5156
  friend class ::ExtACKeywords;
5614
 
  friend class ::WinAsm;
5615
 
  friend class ::WinDeclSpecs;
5616
 
  friend class ::WinMemberExplSpec;
5617
 
  friend class ::WinTypeKeywords;
 
5157
  friend class ::ExtGnu;
5618
5158
  friend class ::PragmaOnceUnitState;
5619
5159
  friend class ::PragmaOnce;
5620
 
  friend class ::CCExprResolve;
5621
 
  friend class ::CExprResolve;
 
5160
  friend class ::CMatchSyntax;
5622
5161
 
5623
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
5162
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
5624
5163
 
5625
5164
  int _type, _real_type;
5626
5165
 
5627
5166
  Location _location;
5628
5167
  LanguageID _language;
5629
 
  DString _text;
 
5168
  const char *_text;
 
5169
  mutable DString _dtext;
5630
5170
 
5631
5171
  Array<int> *_cont_lines;
5632
5172
   
5667
5207
  void macro_generated ()           { _flags |= TK_MACRO_GENERATED; }
5668
5208
  void macro_call ()                { _flags |= TK_MACRO_CALL; }
5669
5209
  
5670
 
  const DString &text () const     { return _text; }
 
5210
  const char *text () const;
 
5211
  DString &dtext () const;
5671
5212
  char *get_static_text () const;
5672
5213
  int type () const                 { return _type; }
5673
5214
  const Location &location () const { return _location; }
5744
5285
 
5745
5286
#endif /* __Token_h__ */
5746
5287
 
5747
 
#line 167 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5748
 
using namespace std;
5749
 
 
5750
 
namespace Puma {
5751
 
 
5752
 
 
5753
 
class ErrorStream;
5754
 
class CObjectInfo;
5755
 
class CStructure;
5756
 
 
5757
 
/*****************************************************************************/
5758
 
/*                                                                           */
5759
 
/*                    S y n t a x  t r e e  n o d e s                        */
5760
 
/*                                                                           */
5761
 
/*****************************************************************************/
5762
 
 
5763
 
 
5764
 
#line 5765 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
5765
 
} // closed Puma
5766
 
class WinIfExists;
5767
 
class WinImportHandler;
5768
 
class WinMacros;
5769
 
class CMatchSyntax;
5770
 
class ExtGnu;
5771
 
class ExtAC;
5772
 
class ExtACBuilderCoupling;
5773
 
class ExtACSyntaxCoupling;
5774
 
class ExtACTree;
5775
 
class ExtACKeywords;
5776
 
class WinAsm;
5777
 
class WinDeclSpecs;
5778
 
class WinMemberExplSpec;
5779
 
class WinTypeKeywords;
5780
 
class PragmaOnceUnitState;
5781
 
class PragmaOnce;
5782
 
class CCExprResolve;
5783
 
class CExprResolve;
5784
 
namespace Puma {
5785
 
 
5786
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5787
 
class CTree {
5788
 
#line 5789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
5789
 
  friend class ::WinIfExists;
5790
 
  friend class ::WinImportHandler;
5791
 
  friend class ::WinMacros;
5792
 
  friend class ::CMatchSyntax;
5793
 
  friend class ::ExtGnu;
5794
 
  friend class ::ExtAC;
5795
 
  friend class ::ExtACBuilderCoupling;
5796
 
  friend class ::ExtACSyntaxCoupling;
5797
 
  friend class ::ExtACTree;
5798
 
  friend class ::ExtACKeywords;
5799
 
  friend class ::WinAsm;
5800
 
  friend class ::WinDeclSpecs;
5801
 
  friend class ::WinMemberExplSpec;
5802
 
  friend class ::WinTypeKeywords;
5803
 
  friend class ::PragmaOnceUnitState;
5804
 
  friend class ::PragmaOnce;
5805
 
  friend class ::CCExprResolve;
5806
 
  friend class ::CExprResolve;
5807
 
 
5808
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5809
 
 
5810
 
public:
5811
 
  /*DEBUG*/static int alloc;
5812
 
  /*DEBUG*/static int release;
5813
 
 
5814
 
protected:
5815
 
  CTree *Son (CTree * const *, int, int) const;
5816
 
  int Sons (CTree * const *, int) const;
5817
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
5818
 
  
5819
 
protected:
5820
 
  CTree () { /*DEBUG*/alloc++; }
5821
 
 
5822
 
public:
5823
 
  virtual ~CTree () { /*DEBUG*/release++; }
5824
 
  virtual int Sons () const = 0;
5825
 
  virtual CTree *Son (int n) const { return (CTree*)0; }
5826
 
  virtual const char *NodeName () const = 0;
5827
 
  virtual Token *token () const;
5828
 
  virtual Token *end_token () const;
5829
 
  virtual CT_Token *token_node () const;
5830
 
  virtual CT_Token *end_token_node () const;
5831
 
  virtual void ReplaceSon (CTree *, CTree *) {}
5832
 
 
5833
 
public: // semantic information
5834
 
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
5835
 
  virtual CExprValue *Value () const { return (CExprValue*)0; }
5836
 
  
5837
 
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
5838
 
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
5839
 
  
5840
 
public: // node classification function
5841
 
  virtual CT_SimpleName *IsSimpleName () { return 0; }
5842
 
  virtual CT_Declarator *IsDeclarator () { return 0; }
5843
 
   private:
5844
 
  typedef CTree CCExprResolveCTree;
5845
 
 
5846
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
5847
 
 public :
5848
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
5849
 
  typedef CTree CExprResolveCTree;
5850
 
 
5851
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
5852
 
 public :
5853
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
5854
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5855
 
};
5856
 
 
5857
 
 
5858
 
#line 5859 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
5859
 
} // closed Puma
5860
 
class WinIfExists;
5861
 
class WinImportHandler;
5862
 
class WinMacros;
5863
 
class CMatchSyntax;
5864
 
class ExtGnu;
5865
 
class ExtAC;
5866
 
class ExtACBuilderCoupling;
5867
 
class ExtACSyntaxCoupling;
5868
 
class ExtACTree;
5869
 
class ExtACKeywords;
5870
 
class WinAsm;
5871
 
class WinDeclSpecs;
5872
 
class WinMemberExplSpec;
5873
 
class WinTypeKeywords;
5874
 
class PragmaOnceUnitState;
5875
 
class PragmaOnce;
5876
 
class CCExprResolve;
5877
 
class CExprResolve;
5878
 
namespace Puma {
5879
 
 
5880
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5881
 
class CT_Error : public CTree {
5882
 
#line 5883 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
5883
 
  friend class ::WinIfExists;
5884
 
  friend class ::WinImportHandler;
5885
 
  friend class ::WinMacros;
5886
 
  friend class ::CMatchSyntax;
5887
 
  friend class ::ExtGnu;
5888
 
  friend class ::ExtAC;
5889
 
  friend class ::ExtACBuilderCoupling;
5890
 
  friend class ::ExtACSyntaxCoupling;
5891
 
  friend class ::ExtACTree;
5892
 
  friend class ::ExtACKeywords;
5893
 
  friend class ::WinAsm;
5894
 
  friend class ::WinDeclSpecs;
5895
 
  friend class ::WinMemberExplSpec;
5896
 
  friend class ::WinTypeKeywords;
5897
 
  friend class ::PragmaOnceUnitState;
5898
 
  friend class ::PragmaOnce;
5899
 
  friend class ::CCExprResolve;
5900
 
  friend class ::CExprResolve;
5901
 
 
5902
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5903
 
 
5904
 
public:
5905
 
  static const char *NodeId ();
5906
 
  const char *NodeName () const { return NodeId (); }
5907
 
  int Sons () const { return 0; }
5908
 
};
5909
 
 
5910
 
 
5911
 
#line 5912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
5912
 
} // closed Puma
5913
 
class WinIfExists;
5914
 
class WinImportHandler;
5915
 
class WinMacros;
5916
 
class CMatchSyntax;
5917
 
class ExtGnu;
5918
 
class ExtAC;
5919
 
class ExtACBuilderCoupling;
5920
 
class ExtACSyntaxCoupling;
5921
 
class ExtACTree;
5922
 
class ExtACKeywords;
5923
 
class WinAsm;
5924
 
class WinDeclSpecs;
5925
 
class WinMemberExplSpec;
5926
 
class WinTypeKeywords;
5927
 
class PragmaOnceUnitState;
5928
 
class PragmaOnce;
5929
 
class CCExprResolve;
5930
 
class CExprResolve;
5931
 
namespace Puma {
5932
 
 
5933
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5934
 
class CT_Token : public CTree {
5935
 
#line 5936 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
5936
 
  friend class ::WinIfExists;
5937
 
  friend class ::WinImportHandler;
5938
 
  friend class ::WinMacros;
5939
 
  friend class ::CMatchSyntax;
5940
 
  friend class ::ExtGnu;
5941
 
  friend class ::ExtAC;
5942
 
  friend class ::ExtACBuilderCoupling;
5943
 
  friend class ::ExtACSyntaxCoupling;
5944
 
  friend class ::ExtACTree;
5945
 
  friend class ::ExtACKeywords;
5946
 
  friend class ::WinAsm;
5947
 
  friend class ::WinDeclSpecs;
5948
 
  friend class ::WinMemberExplSpec;
5949
 
  friend class ::WinTypeKeywords;
5950
 
  friend class ::PragmaOnceUnitState;
5951
 
  friend class ::PragmaOnce;
5952
 
  friend class ::CCExprResolve;
5953
 
  friend class ::CExprResolve;
5954
 
 
5955
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5956
 
 
5957
 
  Token *_token;
5958
 
  unsigned long int _number;
5959
 
  
5960
 
public:
5961
 
  CT_Token (Token *t, unsigned long int n = 0) : 
5962
 
    _token (t), _number (n) {}
5963
 
  static const char *NodeId ();
5964
 
  const char *NodeName () const { return NodeId (); }
5965
 
  int Sons () const { return 0; }
5966
 
  Token *token () const { return _token; }
5967
 
  Token *end_token () const { return _token; }
5968
 
  CT_Token *token_node () const { return (CT_Token*)this; }
5969
 
  CT_Token *end_token_node () const { return (CT_Token*)this; }
5970
 
  void Number (unsigned long int n) { _number = n; }
5971
 
  unsigned long int Number () const { return _number; }
5972
 
  // special new / delete with reusing memory
5973
 
  void *operator new (size_t);
5974
 
  void  operator delete (void *);
5975
 
};
5976
 
 
5977
 
/*****************************************************************************/
5978
 
/*                                                                           */
5979
 
/*                              List nodes                                   */
5980
 
/*                                                                           */
5981
 
/*****************************************************************************/
5982
 
 
5983
 
 
5984
 
#line 5985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
5985
 
} // closed Puma
5986
 
class WinIfExists;
5987
 
class WinImportHandler;
5988
 
class WinMacros;
5989
 
class CMatchSyntax;
5990
 
class ExtGnu;
5991
 
class ExtAC;
5992
 
class ExtACBuilderCoupling;
5993
 
class ExtACSyntaxCoupling;
5994
 
class ExtACTree;
5995
 
class ExtACKeywords;
5996
 
class WinAsm;
5997
 
class WinDeclSpecs;
5998
 
class WinMemberExplSpec;
5999
 
class WinTypeKeywords;
6000
 
class PragmaOnceUnitState;
6001
 
class PragmaOnce;
6002
 
class CCExprResolve;
6003
 
class CExprResolve;
6004
 
namespace Puma {
6005
 
 
6006
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6007
 
class CT_List : public CTree {
6008
 
#line 6009 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6009
 
  friend class ::WinIfExists;
6010
 
  friend class ::WinImportHandler;
6011
 
  friend class ::WinMacros;
6012
 
  friend class ::CMatchSyntax;
6013
 
  friend class ::ExtGnu;
6014
 
  friend class ::ExtAC;
6015
 
  friend class ::ExtACBuilderCoupling;
6016
 
  friend class ::ExtACSyntaxCoupling;
6017
 
  friend class ::ExtACTree;
6018
 
  friend class ::ExtACKeywords;
6019
 
  friend class ::WinAsm;
6020
 
  friend class ::WinDeclSpecs;
6021
 
  friend class ::WinMemberExplSpec;
6022
 
  friend class ::WinTypeKeywords;
6023
 
  friend class ::PragmaOnceUnitState;
6024
 
  friend class ::PragmaOnce;
6025
 
  friend class ::CCExprResolve;
6026
 
  friend class ::CExprResolve;
6027
 
 
6028
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6029
 
 
6030
 
  Array<CTree*> _sons;
6031
 
  int _properties;
6032
 
 
6033
 
protected:
6034
 
  CT_List(int size = 5, int incr = 5, int props = 0) : 
6035
 
    _sons (size, incr), _properties (props) {}
6036
 
 
6037
 
public:
6038
 
  enum {
6039
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
6040
 
    CLOSE = 2,
6041
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
6042
 
    SEPARATORS = 4,   // the list has separators like ','
6043
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
6044
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
6045
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
6046
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
6047
 
  };
6048
 
 
6049
 
  int Entries () const;
6050
 
  CTree *Entry (int no) const;
6051
 
  int Sons () const { return _sons.length (); }
6052
 
  CTree *Son (int n) const { return _sons.lookup (n); }
6053
 
  int GetProperties () const { return _properties; }
6054
 
  void AddProperties (int p) { _properties |= p; }
6055
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
6056
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
6057
 
  void InsertSon (CTree *, CTree *);  // before given son
6058
 
  void ReplaceSon (CTree *, CTree *);
6059
 
  void RemoveSon (CTree *);
6060
 
  void InsertSon (int idx, CTree *s)
6061
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
6062
 
  void ReplaceSon (int idx, CTree *s) 
6063
 
   { if (idx < Sons ()) _sons[idx] = s; }
6064
 
  void RemoveSon (int idx) 
6065
 
   { if (idx < Sons ()) _sons.remove (idx); }
6066
 
};
6067
 
 
6068
 
 
6069
 
#line 6070 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6070
 
} // closed Puma
6071
 
class WinIfExists;
6072
 
class WinImportHandler;
6073
 
class WinMacros;
6074
 
class CMatchSyntax;
6075
 
class ExtGnu;
6076
 
class ExtAC;
6077
 
class ExtACBuilderCoupling;
6078
 
class ExtACSyntaxCoupling;
6079
 
class ExtACTree;
6080
 
class ExtACKeywords;
6081
 
class WinAsm;
6082
 
class WinDeclSpecs;
6083
 
class WinMemberExplSpec;
6084
 
class WinTypeKeywords;
6085
 
class PragmaOnceUnitState;
6086
 
class PragmaOnce;
6087
 
class CCExprResolve;
6088
 
class CExprResolve;
6089
 
namespace Puma {
6090
 
 
6091
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6092
 
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
6093
 
#line 6094 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6094
 
  friend class ::WinIfExists;
6095
 
  friend class ::WinImportHandler;
6096
 
  friend class ::WinMacros;
6097
 
  friend class ::CMatchSyntax;
6098
 
  friend class ::ExtGnu;
6099
 
  friend class ::ExtAC;
6100
 
  friend class ::ExtACBuilderCoupling;
6101
 
  friend class ::ExtACSyntaxCoupling;
6102
 
  friend class ::ExtACTree;
6103
 
  friend class ::ExtACKeywords;
6104
 
  friend class ::WinAsm;
6105
 
  friend class ::WinDeclSpecs;
6106
 
  friend class ::WinMemberExplSpec;
6107
 
  friend class ::WinTypeKeywords;
6108
 
  friend class ::PragmaOnceUnitState;
6109
 
  friend class ::PragmaOnce;
6110
 
  friend class ::CCExprResolve;
6111
 
  friend class ::CExprResolve;
6112
 
 
6113
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6114
 
 
6115
 
public:
6116
 
  CT_ExprList () { AddProperties (SEPARATORS); }
6117
 
  static const char *NodeId ();
6118
 
  const char *NodeName () const { return NodeId (); }
6119
 
 
6120
 
  CTypeInfo *Type () const { return type; }
6121
 
  CExprValue *Value () const { return value; }
6122
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
6123
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
6124
 
};
6125
 
 
6126
 
 
6127
 
#line 6128 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6128
 
} // closed Puma
6129
 
class WinIfExists;
6130
 
class WinImportHandler;
6131
 
class WinMacros;
6132
 
class CMatchSyntax;
6133
 
class ExtGnu;
6134
 
class ExtAC;
6135
 
class ExtACBuilderCoupling;
6136
 
class ExtACSyntaxCoupling;
6137
 
class ExtACTree;
6138
 
class ExtACKeywords;
6139
 
class WinAsm;
6140
 
class WinDeclSpecs;
6141
 
class WinMemberExplSpec;
6142
 
class WinTypeKeywords;
6143
 
class PragmaOnceUnitState;
6144
 
class PragmaOnce;
6145
 
class CCExprResolve;
6146
 
class CExprResolve;
6147
 
namespace Puma {
6148
 
 
6149
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6150
 
class CT_DeclaratorList : public CT_List {
6151
 
#line 6152 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6152
 
  friend class ::WinIfExists;
6153
 
  friend class ::WinImportHandler;
6154
 
  friend class ::WinMacros;
6155
 
  friend class ::CMatchSyntax;
6156
 
  friend class ::ExtGnu;
6157
 
  friend class ::ExtAC;
6158
 
  friend class ::ExtACBuilderCoupling;
6159
 
  friend class ::ExtACSyntaxCoupling;
6160
 
  friend class ::ExtACTree;
6161
 
  friend class ::ExtACKeywords;
6162
 
  friend class ::WinAsm;
6163
 
  friend class ::WinDeclSpecs;
6164
 
  friend class ::WinMemberExplSpec;
6165
 
  friend class ::WinTypeKeywords;
6166
 
  friend class ::PragmaOnceUnitState;
6167
 
  friend class ::PragmaOnce;
6168
 
  friend class ::CCExprResolve;
6169
 
  friend class ::CExprResolve;
6170
 
 
6171
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6172
 
 
6173
 
public:
6174
 
  static const char *NodeId ();
6175
 
  const char *NodeName () const { return NodeId (); }
6176
 
};
6177
 
 
6178
 
 
6179
 
#line 6180 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6180
 
} // closed Puma
6181
 
class WinIfExists;
6182
 
class WinImportHandler;
6183
 
class WinMacros;
6184
 
class CMatchSyntax;
6185
 
class ExtGnu;
6186
 
class ExtAC;
6187
 
class ExtACBuilderCoupling;
6188
 
class ExtACSyntaxCoupling;
6189
 
class ExtACTree;
6190
 
class ExtACKeywords;
6191
 
class WinAsm;
6192
 
class WinDeclSpecs;
6193
 
class WinMemberExplSpec;
6194
 
class WinTypeKeywords;
6195
 
class PragmaOnceUnitState;
6196
 
class PragmaOnce;
6197
 
class CCExprResolve;
6198
 
class CExprResolve;
6199
 
namespace Puma {
6200
 
 
6201
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6202
 
class CT_EnumeratorList : public CT_List {
6203
 
#line 6204 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6204
 
  friend class ::WinIfExists;
6205
 
  friend class ::WinImportHandler;
6206
 
  friend class ::WinMacros;
6207
 
  friend class ::CMatchSyntax;
6208
 
  friend class ::ExtGnu;
6209
 
  friend class ::ExtAC;
6210
 
  friend class ::ExtACBuilderCoupling;
6211
 
  friend class ::ExtACSyntaxCoupling;
6212
 
  friend class ::ExtACTree;
6213
 
  friend class ::ExtACKeywords;
6214
 
  friend class ::WinAsm;
6215
 
  friend class ::WinDeclSpecs;
6216
 
  friend class ::WinMemberExplSpec;
6217
 
  friend class ::WinTypeKeywords;
6218
 
  friend class ::PragmaOnceUnitState;
6219
 
  friend class ::PragmaOnce;
6220
 
  friend class ::CCExprResolve;
6221
 
  friend class ::CExprResolve;
6222
 
 
6223
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6224
 
 
6225
 
public:
6226
 
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
6227
 
  static const char *NodeId ();
6228
 
  const char *NodeName () const { return NodeId (); }
6229
 
};
6230
 
   
6231
 
 
6232
 
#line 6233 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6233
 
} // closed Puma
6234
 
class WinIfExists;
6235
 
class WinImportHandler;
6236
 
class WinMacros;
6237
 
class CMatchSyntax;
6238
 
class ExtGnu;
6239
 
class ExtAC;
6240
 
class ExtACBuilderCoupling;
6241
 
class ExtACSyntaxCoupling;
6242
 
class ExtACTree;
6243
 
class ExtACKeywords;
6244
 
class WinAsm;
6245
 
class WinDeclSpecs;
6246
 
class WinMemberExplSpec;
6247
 
class WinTypeKeywords;
6248
 
class PragmaOnceUnitState;
6249
 
class PragmaOnce;
6250
 
class CCExprResolve;
6251
 
class CExprResolve;
6252
 
namespace Puma {
6253
 
 
6254
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6255
 
class CT_DeclList : public CT_List {
6256
 
#line 6257 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6257
 
  friend class ::WinIfExists;
6258
 
  friend class ::WinImportHandler;
6259
 
  friend class ::WinMacros;
6260
 
  friend class ::CMatchSyntax;
6261
 
  friend class ::ExtGnu;
6262
 
  friend class ::ExtAC;
6263
 
  friend class ::ExtACBuilderCoupling;
6264
 
  friend class ::ExtACSyntaxCoupling;
6265
 
  friend class ::ExtACTree;
6266
 
  friend class ::ExtACKeywords;
6267
 
  friend class ::WinAsm;
6268
 
  friend class ::WinDeclSpecs;
6269
 
  friend class ::WinMemberExplSpec;
6270
 
  friend class ::WinTypeKeywords;
6271
 
  friend class ::PragmaOnceUnitState;
6272
 
  friend class ::PragmaOnce;
6273
 
  friend class ::CCExprResolve;
6274
 
  friend class ::CExprResolve;
6275
 
 
6276
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6277
 
 
6278
 
public:
6279
 
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
6280
 
  static const char *NodeId ();
6281
 
  const char *NodeName () const { return NodeId (); }
6282
 
  void Linkage (CT_LinkageSpec *l);
6283
 
};
6284
 
 
6285
 
 
6286
 
#line 6287 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6287
 
} // closed Puma
6288
 
class WinIfExists;
6289
 
class WinImportHandler;
6290
 
class WinMacros;
6291
 
class CMatchSyntax;
6292
 
class ExtGnu;
6293
 
class ExtAC;
6294
 
class ExtACBuilderCoupling;
6295
 
class ExtACSyntaxCoupling;
6296
 
class ExtACTree;
6297
 
class ExtACKeywords;
6298
 
class WinAsm;
6299
 
class WinDeclSpecs;
6300
 
class WinMemberExplSpec;
6301
 
class WinTypeKeywords;
6302
 
class PragmaOnceUnitState;
6303
 
class PragmaOnce;
6304
 
class CCExprResolve;
6305
 
class CExprResolve;
6306
 
namespace Puma {
6307
 
 
6308
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6309
 
class CT_DeclSpecSeq : public CT_List {
6310
 
#line 6311 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6311
 
  friend class ::WinIfExists;
6312
 
  friend class ::WinImportHandler;
6313
 
  friend class ::WinMacros;
6314
 
  friend class ::CMatchSyntax;
6315
 
  friend class ::ExtGnu;
6316
 
  friend class ::ExtAC;
6317
 
  friend class ::ExtACBuilderCoupling;
6318
 
  friend class ::ExtACSyntaxCoupling;
6319
 
  friend class ::ExtACTree;
6320
 
  friend class ::ExtACKeywords;
6321
 
  friend class ::WinAsm;
6322
 
  friend class ::WinDeclSpecs;
6323
 
  friend class ::WinMemberExplSpec;
6324
 
  friend class ::WinTypeKeywords;
6325
 
  friend class ::PragmaOnceUnitState;
6326
 
  friend class ::PragmaOnce;
6327
 
  friend class ::CCExprResolve;
6328
 
  friend class ::CExprResolve;
6329
 
 
6330
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6331
 
 
6332
 
public:
6333
 
  static const char *NodeId ();
6334
 
  const char *NodeName () const { return NodeId (); }
6335
 
};
6336
 
 
6337
 
 
6338
 
#line 6339 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6339
 
} // closed Puma
6340
 
class WinIfExists;
6341
 
class WinImportHandler;
6342
 
class WinMacros;
6343
 
class CMatchSyntax;
6344
 
class ExtGnu;
6345
 
class ExtAC;
6346
 
class ExtACBuilderCoupling;
6347
 
class ExtACSyntaxCoupling;
6348
 
class ExtACTree;
6349
 
class ExtACKeywords;
6350
 
class WinAsm;
6351
 
class WinDeclSpecs;
6352
 
class WinMemberExplSpec;
6353
 
class WinTypeKeywords;
6354
 
class PragmaOnceUnitState;
6355
 
class PragmaOnce;
6356
 
class CCExprResolve;
6357
 
class CExprResolve;
6358
 
namespace Puma {
6359
 
 
6360
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6361
 
class CT_CmpdStmt : public CT_List, public CSemScope {
6362
 
#line 6363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6363
 
  friend class ::WinIfExists;
6364
 
  friend class ::WinImportHandler;
6365
 
  friend class ::WinMacros;
6366
 
  friend class ::CMatchSyntax;
6367
 
  friend class ::ExtGnu;
6368
 
  friend class ::ExtAC;
6369
 
  friend class ::ExtACBuilderCoupling;
6370
 
  friend class ::ExtACSyntaxCoupling;
6371
 
  friend class ::ExtACTree;
6372
 
  friend class ::ExtACKeywords;
6373
 
  friend class ::WinAsm;
6374
 
  friend class ::WinDeclSpecs;
6375
 
  friend class ::WinMemberExplSpec;
6376
 
  friend class ::WinTypeKeywords;
6377
 
  friend class ::PragmaOnceUnitState;
6378
 
  friend class ::PragmaOnce;
6379
 
  friend class ::CCExprResolve;
6380
 
  friend class ::CExprResolve;
6381
 
 
6382
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6383
 
 
6384
 
public:
6385
 
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
6386
 
  static const char *NodeId ();
6387
 
  const char *NodeName () const { return NodeId (); }
6388
 
};
6389
 
 
6390
 
 
6391
 
#line 6392 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6392
 
} // closed Puma
6393
 
class WinIfExists;
6394
 
class WinImportHandler;
6395
 
class WinMacros;
6396
 
class CMatchSyntax;
6397
 
class ExtGnu;
6398
 
class ExtAC;
6399
 
class ExtACBuilderCoupling;
6400
 
class ExtACSyntaxCoupling;
6401
 
class ExtACTree;
6402
 
class ExtACKeywords;
6403
 
class WinAsm;
6404
 
class WinDeclSpecs;
6405
 
class WinMemberExplSpec;
6406
 
class WinTypeKeywords;
6407
 
class PragmaOnceUnitState;
6408
 
class PragmaOnce;
6409
 
class CCExprResolve;
6410
 
class CExprResolve;
6411
 
namespace Puma {
6412
 
 
6413
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6414
 
class CT_HandlerSeq : public CT_List {
6415
 
#line 6416 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6416
 
  friend class ::WinIfExists;
6417
 
  friend class ::WinImportHandler;
6418
 
  friend class ::WinMacros;
6419
 
  friend class ::CMatchSyntax;
6420
 
  friend class ::ExtGnu;
6421
 
  friend class ::ExtAC;
6422
 
  friend class ::ExtACBuilderCoupling;
6423
 
  friend class ::ExtACSyntaxCoupling;
6424
 
  friend class ::ExtACTree;
6425
 
  friend class ::ExtACKeywords;
6426
 
  friend class ::WinAsm;
6427
 
  friend class ::WinDeclSpecs;
6428
 
  friend class ::WinMemberExplSpec;
6429
 
  friend class ::WinTypeKeywords;
6430
 
  friend class ::PragmaOnceUnitState;
6431
 
  friend class ::PragmaOnce;
6432
 
  friend class ::CCExprResolve;
6433
 
  friend class ::CExprResolve;
6434
 
 
6435
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6436
 
 
6437
 
public:
6438
 
  static const char *NodeId ();
6439
 
  const char *NodeName () const { return NodeId (); }
6440
 
};
6441
 
 
6442
 
 
6443
 
#line 6444 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6444
 
} // closed Puma
6445
 
class WinIfExists;
6446
 
class WinImportHandler;
6447
 
class WinMacros;
6448
 
class CMatchSyntax;
6449
 
class ExtGnu;
6450
 
class ExtAC;
6451
 
class ExtACBuilderCoupling;
6452
 
class ExtACSyntaxCoupling;
6453
 
class ExtACTree;
6454
 
class ExtACKeywords;
6455
 
class WinAsm;
6456
 
class WinDeclSpecs;
6457
 
class WinMemberExplSpec;
6458
 
class WinTypeKeywords;
6459
 
class PragmaOnceUnitState;
6460
 
class PragmaOnce;
6461
 
class CCExprResolve;
6462
 
class CExprResolve;
6463
 
namespace Puma {
6464
 
 
6465
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6466
 
class CT_TemplateParamList : public CT_List, public CSemScope {
6467
 
#line 6468 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6468
 
  friend class ::WinIfExists;
6469
 
  friend class ::WinImportHandler;
6470
 
  friend class ::WinMacros;
6471
 
  friend class ::CMatchSyntax;
6472
 
  friend class ::ExtGnu;
6473
 
  friend class ::ExtAC;
6474
 
  friend class ::ExtACBuilderCoupling;
6475
 
  friend class ::ExtACSyntaxCoupling;
6476
 
  friend class ::ExtACTree;
6477
 
  friend class ::ExtACKeywords;
6478
 
  friend class ::WinAsm;
6479
 
  friend class ::WinDeclSpecs;
6480
 
  friend class ::WinMemberExplSpec;
6481
 
  friend class ::WinTypeKeywords;
6482
 
  friend class ::PragmaOnceUnitState;
6483
 
  friend class ::PragmaOnce;
6484
 
  friend class ::CCExprResolve;
6485
 
  friend class ::CExprResolve;
6486
 
 
6487
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6488
 
 
6489
 
public:
6490
 
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
6491
 
  static const char *NodeId ();
6492
 
  const char *NodeName () const { return NodeId (); }
6493
 
};
6494
 
 
6495
 
 
6496
 
#line 6497 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6497
 
} // closed Puma
6498
 
class WinIfExists;
6499
 
class WinImportHandler;
6500
 
class WinMacros;
6501
 
class CMatchSyntax;
6502
 
class ExtGnu;
6503
 
class ExtAC;
6504
 
class ExtACBuilderCoupling;
6505
 
class ExtACSyntaxCoupling;
6506
 
class ExtACTree;
6507
 
class ExtACKeywords;
6508
 
class WinAsm;
6509
 
class WinDeclSpecs;
6510
 
class WinMemberExplSpec;
6511
 
class WinTypeKeywords;
6512
 
class PragmaOnceUnitState;
6513
 
class PragmaOnce;
6514
 
class CCExprResolve;
6515
 
class CExprResolve;
6516
 
namespace Puma {
6517
 
 
6518
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6519
 
class CT_TemplateArgList : public CT_List {
6520
 
#line 6521 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6521
 
  friend class ::WinIfExists;
6522
 
  friend class ::WinImportHandler;
6523
 
  friend class ::WinMacros;
6524
 
  friend class ::CMatchSyntax;
6525
 
  friend class ::ExtGnu;
6526
 
  friend class ::ExtAC;
6527
 
  friend class ::ExtACBuilderCoupling;
6528
 
  friend class ::ExtACSyntaxCoupling;
6529
 
  friend class ::ExtACTree;
6530
 
  friend class ::ExtACKeywords;
6531
 
  friend class ::WinAsm;
6532
 
  friend class ::WinDeclSpecs;
6533
 
  friend class ::WinMemberExplSpec;
6534
 
  friend class ::WinTypeKeywords;
6535
 
  friend class ::PragmaOnceUnitState;
6536
 
  friend class ::PragmaOnce;
6537
 
  friend class ::CCExprResolve;
6538
 
  friend class ::CExprResolve;
6539
 
 
6540
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6541
 
 
6542
 
public:
6543
 
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
6544
 
  static const char *NodeId ();
6545
 
  const char *NodeName () const { return NodeId (); }
6546
 
};
6547
 
 
6548
 
/*****************************************************************************/
6549
 
/*                                                                           */
6550
 
/*                              Expressions                                  */
6551
 
/*                                                                           */
6552
 
/*****************************************************************************/
6553
 
 
6554
 
 
6555
 
#line 6556 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6556
 
} // closed Puma
6557
 
class WinIfExists;
6558
 
class WinImportHandler;
6559
 
class WinMacros;
6560
 
class CMatchSyntax;
6561
 
class ExtGnu;
6562
 
class ExtAC;
6563
 
class ExtACBuilderCoupling;
6564
 
class ExtACSyntaxCoupling;
6565
 
class ExtACTree;
6566
 
class ExtACKeywords;
6567
 
class WinAsm;
6568
 
class WinDeclSpecs;
6569
 
class WinMemberExplSpec;
6570
 
class WinTypeKeywords;
6571
 
class PragmaOnceUnitState;
6572
 
class PragmaOnce;
6573
 
class CCExprResolve;
6574
 
class CExprResolve;
6575
 
namespace Puma {
6576
 
 
6577
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6578
 
class CT_Expression : public CTree, public CSemValue {
6579
 
#line 6580 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6580
 
  friend class ::WinIfExists;
6581
 
  friend class ::WinImportHandler;
6582
 
  friend class ::WinMacros;
6583
 
  friend class ::CMatchSyntax;
6584
 
  friend class ::ExtGnu;
6585
 
  friend class ::ExtAC;
6586
 
  friend class ::ExtACBuilderCoupling;
6587
 
  friend class ::ExtACSyntaxCoupling;
6588
 
  friend class ::ExtACTree;
6589
 
  friend class ::ExtACKeywords;
6590
 
  friend class ::WinAsm;
6591
 
  friend class ::WinDeclSpecs;
6592
 
  friend class ::WinMemberExplSpec;
6593
 
  friend class ::WinTypeKeywords;
6594
 
  friend class ::PragmaOnceUnitState;
6595
 
  friend class ::PragmaOnce;
6596
 
  friend class ::CCExprResolve;
6597
 
  friend class ::CExprResolve;
6598
 
 
6599
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6600
 
 
6601
 
protected:
6602
 
  CT_Expression () {}
6603
 
 
6604
 
public:
6605
 
  static const char *NodeId ();
6606
 
  const char *NodeName () const { return NodeId (); }
6607
 
  CTypeInfo *Type () const { return type; }
6608
 
  CExprValue *Value () const { return value; }
6609
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
6610
 
   private:
6611
 
  typedef CT_Expression CCExprResolveExpr;
6612
 
 
6613
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6614
 
 public :
6615
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
6616
 
  typedef CT_Expression CExprResolveExpr;
6617
 
 
6618
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6619
 
 public :
6620
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
6621
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6622
 
};
6623
 
 
6624
 
 
6625
 
#line 6626 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6626
 
} // closed Puma
6627
 
class WinIfExists;
6628
 
class WinImportHandler;
6629
 
class WinMacros;
6630
 
class CMatchSyntax;
6631
 
class ExtGnu;
6632
 
class ExtAC;
6633
 
class ExtACBuilderCoupling;
6634
 
class ExtACSyntaxCoupling;
6635
 
class ExtACTree;
6636
 
class ExtACKeywords;
6637
 
class WinAsm;
6638
 
class WinDeclSpecs;
6639
 
class WinMemberExplSpec;
6640
 
class WinTypeKeywords;
6641
 
class PragmaOnceUnitState;
6642
 
class PragmaOnce;
6643
 
class CCExprResolve;
6644
 
class CExprResolve;
6645
 
namespace Puma {
6646
 
 
6647
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6648
 
class CT_String : public CT_List, public CSemValue {
6649
 
#line 6650 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6650
 
  friend class ::WinIfExists;
6651
 
  friend class ::WinImportHandler;
6652
 
  friend class ::WinMacros;
6653
 
  friend class ::CMatchSyntax;
6654
 
  friend class ::ExtGnu;
6655
 
  friend class ::ExtAC;
6656
 
  friend class ::ExtACBuilderCoupling;
6657
 
  friend class ::ExtACSyntaxCoupling;
6658
 
  friend class ::ExtACTree;
6659
 
  friend class ::ExtACKeywords;
6660
 
  friend class ::WinAsm;
6661
 
  friend class ::WinDeclSpecs;
6662
 
  friend class ::WinMemberExplSpec;
6663
 
  friend class ::WinTypeKeywords;
6664
 
  friend class ::PragmaOnceUnitState;
6665
 
  friend class ::PragmaOnce;
6666
 
  friend class ::CCExprResolve;
6667
 
  friend class ::CExprResolve;
6668
 
 
6669
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6670
 
 
6671
 
public:
6672
 
  CT_String (int size) : CT_List (size, 1) {}
6673
 
  static const char *NodeId ();
6674
 
  const char *NodeName () const { return NodeId (); }
6675
 
 
6676
 
  CTypeInfo *Type () const { return type; }
6677
 
  CExprValue *Value () const { return value; }
6678
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
6679
 
   private:
6680
 
  typedef CT_String CCExprResolveExpr;
6681
 
 
6682
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6683
 
 public :
6684
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
6685
 
  typedef CT_String CExprResolveExpr;
6686
 
 
6687
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6688
 
 public :
6689
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
6690
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6691
 
};
6692
 
 
6693
 
 
6694
 
#line 6695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6695
 
} // closed Puma
6696
 
class WinIfExists;
6697
 
class WinImportHandler;
6698
 
class WinMacros;
6699
 
class CMatchSyntax;
6700
 
class ExtGnu;
6701
 
class ExtAC;
6702
 
class ExtACBuilderCoupling;
6703
 
class ExtACSyntaxCoupling;
6704
 
class ExtACTree;
6705
 
class ExtACKeywords;
6706
 
class WinAsm;
6707
 
class WinDeclSpecs;
6708
 
class WinMemberExplSpec;
6709
 
class WinTypeKeywords;
6710
 
class PragmaOnceUnitState;
6711
 
class PragmaOnce;
6712
 
class CCExprResolve;
6713
 
class CExprResolve;
6714
 
namespace Puma {
6715
 
 
6716
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6717
 
class CT_WideString : public CT_String {
6718
 
#line 6719 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6719
 
  friend class ::WinIfExists;
6720
 
  friend class ::WinImportHandler;
6721
 
  friend class ::WinMacros;
6722
 
  friend class ::CMatchSyntax;
6723
 
  friend class ::ExtGnu;
6724
 
  friend class ::ExtAC;
6725
 
  friend class ::ExtACBuilderCoupling;
6726
 
  friend class ::ExtACSyntaxCoupling;
6727
 
  friend class ::ExtACTree;
6728
 
  friend class ::ExtACKeywords;
6729
 
  friend class ::WinAsm;
6730
 
  friend class ::WinDeclSpecs;
6731
 
  friend class ::WinMemberExplSpec;
6732
 
  friend class ::WinTypeKeywords;
6733
 
  friend class ::PragmaOnceUnitState;
6734
 
  friend class ::PragmaOnce;
6735
 
  friend class ::CCExprResolve;
6736
 
  friend class ::CExprResolve;
6737
 
 
6738
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6739
 
 
6740
 
public:
6741
 
  CT_WideString (int size) : CT_String (size) {}
6742
 
  static const char *NodeId ();
6743
 
  const char *NodeName () const { return NodeId (); }
6744
 
   private:
6745
 
  typedef CT_WideString CCExprResolveExpr;
6746
 
 
6747
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6748
 
 public :
6749
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
6750
 
  typedef CT_WideString CExprResolveExpr;
6751
 
 
6752
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6753
 
 public :
6754
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
6755
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6756
 
};
6757
 
 
6758
 
 
6759
 
#line 6760 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6760
 
} // closed Puma
6761
 
class WinIfExists;
6762
 
class WinImportHandler;
6763
 
class WinMacros;
6764
 
class CMatchSyntax;
6765
 
class ExtGnu;
6766
 
class ExtAC;
6767
 
class ExtACBuilderCoupling;
6768
 
class ExtACSyntaxCoupling;
6769
 
class ExtACTree;
6770
 
class ExtACKeywords;
6771
 
class WinAsm;
6772
 
class WinDeclSpecs;
6773
 
class WinMemberExplSpec;
6774
 
class WinTypeKeywords;
6775
 
class PragmaOnceUnitState;
6776
 
class PragmaOnce;
6777
 
class CCExprResolve;
6778
 
class CExprResolve;
6779
 
namespace Puma {
6780
 
 
6781
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6782
 
class CT_Integer : public CT_Expression {
6783
 
#line 6784 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6784
 
  friend class ::WinIfExists;
6785
 
  friend class ::WinImportHandler;
6786
 
  friend class ::WinMacros;
6787
 
  friend class ::CMatchSyntax;
6788
 
  friend class ::ExtGnu;
6789
 
  friend class ::ExtAC;
6790
 
  friend class ::ExtACBuilderCoupling;
6791
 
  friend class ::ExtACSyntaxCoupling;
6792
 
  friend class ::ExtACTree;
6793
 
  friend class ::ExtACKeywords;
6794
 
  friend class ::WinAsm;
6795
 
  friend class ::WinDeclSpecs;
6796
 
  friend class ::WinMemberExplSpec;
6797
 
  friend class ::WinTypeKeywords;
6798
 
  friend class ::PragmaOnceUnitState;
6799
 
  friend class ::PragmaOnce;
6800
 
  friend class ::CCExprResolve;
6801
 
  friend class ::CExprResolve;
6802
 
 
6803
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6804
 
 
6805
 
  CTree *_value;  // CT_Token
6806
 
 
6807
 
public:
6808
 
  CT_Integer (CTree *t) : _value (t) {}
6809
 
  static const char *NodeId ();
6810
 
  const char *NodeName () const { return NodeId (); }
6811
 
  int Sons () const { return _value ? 1 : 0; }
6812
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
6813
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
6814
 
   { if (old_son == _value) _value = new_son; }
6815
 
   private:
6816
 
  typedef CT_Integer CCExprResolveExpr;
6817
 
 
6818
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6819
 
 public :
6820
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
6821
 
  typedef CT_Integer CExprResolveExpr;
6822
 
 
6823
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6824
 
 public :
6825
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
6826
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6827
 
};
6828
 
 
6829
 
 
6830
 
#line 6831 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6831
 
} // closed Puma
6832
 
class WinIfExists;
6833
 
class WinImportHandler;
6834
 
class WinMacros;
6835
 
class CMatchSyntax;
6836
 
class ExtGnu;
6837
 
class ExtAC;
6838
 
class ExtACBuilderCoupling;
6839
 
class ExtACSyntaxCoupling;
6840
 
class ExtACTree;
6841
 
class ExtACKeywords;
6842
 
class WinAsm;
6843
 
class WinDeclSpecs;
6844
 
class WinMemberExplSpec;
6845
 
class WinTypeKeywords;
6846
 
class PragmaOnceUnitState;
6847
 
class PragmaOnce;
6848
 
class CCExprResolve;
6849
 
class CExprResolve;
6850
 
namespace Puma {
6851
 
 
6852
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6853
 
class CT_Character : public CT_Expression {
6854
 
#line 6855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6855
 
  friend class ::WinIfExists;
6856
 
  friend class ::WinImportHandler;
6857
 
  friend class ::WinMacros;
6858
 
  friend class ::CMatchSyntax;
6859
 
  friend class ::ExtGnu;
6860
 
  friend class ::ExtAC;
6861
 
  friend class ::ExtACBuilderCoupling;
6862
 
  friend class ::ExtACSyntaxCoupling;
6863
 
  friend class ::ExtACTree;
6864
 
  friend class ::ExtACKeywords;
6865
 
  friend class ::WinAsm;
6866
 
  friend class ::WinDeclSpecs;
6867
 
  friend class ::WinMemberExplSpec;
6868
 
  friend class ::WinTypeKeywords;
6869
 
  friend class ::PragmaOnceUnitState;
6870
 
  friend class ::PragmaOnce;
6871
 
  friend class ::CCExprResolve;
6872
 
  friend class ::CExprResolve;
6873
 
 
6874
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6875
 
 
6876
 
  CTree *_value;  // CT_Token
6877
 
 
6878
 
public:
6879
 
  CT_Character (CTree *t) : _value (t) {}
6880
 
  static const char *NodeId ();
6881
 
  const char *NodeName () const { return NodeId (); }
6882
 
  int Sons () const { return 1; }
6883
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
6884
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
6885
 
   { if (old_son == _value) _value = new_son; }
6886
 
   private:
6887
 
  typedef CT_Character CCExprResolveExpr;
6888
 
 
6889
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6890
 
 public :
6891
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
6892
 
  typedef CT_Character CExprResolveExpr;
6893
 
 
6894
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6895
 
 public :
6896
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
6897
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6898
 
};
6899
 
 
6900
 
 
6901
 
#line 6902 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6902
 
} // closed Puma
6903
 
class WinIfExists;
6904
 
class WinImportHandler;
6905
 
class WinMacros;
6906
 
class CMatchSyntax;
6907
 
class ExtGnu;
6908
 
class ExtAC;
6909
 
class ExtACBuilderCoupling;
6910
 
class ExtACSyntaxCoupling;
6911
 
class ExtACTree;
6912
 
class ExtACKeywords;
6913
 
class WinAsm;
6914
 
class WinDeclSpecs;
6915
 
class WinMemberExplSpec;
6916
 
class WinTypeKeywords;
6917
 
class PragmaOnceUnitState;
6918
 
class PragmaOnce;
6919
 
class CCExprResolve;
6920
 
class CExprResolve;
6921
 
namespace Puma {
6922
 
 
6923
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6924
 
class CT_WideCharacter : public CT_Character {
6925
 
#line 6926 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6926
 
  friend class ::WinIfExists;
6927
 
  friend class ::WinImportHandler;
6928
 
  friend class ::WinMacros;
6929
 
  friend class ::CMatchSyntax;
6930
 
  friend class ::ExtGnu;
6931
 
  friend class ::ExtAC;
6932
 
  friend class ::ExtACBuilderCoupling;
6933
 
  friend class ::ExtACSyntaxCoupling;
6934
 
  friend class ::ExtACTree;
6935
 
  friend class ::ExtACKeywords;
6936
 
  friend class ::WinAsm;
6937
 
  friend class ::WinDeclSpecs;
6938
 
  friend class ::WinMemberExplSpec;
6939
 
  friend class ::WinTypeKeywords;
6940
 
  friend class ::PragmaOnceUnitState;
6941
 
  friend class ::PragmaOnce;
6942
 
  friend class ::CCExprResolve;
6943
 
  friend class ::CExprResolve;
6944
 
 
6945
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6946
 
 
6947
 
  CTree *_value;  // CT_Token
6948
 
 
6949
 
public:
6950
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
6951
 
  static const char *NodeId ();
6952
 
  const char *NodeName () const { return NodeId (); }
6953
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
6954
 
   { if (old_son == _value) _value = new_son; }
6955
 
   private:
6956
 
  typedef CT_WideCharacter CCExprResolveExpr;
6957
 
 
6958
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6959
 
 public :
6960
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
6961
 
  typedef CT_WideCharacter CExprResolveExpr;
6962
 
 
6963
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6964
 
 public :
6965
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
6966
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6967
 
};
6968
 
 
6969
 
 
6970
 
#line 6971 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6971
 
} // closed Puma
6972
 
class WinIfExists;
6973
 
class WinImportHandler;
6974
 
class WinMacros;
6975
 
class CMatchSyntax;
6976
 
class ExtGnu;
6977
 
class ExtAC;
6978
 
class ExtACBuilderCoupling;
6979
 
class ExtACSyntaxCoupling;
6980
 
class ExtACTree;
6981
 
class ExtACKeywords;
6982
 
class WinAsm;
6983
 
class WinDeclSpecs;
6984
 
class WinMemberExplSpec;
6985
 
class WinTypeKeywords;
6986
 
class PragmaOnceUnitState;
6987
 
class PragmaOnce;
6988
 
class CCExprResolve;
6989
 
class CExprResolve;
6990
 
namespace Puma {
6991
 
 
6992
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6993
 
class CT_Float : public CT_Expression {
6994
 
#line 6995 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
6995
 
  friend class ::WinIfExists;
6996
 
  friend class ::WinImportHandler;
6997
 
  friend class ::WinMacros;
6998
 
  friend class ::CMatchSyntax;
6999
 
  friend class ::ExtGnu;
7000
 
  friend class ::ExtAC;
7001
 
  friend class ::ExtACBuilderCoupling;
7002
 
  friend class ::ExtACSyntaxCoupling;
7003
 
  friend class ::ExtACTree;
7004
 
  friend class ::ExtACKeywords;
7005
 
  friend class ::WinAsm;
7006
 
  friend class ::WinDeclSpecs;
7007
 
  friend class ::WinMemberExplSpec;
7008
 
  friend class ::WinTypeKeywords;
7009
 
  friend class ::PragmaOnceUnitState;
7010
 
  friend class ::PragmaOnce;
7011
 
  friend class ::CCExprResolve;
7012
 
  friend class ::CExprResolve;
7013
 
 
7014
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7015
 
 
7016
 
  CTree *_value;  // CT_Token
7017
 
 
7018
 
public:
7019
 
  CT_Float (CTree *t) : _value (t) {}
7020
 
  static const char *NodeId ();
7021
 
  const char *NodeName () const { return NodeId (); }
7022
 
  int Sons () const { return 1; }
7023
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
7024
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
7025
 
   { if (old_son == _value) _value = new_son; }
7026
 
   private:
7027
 
  typedef CT_Float CCExprResolveExpr;
7028
 
 
7029
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7030
 
 public :
7031
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7032
 
  typedef CT_Float CExprResolveExpr;
7033
 
 
7034
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7035
 
 public :
7036
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7037
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7038
 
};
7039
 
 
7040
 
 
7041
 
#line 7042 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7042
 
} // closed Puma
7043
 
class WinIfExists;
7044
 
class WinImportHandler;
7045
 
class WinMacros;
7046
 
class CMatchSyntax;
7047
 
class ExtGnu;
7048
 
class ExtAC;
7049
 
class ExtACBuilderCoupling;
7050
 
class ExtACSyntaxCoupling;
7051
 
class ExtACTree;
7052
 
class ExtACKeywords;
7053
 
class WinAsm;
7054
 
class WinDeclSpecs;
7055
 
class WinMemberExplSpec;
7056
 
class WinTypeKeywords;
7057
 
class PragmaOnceUnitState;
7058
 
class PragmaOnce;
7059
 
class CCExprResolve;
7060
 
class CExprResolve;
7061
 
namespace Puma {
7062
 
 
7063
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7064
 
class CT_Bool : public CT_Expression {
7065
 
#line 7066 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7066
 
  friend class ::WinIfExists;
7067
 
  friend class ::WinImportHandler;
7068
 
  friend class ::WinMacros;
7069
 
  friend class ::CMatchSyntax;
7070
 
  friend class ::ExtGnu;
7071
 
  friend class ::ExtAC;
7072
 
  friend class ::ExtACBuilderCoupling;
7073
 
  friend class ::ExtACSyntaxCoupling;
7074
 
  friend class ::ExtACTree;
7075
 
  friend class ::ExtACKeywords;
7076
 
  friend class ::WinAsm;
7077
 
  friend class ::WinDeclSpecs;
7078
 
  friend class ::WinMemberExplSpec;
7079
 
  friend class ::WinTypeKeywords;
7080
 
  friend class ::PragmaOnceUnitState;
7081
 
  friend class ::PragmaOnce;
7082
 
  friend class ::CCExprResolve;
7083
 
  friend class ::CExprResolve;
7084
 
 
7085
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7086
 
 
7087
 
  CTree *_value;  // CT_Token
7088
 
 
7089
 
public:
7090
 
  CT_Bool (CTree *t) : _value (t) {}
7091
 
  static const char *NodeId ();
7092
 
  const char *NodeName () const { return NodeId (); }
7093
 
  int Sons () const { return 1; }
7094
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
7095
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
7096
 
   { if (old_son == _value) _value = new_son; }
7097
 
   private:
7098
 
  typedef CT_Bool CCExprResolveExpr;
7099
 
 
7100
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7101
 
 public :
7102
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7103
 
  typedef CT_Bool CExprResolveExpr;
7104
 
 
7105
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7106
 
 public :
7107
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7108
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7109
 
};
7110
 
 
7111
 
 
7112
 
#line 7113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7113
 
} // closed Puma
7114
 
class WinIfExists;
7115
 
class WinImportHandler;
7116
 
class WinMacros;
7117
 
class CMatchSyntax;
7118
 
class ExtGnu;
7119
 
class ExtAC;
7120
 
class ExtACBuilderCoupling;
7121
 
class ExtACSyntaxCoupling;
7122
 
class ExtACTree;
7123
 
class ExtACKeywords;
7124
 
class WinAsm;
7125
 
class WinDeclSpecs;
7126
 
class WinMemberExplSpec;
7127
 
class WinTypeKeywords;
7128
 
class PragmaOnceUnitState;
7129
 
class PragmaOnce;
7130
 
class CCExprResolve;
7131
 
class CExprResolve;
7132
 
namespace Puma {
7133
 
 
7134
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7135
 
class CT_BracedExpr : public CT_Expression {
7136
 
#line 7137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7137
 
  friend class ::WinIfExists;
7138
 
  friend class ::WinImportHandler;
7139
 
  friend class ::WinMacros;
7140
 
  friend class ::CMatchSyntax;
7141
 
  friend class ::ExtGnu;
7142
 
  friend class ::ExtAC;
7143
 
  friend class ::ExtACBuilderCoupling;
7144
 
  friend class ::ExtACSyntaxCoupling;
7145
 
  friend class ::ExtACTree;
7146
 
  friend class ::ExtACKeywords;
7147
 
  friend class ::WinAsm;
7148
 
  friend class ::WinDeclSpecs;
7149
 
  friend class ::WinMemberExplSpec;
7150
 
  friend class ::WinTypeKeywords;
7151
 
  friend class ::PragmaOnceUnitState;
7152
 
  friend class ::PragmaOnce;
7153
 
  friend class ::CCExprResolve;
7154
 
  friend class ::CExprResolve;
7155
 
 
7156
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7157
 
 
7158
 
  CTree *sons[3]; // open, expr, close
7159
 
 
7160
 
public:
7161
 
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
7162
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
7163
 
  }
7164
 
  static const char *NodeId ();
7165
 
  const char *NodeName () const { return NodeId (); }
7166
 
  int Sons () const { return 3; }
7167
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
7168
 
  CTree *Expr () const { return sons[1]; }
7169
 
  CTypeInfo *Type () const { return Expr ()->Type (); }
7170
 
  CExprValue *Value () const { return Expr ()->Value (); }
7171
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
7172
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
7173
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
7174
 
  }
7175
 
   private:
7176
 
  typedef CT_BracedExpr CCExprResolveExpr;
7177
 
 
7178
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7179
 
 public :
7180
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7181
 
  typedef CT_BracedExpr CExprResolveExpr;
7182
 
 
7183
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7184
 
 public :
7185
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7186
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7187
 
};
7188
 
 
7189
 
 
7190
 
#line 7191 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7191
 
} // closed Puma
7192
 
class WinIfExists;
7193
 
class WinImportHandler;
7194
 
class WinMacros;
7195
 
class CMatchSyntax;
7196
 
class ExtGnu;
7197
 
class ExtAC;
7198
 
class ExtACBuilderCoupling;
7199
 
class ExtACSyntaxCoupling;
7200
 
class ExtACTree;
7201
 
class ExtACKeywords;
7202
 
class WinAsm;
7203
 
class WinDeclSpecs;
7204
 
class WinMemberExplSpec;
7205
 
class WinTypeKeywords;
7206
 
class PragmaOnceUnitState;
7207
 
class PragmaOnce;
7208
 
class CCExprResolve;
7209
 
class CExprResolve;
7210
 
namespace Puma {
7211
 
 
7212
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7213
 
class CT_SimpleName : public CT_List, public Printable, 
7214
 
                      public CSemValue, public CSemObject {
7215
 
#line 7216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7216
 
  friend class ::WinIfExists;
7217
 
  friend class ::WinImportHandler;
7218
 
  friend class ::WinMacros;
7219
 
  friend class ::CMatchSyntax;
7220
 
  friend class ::ExtGnu;
7221
 
  friend class ::ExtAC;
7222
 
  friend class ::ExtACBuilderCoupling;
7223
 
  friend class ::ExtACSyntaxCoupling;
7224
 
  friend class ::ExtACTree;
7225
 
  friend class ::ExtACKeywords;
7226
 
  friend class ::WinAsm;
7227
 
  friend class ::WinDeclSpecs;
7228
 
  friend class ::WinMemberExplSpec;
7229
 
  friend class ::WinTypeKeywords;
7230
 
  friend class ::PragmaOnceUnitState;
7231
 
  friend class ::PragmaOnce;
7232
 
  friend class ::CCExprResolve;
7233
 
  friend class ::CExprResolve;
7234
 
 
7235
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7236
 
 
7237
 
protected:
7238
 
  CT_SimpleName (int size) : CT_List (size, 1) {}
7239
 
  CT_SimpleName (int size, int properties) : 
7240
 
    CT_List (size, 2, properties) {}
7241
 
  
7242
 
public:
7243
 
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
7244
 
  static const char *NodeId ();
7245
 
  const char *NodeName () const { return NodeId (); }
7246
 
  virtual const char *Text () const 
7247
 
   { return Son (Sons ()-1)->token ()->text (); }
7248
 
  virtual void print (ostream &os) const { os << Text (); }
7249
 
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
7250
 
  CTypeInfo *Type () const { return type; }
7251
 
  CExprValue *Value () const { return value; }
7252
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
7253
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
7254
 
  // special new / delete with reusing memory
7255
 
  void *operator new (size_t);
7256
 
  void  operator delete (void *);
7257
 
  // classification function
7258
 
  virtual CT_SimpleName *IsSimpleName () { return this; }  
7259
 
   private:
7260
 
  typedef CT_SimpleName CCExprResolveExpr;
7261
 
 
7262
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7263
 
 public :
7264
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7265
 
  typedef CT_SimpleName CExprResolveExpr;
7266
 
 
7267
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7268
 
 public :
7269
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7270
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7271
 
};
7272
 
 
7273
 
 
7274
 
#line 7275 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7275
 
} // closed Puma
7276
 
class WinIfExists;
7277
 
class WinImportHandler;
7278
 
class WinMacros;
7279
 
class CMatchSyntax;
7280
 
class ExtGnu;
7281
 
class ExtAC;
7282
 
class ExtACBuilderCoupling;
7283
 
class ExtACSyntaxCoupling;
7284
 
class ExtACTree;
7285
 
class ExtACKeywords;
7286
 
class WinAsm;
7287
 
class WinDeclSpecs;
7288
 
class WinMemberExplSpec;
7289
 
class WinTypeKeywords;
7290
 
class PragmaOnceUnitState;
7291
 
class PragmaOnce;
7292
 
class CCExprResolve;
7293
 
class CExprResolve;
7294
 
namespace Puma {
7295
 
 
7296
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7297
 
class CT_SpecialName : public CT_SimpleName {
7298
 
#line 7299 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7299
 
  friend class ::WinIfExists;
7300
 
  friend class ::WinImportHandler;
7301
 
  friend class ::WinMacros;
7302
 
  friend class ::CMatchSyntax;
7303
 
  friend class ::ExtGnu;
7304
 
  friend class ::ExtAC;
7305
 
  friend class ::ExtACBuilderCoupling;
7306
 
  friend class ::ExtACSyntaxCoupling;
7307
 
  friend class ::ExtACTree;
7308
 
  friend class ::ExtACKeywords;
7309
 
  friend class ::WinAsm;
7310
 
  friend class ::WinDeclSpecs;
7311
 
  friend class ::WinMemberExplSpec;
7312
 
  friend class ::WinTypeKeywords;
7313
 
  friend class ::PragmaOnceUnitState;
7314
 
  friend class ::PragmaOnce;
7315
 
  friend class ::CCExprResolve;
7316
 
  friend class ::CExprResolve;
7317
 
 
7318
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7319
 
 
7320
 
  char *_name;
7321
 
  
7322
 
protected:
7323
 
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
7324
 
  
7325
 
public:
7326
 
  ~CT_SpecialName () { if (_name) delete[] _name; }
7327
 
  const char *Text () const { return _name; }
7328
 
  void Name (const char *n) { 
7329
 
    if (n) { 
7330
 
      _name = new char[strlen(n) + 1];
7331
 
      strcpy (_name,n);
7332
 
    }
7333
 
  }
7334
 
  // special new / delete with reusing memory
7335
 
  void *operator new (size_t);
7336
 
  void  operator delete (void *);
7337
 
   private:
7338
 
  typedef CT_SpecialName CCExprResolveExpr;
7339
 
 
7340
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7341
 
 public :
7342
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7343
 
  typedef CT_SpecialName CExprResolveExpr;
7344
 
 
7345
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7346
 
 public :
7347
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7348
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7349
 
};
7350
 
 
7351
 
 
7352
 
#line 7353 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7353
 
} // closed Puma
7354
 
class WinIfExists;
7355
 
class WinImportHandler;
7356
 
class WinMacros;
7357
 
class CMatchSyntax;
7358
 
class ExtGnu;
7359
 
class ExtAC;
7360
 
class ExtACBuilderCoupling;
7361
 
class ExtACSyntaxCoupling;
7362
 
class ExtACTree;
7363
 
class ExtACKeywords;
7364
 
class WinAsm;
7365
 
class WinDeclSpecs;
7366
 
class WinMemberExplSpec;
7367
 
class WinTypeKeywords;
7368
 
class PragmaOnceUnitState;
7369
 
class PragmaOnce;
7370
 
class CCExprResolve;
7371
 
class CExprResolve;
7372
 
namespace Puma {
7373
 
 
7374
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7375
 
class CT_PrivateName : public CT_SpecialName {
7376
 
#line 7377 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7377
 
  friend class ::WinIfExists;
7378
 
  friend class ::WinImportHandler;
7379
 
  friend class ::WinMacros;
7380
 
  friend class ::CMatchSyntax;
7381
 
  friend class ::ExtGnu;
7382
 
  friend class ::ExtAC;
7383
 
  friend class ::ExtACBuilderCoupling;
7384
 
  friend class ::ExtACSyntaxCoupling;
7385
 
  friend class ::ExtACTree;
7386
 
  friend class ::ExtACKeywords;
7387
 
  friend class ::WinAsm;
7388
 
  friend class ::WinDeclSpecs;
7389
 
  friend class ::WinMemberExplSpec;
7390
 
  friend class ::WinTypeKeywords;
7391
 
  friend class ::PragmaOnceUnitState;
7392
 
  friend class ::PragmaOnce;
7393
 
  friend class ::CCExprResolve;
7394
 
  friend class ::CExprResolve;
7395
 
 
7396
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7397
 
 
7398
 
public:
7399
 
  CT_PrivateName (const char *n) { Name (n); }
7400
 
  static const char *NodeId ();
7401
 
  const char *NodeName () const { return NodeId (); }
7402
 
  int Sons () const { return 0; }
7403
 
  CTree *Son (int n) const { return (CTree*)0; }
7404
 
  // special new / delete with reusing memory
7405
 
  void *operator new (size_t);
7406
 
  void  operator delete (void *);
7407
 
   private:
7408
 
  typedef CT_PrivateName CCExprResolveExpr;
7409
 
 
7410
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7411
 
 public :
7412
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7413
 
  typedef CT_PrivateName CExprResolveExpr;
7414
 
 
7415
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7416
 
 public :
7417
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7418
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7419
 
};
7420
 
 
7421
 
 
7422
 
#line 7423 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7423
 
} // closed Puma
7424
 
class WinIfExists;
7425
 
class WinImportHandler;
7426
 
class WinMacros;
7427
 
class CMatchSyntax;
7428
 
class ExtGnu;
7429
 
class ExtAC;
7430
 
class ExtACBuilderCoupling;
7431
 
class ExtACSyntaxCoupling;
7432
 
class ExtACTree;
7433
 
class ExtACKeywords;
7434
 
class WinAsm;
7435
 
class WinDeclSpecs;
7436
 
class WinMemberExplSpec;
7437
 
class WinTypeKeywords;
7438
 
class PragmaOnceUnitState;
7439
 
class PragmaOnce;
7440
 
class CCExprResolve;
7441
 
class CExprResolve;
7442
 
namespace Puma {
7443
 
 
7444
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7445
 
class CT_DestructorName : public CT_SpecialName {
7446
 
#line 7447 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7447
 
  friend class ::WinIfExists;
7448
 
  friend class ::WinImportHandler;
7449
 
  friend class ::WinMacros;
7450
 
  friend class ::CMatchSyntax;
7451
 
  friend class ::ExtGnu;
7452
 
  friend class ::ExtAC;
7453
 
  friend class ::ExtACBuilderCoupling;
7454
 
  friend class ::ExtACSyntaxCoupling;
7455
 
  friend class ::ExtACTree;
7456
 
  friend class ::ExtACKeywords;
7457
 
  friend class ::WinAsm;
7458
 
  friend class ::WinDeclSpecs;
7459
 
  friend class ::WinMemberExplSpec;
7460
 
  friend class ::WinTypeKeywords;
7461
 
  friend class ::PragmaOnceUnitState;
7462
 
  friend class ::PragmaOnce;
7463
 
  friend class ::CCExprResolve;
7464
 
  friend class ::CExprResolve;
7465
 
 
7466
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7467
 
 
7468
 
public:
7469
 
  CT_DestructorName (CTree *, CTree *);
7470
 
  static const char *NodeId ();
7471
 
  const char *NodeName () const { return NodeId (); }
7472
 
  // special new / delete with reusing memory
7473
 
  void *operator new (size_t);
7474
 
  void  operator delete (void *);
7475
 
   private:
7476
 
  typedef CT_DestructorName CCExprResolveExpr;
7477
 
 
7478
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7479
 
 public :
7480
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7481
 
  typedef CT_DestructorName CExprResolveExpr;
7482
 
 
7483
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7484
 
 public :
7485
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7486
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7487
 
};
7488
 
 
7489
 
 
7490
 
#line 7491 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7491
 
} // closed Puma
7492
 
class WinIfExists;
7493
 
class WinImportHandler;
7494
 
class WinMacros;
7495
 
class CMatchSyntax;
7496
 
class ExtGnu;
7497
 
class ExtAC;
7498
 
class ExtACBuilderCoupling;
7499
 
class ExtACSyntaxCoupling;
7500
 
class ExtACTree;
7501
 
class ExtACKeywords;
7502
 
class WinAsm;
7503
 
class WinDeclSpecs;
7504
 
class WinMemberExplSpec;
7505
 
class WinTypeKeywords;
7506
 
class PragmaOnceUnitState;
7507
 
class PragmaOnce;
7508
 
class CCExprResolve;
7509
 
class CExprResolve;
7510
 
namespace Puma {
7511
 
 
7512
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7513
 
class CT_TemplateName : public CT_SpecialName {
7514
 
#line 7515 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7515
 
  friend class ::WinIfExists;
7516
 
  friend class ::WinImportHandler;
7517
 
  friend class ::WinMacros;
7518
 
  friend class ::CMatchSyntax;
7519
 
  friend class ::ExtGnu;
7520
 
  friend class ::ExtAC;
7521
 
  friend class ::ExtACBuilderCoupling;
7522
 
  friend class ::ExtACSyntaxCoupling;
7523
 
  friend class ::ExtACTree;
7524
 
  friend class ::ExtACKeywords;
7525
 
  friend class ::WinAsm;
7526
 
  friend class ::WinDeclSpecs;
7527
 
  friend class ::WinMemberExplSpec;
7528
 
  friend class ::WinTypeKeywords;
7529
 
  friend class ::PragmaOnceUnitState;
7530
 
  friend class ::PragmaOnce;
7531
 
  friend class ::CCExprResolve;
7532
 
  friend class ::CExprResolve;
7533
 
 
7534
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7535
 
 
7536
 
public:
7537
 
  CT_TemplateName (CTree *n, CTree *a) 
7538
 
   { AddSon (n); AddSon (a); }
7539
 
  static const char *NodeId ();
7540
 
  const char *NodeName () const { return NodeId (); }
7541
 
  CT_TemplateArgList *Arguments () const 
7542
 
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
7543
 
  CT_SimpleName *TemplateName () const 
7544
 
   { return (CT_SimpleName*)Son (Sons ()-2); }
7545
 
  // may change in the future
7546
 
  const char *Text () const { return TemplateName ()->Text (); }
7547
 
  // special new / delete with reusing memory
7548
 
  void *operator new (size_t);
7549
 
  void  operator delete (void *);
7550
 
   private:
7551
 
  typedef CT_TemplateName CCExprResolveExpr;
7552
 
 
7553
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7554
 
 public :
7555
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7556
 
  typedef CT_TemplateName CExprResolveExpr;
7557
 
 
7558
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7559
 
 public :
7560
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7561
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7562
 
};
7563
 
 
7564
 
 
7565
 
#line 7566 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7566
 
} // closed Puma
7567
 
class WinIfExists;
7568
 
class WinImportHandler;
7569
 
class WinMacros;
7570
 
class CMatchSyntax;
7571
 
class ExtGnu;
7572
 
class ExtAC;
7573
 
class ExtACBuilderCoupling;
7574
 
class ExtACSyntaxCoupling;
7575
 
class ExtACTree;
7576
 
class ExtACKeywords;
7577
 
class WinAsm;
7578
 
class WinDeclSpecs;
7579
 
class WinMemberExplSpec;
7580
 
class WinTypeKeywords;
7581
 
class PragmaOnceUnitState;
7582
 
class PragmaOnce;
7583
 
class CCExprResolve;
7584
 
class CExprResolve;
7585
 
namespace Puma {
7586
 
 
7587
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7588
 
class CT_OperatorName : public CT_SpecialName {
7589
 
#line 7590 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7590
 
  friend class ::WinIfExists;
7591
 
  friend class ::WinImportHandler;
7592
 
  friend class ::WinMacros;
7593
 
  friend class ::CMatchSyntax;
7594
 
  friend class ::ExtGnu;
7595
 
  friend class ::ExtAC;
7596
 
  friend class ::ExtACBuilderCoupling;
7597
 
  friend class ::ExtACSyntaxCoupling;
7598
 
  friend class ::ExtACTree;
7599
 
  friend class ::ExtACKeywords;
7600
 
  friend class ::WinAsm;
7601
 
  friend class ::WinDeclSpecs;
7602
 
  friend class ::WinMemberExplSpec;
7603
 
  friend class ::WinTypeKeywords;
7604
 
  friend class ::PragmaOnceUnitState;
7605
 
  friend class ::PragmaOnce;
7606
 
  friend class ::CCExprResolve;
7607
 
  friend class ::CExprResolve;
7608
 
 
7609
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7610
 
 
7611
 
  int _oper;
7612
 
 
7613
 
public:
7614
 
  enum { // complex operators
7615
 
    FCT_CALL = -100,
7616
 
    SUBSCRIPT,
7617
 
    NEW_ARRAY,
7618
 
    DEL_ARRAY
7619
 
  };
7620
 
 
7621
 
public:
7622
 
  CT_OperatorName (CTree *);
7623
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
7624
 
  static const char *NodeId ();
7625
 
  const char *NodeName () const { return NodeId (); }
7626
 
  int Operator () const { return _oper; }
7627
 
  // special new / delete with reusing memory
7628
 
  void *operator new (size_t);
7629
 
  void  operator delete (void *);
7630
 
   private:
7631
 
  typedef CT_OperatorName CCExprResolveExpr;
7632
 
 
7633
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7634
 
 public :
7635
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7636
 
  typedef CT_OperatorName CExprResolveExpr;
7637
 
 
7638
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7639
 
 public :
7640
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7641
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7642
 
};
7643
 
 
7644
 
 
7645
 
#line 7646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7646
 
} // closed Puma
7647
 
class WinIfExists;
7648
 
class WinImportHandler;
7649
 
class WinMacros;
7650
 
class CMatchSyntax;
7651
 
class ExtGnu;
7652
 
class ExtAC;
7653
 
class ExtACBuilderCoupling;
7654
 
class ExtACSyntaxCoupling;
7655
 
class ExtACTree;
7656
 
class ExtACKeywords;
7657
 
class WinAsm;
7658
 
class WinDeclSpecs;
7659
 
class WinMemberExplSpec;
7660
 
class WinTypeKeywords;
7661
 
class PragmaOnceUnitState;
7662
 
class PragmaOnce;
7663
 
class CCExprResolve;
7664
 
class CExprResolve;
7665
 
namespace Puma {
7666
 
 
7667
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7668
 
class CT_ConversionName : public CT_SpecialName {
7669
 
#line 7670 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7670
 
  friend class ::WinIfExists;
7671
 
  friend class ::WinImportHandler;
7672
 
  friend class ::WinMacros;
7673
 
  friend class ::CMatchSyntax;
7674
 
  friend class ::ExtGnu;
7675
 
  friend class ::ExtAC;
7676
 
  friend class ::ExtACBuilderCoupling;
7677
 
  friend class ::ExtACSyntaxCoupling;
7678
 
  friend class ::ExtACTree;
7679
 
  friend class ::ExtACKeywords;
7680
 
  friend class ::WinAsm;
7681
 
  friend class ::WinDeclSpecs;
7682
 
  friend class ::WinMemberExplSpec;
7683
 
  friend class ::WinTypeKeywords;
7684
 
  friend class ::PragmaOnceUnitState;
7685
 
  friend class ::PragmaOnce;
7686
 
  friend class ::CCExprResolve;
7687
 
  friend class ::CExprResolve;
7688
 
 
7689
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7690
 
 
7691
 
public:
7692
 
  CT_ConversionName (CTree *, CTree *);
7693
 
  static const char *NodeId ();
7694
 
  const char *NodeName () const { return NodeId (); }
7695
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
7696
 
  // special new / delete with reusing memory
7697
 
  void *operator new (size_t);
7698
 
  void  operator delete (void *);
7699
 
   private:
7700
 
  typedef CT_ConversionName CCExprResolveExpr;
7701
 
 
7702
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7703
 
 public :
7704
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7705
 
  typedef CT_ConversionName CExprResolveExpr;
7706
 
 
7707
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7708
 
 public :
7709
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7710
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7711
 
};
7712
 
 
7713
 
 
7714
 
#line 7715 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7715
 
} // closed Puma
7716
 
class WinIfExists;
7717
 
class WinImportHandler;
7718
 
class WinMacros;
7719
 
class CMatchSyntax;
7720
 
class ExtGnu;
7721
 
class ExtAC;
7722
 
class ExtACBuilderCoupling;
7723
 
class ExtACSyntaxCoupling;
7724
 
class ExtACTree;
7725
 
class ExtACKeywords;
7726
 
class WinAsm;
7727
 
class WinDeclSpecs;
7728
 
class WinMemberExplSpec;
7729
 
class WinTypeKeywords;
7730
 
class PragmaOnceUnitState;
7731
 
class PragmaOnce;
7732
 
class CCExprResolve;
7733
 
class CExprResolve;
7734
 
namespace Puma {
7735
 
 
7736
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7737
 
class CT_QualName : public CT_SimpleName {
7738
 
#line 7739 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7739
 
  friend class ::WinIfExists;
7740
 
  friend class ::WinImportHandler;
7741
 
  friend class ::WinMacros;
7742
 
  friend class ::CMatchSyntax;
7743
 
  friend class ::ExtGnu;
7744
 
  friend class ::ExtAC;
7745
 
  friend class ::ExtACBuilderCoupling;
7746
 
  friend class ::ExtACSyntaxCoupling;
7747
 
  friend class ::ExtACTree;
7748
 
  friend class ::ExtACKeywords;
7749
 
  friend class ::WinAsm;
7750
 
  friend class ::WinDeclSpecs;
7751
 
  friend class ::WinMemberExplSpec;
7752
 
  friend class ::WinTypeKeywords;
7753
 
  friend class ::PragmaOnceUnitState;
7754
 
  friend class ::PragmaOnce;
7755
 
  friend class ::CCExprResolve;
7756
 
  friend class ::CExprResolve;
7757
 
 
7758
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7759
 
 
7760
 
public:
7761
 
  CT_QualName (int size = 3) : 
7762
 
    CT_SimpleName (size, CT_List::SEPARATORS) {}
7763
 
  static const char *NodeId ();
7764
 
  const char *NodeName () const { return NodeId (); }
7765
 
  void print (ostream &) const;
7766
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
7767
 
  const char *Text () const { return Name ()->Text (); }
7768
 
  CTypeInfo *Type () const { return Name ()->Type (); }
7769
 
  CExprValue *Value () const { return Name ()->Value (); }
7770
 
  CSemValue *SemValue () const { return Name ()->SemValue (); }
7771
 
  CSemObject *SemObject () const { return Name ()->SemObject (); }
7772
 
  // special new / delete with reusing memory
7773
 
  void *operator new (size_t);
7774
 
  void  operator delete (void *);
7775
 
   private:
7776
 
  typedef CT_QualName CCExprResolveExpr;
7777
 
 
7778
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7779
 
 public :
7780
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7781
 
  typedef CT_QualName CExprResolveExpr;
7782
 
 
7783
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7784
 
 public :
7785
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7786
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7787
 
};
7788
 
 
7789
 
 
7790
 
#line 7791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7791
 
} // closed Puma
7792
 
class WinIfExists;
7793
 
class WinImportHandler;
7794
 
class WinMacros;
7795
 
class CMatchSyntax;
7796
 
class ExtGnu;
7797
 
class ExtAC;
7798
 
class ExtACBuilderCoupling;
7799
 
class ExtACSyntaxCoupling;
7800
 
class ExtACTree;
7801
 
class ExtACKeywords;
7802
 
class WinAsm;
7803
 
class WinDeclSpecs;
7804
 
class WinMemberExplSpec;
7805
 
class WinTypeKeywords;
7806
 
class PragmaOnceUnitState;
7807
 
class PragmaOnce;
7808
 
class CCExprResolve;
7809
 
class CExprResolve;
7810
 
namespace Puma {
7811
 
 
7812
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7813
 
class CT_RootQualName : public CT_QualName {
7814
 
#line 7815 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7815
 
  friend class ::WinIfExists;
7816
 
  friend class ::WinImportHandler;
7817
 
  friend class ::WinMacros;
7818
 
  friend class ::CMatchSyntax;
7819
 
  friend class ::ExtGnu;
7820
 
  friend class ::ExtAC;
7821
 
  friend class ::ExtACBuilderCoupling;
7822
 
  friend class ::ExtACSyntaxCoupling;
7823
 
  friend class ::ExtACTree;
7824
 
  friend class ::ExtACKeywords;
7825
 
  friend class ::WinAsm;
7826
 
  friend class ::WinDeclSpecs;
7827
 
  friend class ::WinMemberExplSpec;
7828
 
  friend class ::WinTypeKeywords;
7829
 
  friend class ::PragmaOnceUnitState;
7830
 
  friend class ::PragmaOnce;
7831
 
  friend class ::CCExprResolve;
7832
 
  friend class ::CExprResolve;
7833
 
 
7834
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7835
 
 
7836
 
public:
7837
 
  CT_RootQualName (int size = 2) : 
7838
 
    CT_QualName (size) { AddProperties (INTRO); }
7839
 
  static const char *NodeId ();
7840
 
  const char *NodeName () const { return NodeId (); }
7841
 
  // special new / delete with reusing memory
7842
 
  void *operator new (size_t);
7843
 
  void  operator delete (void *);
7844
 
   private:
7845
 
  typedef CT_RootQualName CCExprResolveExpr;
7846
 
 
7847
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7848
 
 public :
7849
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7850
 
  typedef CT_RootQualName CExprResolveExpr;
7851
 
 
7852
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7853
 
 public :
7854
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7855
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7856
 
};
7857
 
 
7858
 
 
7859
 
#line 7860 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7860
 
} // closed Puma
7861
 
class WinIfExists;
7862
 
class WinImportHandler;
7863
 
class WinMacros;
7864
 
class CMatchSyntax;
7865
 
class ExtGnu;
7866
 
class ExtAC;
7867
 
class ExtACBuilderCoupling;
7868
 
class ExtACSyntaxCoupling;
7869
 
class ExtACTree;
7870
 
class ExtACKeywords;
7871
 
class WinAsm;
7872
 
class WinDeclSpecs;
7873
 
class WinMemberExplSpec;
7874
 
class WinTypeKeywords;
7875
 
class PragmaOnceUnitState;
7876
 
class PragmaOnce;
7877
 
class CCExprResolve;
7878
 
class CExprResolve;
7879
 
namespace Puma {
7880
 
 
7881
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7882
 
class CT_BinaryExpr : public CT_Expression {
7883
 
#line 7884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7884
 
  friend class ::WinIfExists;
7885
 
  friend class ::WinImportHandler;
7886
 
  friend class ::WinMacros;
7887
 
  friend class ::CMatchSyntax;
7888
 
  friend class ::ExtGnu;
7889
 
  friend class ::ExtAC;
7890
 
  friend class ::ExtACBuilderCoupling;
7891
 
  friend class ::ExtACSyntaxCoupling;
7892
 
  friend class ::ExtACTree;
7893
 
  friend class ::ExtACKeywords;
7894
 
  friend class ::WinAsm;
7895
 
  friend class ::WinDeclSpecs;
7896
 
  friend class ::WinMemberExplSpec;
7897
 
  friend class ::WinTypeKeywords;
7898
 
  friend class ::PragmaOnceUnitState;
7899
 
  friend class ::PragmaOnce;
7900
 
  friend class ::CCExprResolve;
7901
 
  friend class ::CExprResolve;
7902
 
 
7903
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7904
 
 
7905
 
  CTree *sons[3]; // expr, oper, expr
7906
 
 
7907
 
public:
7908
 
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
7909
 
    sons[0] = l; sons[1] = o; sons[2] = r;
7910
 
  }
7911
 
  static const char *NodeId ();
7912
 
  const char *NodeName () const { return NodeId (); }
7913
 
  int Sons () const { return 3; }
7914
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
7915
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
7916
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
7917
 
  }
7918
 
   private:
7919
 
  typedef CT_BinaryExpr CCExprResolveExpr;
7920
 
 
7921
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7922
 
 public :
7923
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7924
 
  typedef CT_BinaryExpr CExprResolveExpr;
7925
 
 
7926
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7927
 
 public :
7928
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7929
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7930
 
};
7931
 
 
7932
 
 
7933
 
#line 7934 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7934
 
} // closed Puma
7935
 
class WinIfExists;
7936
 
class WinImportHandler;
7937
 
class WinMacros;
7938
 
class CMatchSyntax;
7939
 
class ExtGnu;
7940
 
class ExtAC;
7941
 
class ExtACBuilderCoupling;
7942
 
class ExtACSyntaxCoupling;
7943
 
class ExtACTree;
7944
 
class ExtACKeywords;
7945
 
class WinAsm;
7946
 
class WinDeclSpecs;
7947
 
class WinMemberExplSpec;
7948
 
class WinTypeKeywords;
7949
 
class PragmaOnceUnitState;
7950
 
class PragmaOnce;
7951
 
class CCExprResolve;
7952
 
class CExprResolve;
7953
 
namespace Puma {
7954
 
 
7955
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7956
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
7957
 
#line 7958 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
7958
 
  friend class ::WinIfExists;
7959
 
  friend class ::WinImportHandler;
7960
 
  friend class ::WinMacros;
7961
 
  friend class ::CMatchSyntax;
7962
 
  friend class ::ExtGnu;
7963
 
  friend class ::ExtAC;
7964
 
  friend class ::ExtACBuilderCoupling;
7965
 
  friend class ::ExtACSyntaxCoupling;
7966
 
  friend class ::ExtACTree;
7967
 
  friend class ::ExtACKeywords;
7968
 
  friend class ::WinAsm;
7969
 
  friend class ::WinDeclSpecs;
7970
 
  friend class ::WinMemberExplSpec;
7971
 
  friend class ::WinTypeKeywords;
7972
 
  friend class ::PragmaOnceUnitState;
7973
 
  friend class ::PragmaOnce;
7974
 
  friend class ::CCExprResolve;
7975
 
  friend class ::CExprResolve;
7976
 
 
7977
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7978
 
 
7979
 
public:
7980
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
7981
 
    CT_BinaryExpr (e, o, i) {}
7982
 
  static const char *NodeId ();
7983
 
  const char *NodeName () const { return NodeId (); }
7984
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
7985
 
   private:
7986
 
  typedef CT_MembPtrExpr CCExprResolveExpr;
7987
 
 
7988
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7989
 
 public :
7990
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
7991
 
  typedef CT_MembPtrExpr CExprResolveExpr;
7992
 
 
7993
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7994
 
 public :
7995
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7996
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7997
 
};
7998
 
 
7999
 
 
8000
 
#line 8001 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8001
 
} // closed Puma
8002
 
class WinIfExists;
8003
 
class WinImportHandler;
8004
 
class WinMacros;
8005
 
class CMatchSyntax;
8006
 
class ExtGnu;
8007
 
class ExtAC;
8008
 
class ExtACBuilderCoupling;
8009
 
class ExtACSyntaxCoupling;
8010
 
class ExtACTree;
8011
 
class ExtACKeywords;
8012
 
class WinAsm;
8013
 
class WinDeclSpecs;
8014
 
class WinMemberExplSpec;
8015
 
class WinTypeKeywords;
8016
 
class PragmaOnceUnitState;
8017
 
class PragmaOnce;
8018
 
class CCExprResolve;
8019
 
class CExprResolve;
8020
 
namespace Puma {
8021
 
 
8022
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8023
 
class CT_MembRefExpr : public CT_MembPtrExpr {
8024
 
#line 8025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8025
 
  friend class ::WinIfExists;
8026
 
  friend class ::WinImportHandler;
8027
 
  friend class ::WinMacros;
8028
 
  friend class ::CMatchSyntax;
8029
 
  friend class ::ExtGnu;
8030
 
  friend class ::ExtAC;
8031
 
  friend class ::ExtACBuilderCoupling;
8032
 
  friend class ::ExtACSyntaxCoupling;
8033
 
  friend class ::ExtACTree;
8034
 
  friend class ::ExtACKeywords;
8035
 
  friend class ::WinAsm;
8036
 
  friend class ::WinDeclSpecs;
8037
 
  friend class ::WinMemberExplSpec;
8038
 
  friend class ::WinTypeKeywords;
8039
 
  friend class ::PragmaOnceUnitState;
8040
 
  friend class ::PragmaOnce;
8041
 
  friend class ::CCExprResolve;
8042
 
  friend class ::CExprResolve;
8043
 
 
8044
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8045
 
 
8046
 
public:
8047
 
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
8048
 
    CT_MembPtrExpr (e, o, i) {}
8049
 
  static const char *NodeId ();
8050
 
  const char *NodeName () const { return NodeId (); }
8051
 
   private:
8052
 
  typedef CT_MembRefExpr CCExprResolveExpr;
8053
 
 
8054
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8055
 
 public :
8056
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8057
 
  typedef CT_MembRefExpr CExprResolveExpr;
8058
 
 
8059
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8060
 
 public :
8061
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8062
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8063
 
};
8064
 
 
8065
 
 
8066
 
#line 8067 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8067
 
} // closed Puma
8068
 
class WinIfExists;
8069
 
class WinImportHandler;
8070
 
class WinMacros;
8071
 
class CMatchSyntax;
8072
 
class ExtGnu;
8073
 
class ExtAC;
8074
 
class ExtACBuilderCoupling;
8075
 
class ExtACSyntaxCoupling;
8076
 
class ExtACTree;
8077
 
class ExtACKeywords;
8078
 
class WinAsm;
8079
 
class WinDeclSpecs;
8080
 
class WinMemberExplSpec;
8081
 
class WinTypeKeywords;
8082
 
class PragmaOnceUnitState;
8083
 
class PragmaOnce;
8084
 
class CCExprResolve;
8085
 
class CExprResolve;
8086
 
namespace Puma {
8087
 
 
8088
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8089
 
class CT_UnaryExpr : public CT_Expression {
8090
 
#line 8091 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8091
 
  friend class ::WinIfExists;
8092
 
  friend class ::WinImportHandler;
8093
 
  friend class ::WinMacros;
8094
 
  friend class ::CMatchSyntax;
8095
 
  friend class ::ExtGnu;
8096
 
  friend class ::ExtAC;
8097
 
  friend class ::ExtACBuilderCoupling;
8098
 
  friend class ::ExtACSyntaxCoupling;
8099
 
  friend class ::ExtACTree;
8100
 
  friend class ::ExtACKeywords;
8101
 
  friend class ::WinAsm;
8102
 
  friend class ::WinDeclSpecs;
8103
 
  friend class ::WinMemberExplSpec;
8104
 
  friend class ::WinTypeKeywords;
8105
 
  friend class ::PragmaOnceUnitState;
8106
 
  friend class ::PragmaOnce;
8107
 
  friend class ::CCExprResolve;
8108
 
  friend class ::CExprResolve;
8109
 
 
8110
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8111
 
 
8112
 
  CTree *sons[2]; // oper, expr
8113
 
 
8114
 
public:
8115
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
8116
 
  static const char *NodeId ();
8117
 
  const char *NodeName () const { return NodeId (); }
8118
 
  int Sons () const { return 2; }
8119
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
8120
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8121
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
8122
 
  }
8123
 
  CTree *Expr () const { return sons[1]; }
8124
 
   private:
8125
 
  typedef CT_UnaryExpr CCExprResolveExpr;
8126
 
 
8127
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8128
 
 public :
8129
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8130
 
  typedef CT_UnaryExpr CExprResolveExpr;
8131
 
 
8132
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8133
 
 public :
8134
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8135
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8136
 
};
8137
 
 
8138
 
 
8139
 
#line 8140 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8140
 
} // closed Puma
8141
 
class WinIfExists;
8142
 
class WinImportHandler;
8143
 
class WinMacros;
8144
 
class CMatchSyntax;
8145
 
class ExtGnu;
8146
 
class ExtAC;
8147
 
class ExtACBuilderCoupling;
8148
 
class ExtACSyntaxCoupling;
8149
 
class ExtACTree;
8150
 
class ExtACKeywords;
8151
 
class WinAsm;
8152
 
class WinDeclSpecs;
8153
 
class WinMemberExplSpec;
8154
 
class WinTypeKeywords;
8155
 
class PragmaOnceUnitState;
8156
 
class PragmaOnce;
8157
 
class CCExprResolve;
8158
 
class CExprResolve;
8159
 
namespace Puma {
8160
 
 
8161
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8162
 
class CT_PostfixExpr : public CT_UnaryExpr {
8163
 
#line 8164 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8164
 
  friend class ::WinIfExists;
8165
 
  friend class ::WinImportHandler;
8166
 
  friend class ::WinMacros;
8167
 
  friend class ::CMatchSyntax;
8168
 
  friend class ::ExtGnu;
8169
 
  friend class ::ExtAC;
8170
 
  friend class ::ExtACBuilderCoupling;
8171
 
  friend class ::ExtACSyntaxCoupling;
8172
 
  friend class ::ExtACTree;
8173
 
  friend class ::ExtACKeywords;
8174
 
  friend class ::WinAsm;
8175
 
  friend class ::WinDeclSpecs;
8176
 
  friend class ::WinMemberExplSpec;
8177
 
  friend class ::WinTypeKeywords;
8178
 
  friend class ::PragmaOnceUnitState;
8179
 
  friend class ::PragmaOnce;
8180
 
  friend class ::CCExprResolve;
8181
 
  friend class ::CExprResolve;
8182
 
 
8183
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8184
 
 
8185
 
public:
8186
 
  CT_PostfixExpr (CTree *e, CTree *o) :
8187
 
    CT_UnaryExpr (e, o) {}
8188
 
  static const char *NodeId ();
8189
 
  const char *NodeName () const { return NodeId (); }
8190
 
   private:
8191
 
  typedef CT_PostfixExpr CCExprResolveExpr;
8192
 
 
8193
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8194
 
 public :
8195
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8196
 
  typedef CT_PostfixExpr CExprResolveExpr;
8197
 
 
8198
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8199
 
 public :
8200
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8201
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8202
 
};
8203
 
 
8204
 
 
8205
 
#line 8206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8206
 
} // closed Puma
8207
 
class WinIfExists;
8208
 
class WinImportHandler;
8209
 
class WinMacros;
8210
 
class CMatchSyntax;
8211
 
class ExtGnu;
8212
 
class ExtAC;
8213
 
class ExtACBuilderCoupling;
8214
 
class ExtACSyntaxCoupling;
8215
 
class ExtACTree;
8216
 
class ExtACKeywords;
8217
 
class WinAsm;
8218
 
class WinDeclSpecs;
8219
 
class WinMemberExplSpec;
8220
 
class WinTypeKeywords;
8221
 
class PragmaOnceUnitState;
8222
 
class PragmaOnce;
8223
 
class CCExprResolve;
8224
 
class CExprResolve;
8225
 
namespace Puma {
8226
 
 
8227
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8228
 
class CT_AddrExpr : public CT_UnaryExpr {
8229
 
#line 8230 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8230
 
  friend class ::WinIfExists;
8231
 
  friend class ::WinImportHandler;
8232
 
  friend class ::WinMacros;
8233
 
  friend class ::CMatchSyntax;
8234
 
  friend class ::ExtGnu;
8235
 
  friend class ::ExtAC;
8236
 
  friend class ::ExtACBuilderCoupling;
8237
 
  friend class ::ExtACSyntaxCoupling;
8238
 
  friend class ::ExtACTree;
8239
 
  friend class ::ExtACKeywords;
8240
 
  friend class ::WinAsm;
8241
 
  friend class ::WinDeclSpecs;
8242
 
  friend class ::WinMemberExplSpec;
8243
 
  friend class ::WinTypeKeywords;
8244
 
  friend class ::PragmaOnceUnitState;
8245
 
  friend class ::PragmaOnce;
8246
 
  friend class ::CCExprResolve;
8247
 
  friend class ::CExprResolve;
8248
 
 
8249
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8250
 
 
8251
 
public:
8252
 
  CT_AddrExpr (CTree *o, CTree *e) :
8253
 
    CT_UnaryExpr (o, e) {}
8254
 
  static const char *NodeId ();
8255
 
  const char *NodeName () const { return NodeId (); }
8256
 
   private:
8257
 
  typedef CT_AddrExpr CCExprResolveExpr;
8258
 
 
8259
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8260
 
 public :
8261
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8262
 
  typedef CT_AddrExpr CExprResolveExpr;
8263
 
 
8264
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8265
 
 public :
8266
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8267
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8268
 
};
8269
 
 
8270
 
 
8271
 
#line 8272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8272
 
} // closed Puma
8273
 
class WinIfExists;
8274
 
class WinImportHandler;
8275
 
class WinMacros;
8276
 
class CMatchSyntax;
8277
 
class ExtGnu;
8278
 
class ExtAC;
8279
 
class ExtACBuilderCoupling;
8280
 
class ExtACSyntaxCoupling;
8281
 
class ExtACTree;
8282
 
class ExtACKeywords;
8283
 
class WinAsm;
8284
 
class WinDeclSpecs;
8285
 
class WinMemberExplSpec;
8286
 
class WinTypeKeywords;
8287
 
class PragmaOnceUnitState;
8288
 
class PragmaOnce;
8289
 
class CCExprResolve;
8290
 
class CExprResolve;
8291
 
namespace Puma {
8292
 
 
8293
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8294
 
class CT_DerefExpr : public CT_UnaryExpr {
8295
 
#line 8296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8296
 
  friend class ::WinIfExists;
8297
 
  friend class ::WinImportHandler;
8298
 
  friend class ::WinMacros;
8299
 
  friend class ::CMatchSyntax;
8300
 
  friend class ::ExtGnu;
8301
 
  friend class ::ExtAC;
8302
 
  friend class ::ExtACBuilderCoupling;
8303
 
  friend class ::ExtACSyntaxCoupling;
8304
 
  friend class ::ExtACTree;
8305
 
  friend class ::ExtACKeywords;
8306
 
  friend class ::WinAsm;
8307
 
  friend class ::WinDeclSpecs;
8308
 
  friend class ::WinMemberExplSpec;
8309
 
  friend class ::WinTypeKeywords;
8310
 
  friend class ::PragmaOnceUnitState;
8311
 
  friend class ::PragmaOnce;
8312
 
  friend class ::CCExprResolve;
8313
 
  friend class ::CExprResolve;
8314
 
 
8315
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8316
 
 
8317
 
public:
8318
 
  CT_DerefExpr (CTree *o, CTree *e) :
8319
 
    CT_UnaryExpr (o, e) {}
8320
 
  static const char *NodeId ();
8321
 
  const char *NodeName () const { return NodeId (); }
8322
 
   private:
8323
 
  typedef CT_DerefExpr CCExprResolveExpr;
8324
 
 
8325
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8326
 
 public :
8327
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8328
 
  typedef CT_DerefExpr CExprResolveExpr;
8329
 
 
8330
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8331
 
 public :
8332
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8333
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8334
 
};
8335
 
 
8336
 
 
8337
 
#line 8338 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8338
 
} // closed Puma
8339
 
class WinIfExists;
8340
 
class WinImportHandler;
8341
 
class WinMacros;
8342
 
class CMatchSyntax;
8343
 
class ExtGnu;
8344
 
class ExtAC;
8345
 
class ExtACBuilderCoupling;
8346
 
class ExtACSyntaxCoupling;
8347
 
class ExtACTree;
8348
 
class ExtACKeywords;
8349
 
class WinAsm;
8350
 
class WinDeclSpecs;
8351
 
class WinMemberExplSpec;
8352
 
class WinTypeKeywords;
8353
 
class PragmaOnceUnitState;
8354
 
class PragmaOnce;
8355
 
class CCExprResolve;
8356
 
class CExprResolve;
8357
 
namespace Puma {
8358
 
 
8359
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8360
 
class CT_DeleteExpr : public CT_Expression, public CSemObject {
8361
 
#line 8362 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8362
 
  friend class ::WinIfExists;
8363
 
  friend class ::WinImportHandler;
8364
 
  friend class ::WinMacros;
8365
 
  friend class ::CMatchSyntax;
8366
 
  friend class ::ExtGnu;
8367
 
  friend class ::ExtAC;
8368
 
  friend class ::ExtACBuilderCoupling;
8369
 
  friend class ::ExtACSyntaxCoupling;
8370
 
  friend class ::ExtACTree;
8371
 
  friend class ::ExtACKeywords;
8372
 
  friend class ::WinAsm;
8373
 
  friend class ::WinDeclSpecs;
8374
 
  friend class ::WinMemberExplSpec;
8375
 
  friend class ::WinTypeKeywords;
8376
 
  friend class ::PragmaOnceUnitState;
8377
 
  friend class ::PragmaOnce;
8378
 
  friend class ::CCExprResolve;
8379
 
  friend class ::CExprResolve;
8380
 
 
8381
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8382
 
 
8383
 
  CTree *sons[2]; // oper, expr
8384
 
 
8385
 
public:
8386
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
8387
 
  static const char *NodeId ();
8388
 
  const char *NodeName () const { return NodeId (); }
8389
 
  int Sons () const { return 2; }
8390
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
8391
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8392
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
8393
 
  }
8394
 
  CTree *Expr () const { return sons[1]; }
8395
 
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
8396
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
8397
 
   private:
8398
 
  typedef CT_DeleteExpr CCExprResolveExpr;
8399
 
 
8400
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8401
 
 public :
8402
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8403
 
  typedef CT_DeleteExpr CExprResolveExpr;
8404
 
 
8405
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8406
 
 public :
8407
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8408
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8409
 
};
8410
 
 
8411
 
 
8412
 
#line 8413 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8413
 
} // closed Puma
8414
 
class WinIfExists;
8415
 
class WinImportHandler;
8416
 
class WinMacros;
8417
 
class CMatchSyntax;
8418
 
class ExtGnu;
8419
 
class ExtAC;
8420
 
class ExtACBuilderCoupling;
8421
 
class ExtACSyntaxCoupling;
8422
 
class ExtACTree;
8423
 
class ExtACKeywords;
8424
 
class WinAsm;
8425
 
class WinDeclSpecs;
8426
 
class WinMemberExplSpec;
8427
 
class WinTypeKeywords;
8428
 
class PragmaOnceUnitState;
8429
 
class PragmaOnce;
8430
 
class CCExprResolve;
8431
 
class CExprResolve;
8432
 
namespace Puma {
8433
 
 
8434
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8435
 
class CT_NewExpr : public CT_Expression, public CSemObject {
8436
 
#line 8437 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8437
 
  friend class ::WinIfExists;
8438
 
  friend class ::WinImportHandler;
8439
 
  friend class ::WinMacros;
8440
 
  friend class ::CMatchSyntax;
8441
 
  friend class ::ExtGnu;
8442
 
  friend class ::ExtAC;
8443
 
  friend class ::ExtACBuilderCoupling;
8444
 
  friend class ::ExtACSyntaxCoupling;
8445
 
  friend class ::ExtACTree;
8446
 
  friend class ::ExtACKeywords;
8447
 
  friend class ::WinAsm;
8448
 
  friend class ::WinDeclSpecs;
8449
 
  friend class ::WinMemberExplSpec;
8450
 
  friend class ::WinTypeKeywords;
8451
 
  friend class ::PragmaOnceUnitState;
8452
 
  friend class ::PragmaOnce;
8453
 
  friend class ::CCExprResolve;
8454
 
  friend class ::CExprResolve;
8455
 
 
8456
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8457
 
 
8458
 
  CTree *sons[6]; // oper, placement, open, type, close, init
8459
 
 
8460
 
public:
8461
 
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
8462
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
8463
 
  }
8464
 
  static const char *NodeId ();
8465
 
  const char *NodeName () const { return NodeId (); }
8466
 
  int Sons () const { return CTree::Sons (sons, 6); }
8467
 
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
8468
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8469
 
    CTree::ReplaceSon (sons, 6, old_son, new_son);
8470
 
  }
8471
 
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
8472
 
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
8473
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
8474
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
8475
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
8476
 
   private:
8477
 
  typedef CT_NewExpr CCExprResolveExpr;
8478
 
 
8479
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8480
 
 public :
8481
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8482
 
  typedef CT_NewExpr CExprResolveExpr;
8483
 
 
8484
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8485
 
 public :
8486
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8487
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8488
 
};
8489
 
 
8490
 
 
8491
 
#line 8492 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8492
 
} // closed Puma
8493
 
class WinIfExists;
8494
 
class WinImportHandler;
8495
 
class WinMacros;
8496
 
class CMatchSyntax;
8497
 
class ExtGnu;
8498
 
class ExtAC;
8499
 
class ExtACBuilderCoupling;
8500
 
class ExtACSyntaxCoupling;
8501
 
class ExtACTree;
8502
 
class ExtACKeywords;
8503
 
class WinAsm;
8504
 
class WinDeclSpecs;
8505
 
class WinMemberExplSpec;
8506
 
class WinTypeKeywords;
8507
 
class PragmaOnceUnitState;
8508
 
class PragmaOnce;
8509
 
class CCExprResolve;
8510
 
class CExprResolve;
8511
 
namespace Puma {
8512
 
 
8513
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8514
 
class CT_IfThenExpr : public CT_Expression {
8515
 
#line 8516 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8516
 
  friend class ::WinIfExists;
8517
 
  friend class ::WinImportHandler;
8518
 
  friend class ::WinMacros;
8519
 
  friend class ::CMatchSyntax;
8520
 
  friend class ::ExtGnu;
8521
 
  friend class ::ExtAC;
8522
 
  friend class ::ExtACBuilderCoupling;
8523
 
  friend class ::ExtACSyntaxCoupling;
8524
 
  friend class ::ExtACTree;
8525
 
  friend class ::ExtACKeywords;
8526
 
  friend class ::WinAsm;
8527
 
  friend class ::WinDeclSpecs;
8528
 
  friend class ::WinMemberExplSpec;
8529
 
  friend class ::WinTypeKeywords;
8530
 
  friend class ::PragmaOnceUnitState;
8531
 
  friend class ::PragmaOnce;
8532
 
  friend class ::CCExprResolve;
8533
 
  friend class ::CExprResolve;
8534
 
 
8535
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8536
 
 
8537
 
  CTree *sons[5]; // cond, oper, left, colon, right
8538
 
 
8539
 
public:
8540
 
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
8541
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
8542
 
  }
8543
 
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
8544
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
8545
 
  }
8546
 
  static const char *NodeId ();
8547
 
  const char *NodeName () const { return NodeId (); }
8548
 
  int Sons () const { return CTree::Sons (sons, 5); }
8549
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
8550
 
  CTree *Condition () const { return sons[0]; }
8551
 
  CTree *LeftOperand () const { return sons[2]; }
8552
 
  CTree *RightOperand () const { return sons[4]; }
8553
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8554
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
8555
 
  }
8556
 
   private:
8557
 
  typedef CT_IfThenExpr CCExprResolveExpr;
8558
 
 
8559
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8560
 
 public :
8561
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8562
 
  typedef CT_IfThenExpr CExprResolveExpr;
8563
 
 
8564
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8565
 
 public :
8566
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8567
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8568
 
};
8569
 
 
8570
 
 
8571
 
#line 8572 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8572
 
} // closed Puma
8573
 
class WinIfExists;
8574
 
class WinImportHandler;
8575
 
class WinMacros;
8576
 
class CMatchSyntax;
8577
 
class ExtGnu;
8578
 
class ExtAC;
8579
 
class ExtACBuilderCoupling;
8580
 
class ExtACSyntaxCoupling;
8581
 
class ExtACTree;
8582
 
class ExtACKeywords;
8583
 
class WinAsm;
8584
 
class WinDeclSpecs;
8585
 
class WinMemberExplSpec;
8586
 
class WinTypeKeywords;
8587
 
class PragmaOnceUnitState;
8588
 
class PragmaOnce;
8589
 
class CCExprResolve;
8590
 
class CExprResolve;
8591
 
namespace Puma {
8592
 
 
8593
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8594
 
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
8595
 
#line 8596 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8596
 
  friend class ::WinIfExists;
8597
 
  friend class ::WinImportHandler;
8598
 
  friend class ::WinMacros;
8599
 
  friend class ::CMatchSyntax;
8600
 
  friend class ::ExtGnu;
8601
 
  friend class ::ExtAC;
8602
 
  friend class ::ExtACBuilderCoupling;
8603
 
  friend class ::ExtACSyntaxCoupling;
8604
 
  friend class ::ExtACTree;
8605
 
  friend class ::ExtACKeywords;
8606
 
  friend class ::WinAsm;
8607
 
  friend class ::WinDeclSpecs;
8608
 
  friend class ::WinMemberExplSpec;
8609
 
  friend class ::WinTypeKeywords;
8610
 
  friend class ::PragmaOnceUnitState;
8611
 
  friend class ::PragmaOnce;
8612
 
  friend class ::CCExprResolve;
8613
 
  friend class ::CExprResolve;
8614
 
 
8615
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8616
 
 
8617
 
  CTree *sons[4]; // open, type, close, init
8618
 
 
8619
 
public:
8620
 
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
8621
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
8622
 
  }
8623
 
  static const char *NodeId ();
8624
 
  const char *NodeName () const { return NodeId (); }
8625
 
  int Sons () const { return 4; }
8626
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
8627
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8628
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
8629
 
  }
8630
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
8631
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
8632
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
8633
 
   private:
8634
 
  typedef CT_CmpdLiteral CCExprResolveExpr;
8635
 
 
8636
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8637
 
 public :
8638
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8639
 
  typedef CT_CmpdLiteral CExprResolveExpr;
8640
 
 
8641
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8642
 
 public :
8643
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8644
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8645
 
};
8646
 
 
8647
 
 
8648
 
#line 8649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8649
 
} // closed Puma
8650
 
class WinIfExists;
8651
 
class WinImportHandler;
8652
 
class WinMacros;
8653
 
class CMatchSyntax;
8654
 
class ExtGnu;
8655
 
class ExtAC;
8656
 
class ExtACBuilderCoupling;
8657
 
class ExtACSyntaxCoupling;
8658
 
class ExtACTree;
8659
 
class ExtACKeywords;
8660
 
class WinAsm;
8661
 
class WinDeclSpecs;
8662
 
class WinMemberExplSpec;
8663
 
class WinTypeKeywords;
8664
 
class PragmaOnceUnitState;
8665
 
class PragmaOnce;
8666
 
class CCExprResolve;
8667
 
class CExprResolve;
8668
 
namespace Puma {
8669
 
 
8670
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8671
 
class CT_ConstructExpr : public CT_Expression, public CSemObject {
8672
 
#line 8673 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8673
 
  friend class ::WinIfExists;
8674
 
  friend class ::WinImportHandler;
8675
 
  friend class ::WinMacros;
8676
 
  friend class ::CMatchSyntax;
8677
 
  friend class ::ExtGnu;
8678
 
  friend class ::ExtAC;
8679
 
  friend class ::ExtACBuilderCoupling;
8680
 
  friend class ::ExtACSyntaxCoupling;
8681
 
  friend class ::ExtACTree;
8682
 
  friend class ::ExtACKeywords;
8683
 
  friend class ::WinAsm;
8684
 
  friend class ::WinDeclSpecs;
8685
 
  friend class ::WinMemberExplSpec;
8686
 
  friend class ::WinTypeKeywords;
8687
 
  friend class ::PragmaOnceUnitState;
8688
 
  friend class ::PragmaOnce;
8689
 
  friend class ::CCExprResolve;
8690
 
  friend class ::CExprResolve;
8691
 
 
8692
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8693
 
 
8694
 
  CTree *sons[2]; // type, init
8695
 
 
8696
 
public:
8697
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
8698
 
  static const char *NodeId ();
8699
 
  const char *NodeName () const { return NodeId (); }
8700
 
  int Sons () const { return 2; }
8701
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
8702
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8703
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
8704
 
  }
8705
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
8706
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
8707
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
8708
 
   private:
8709
 
  typedef CT_ConstructExpr CCExprResolveExpr;
8710
 
 
8711
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8712
 
 public :
8713
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8714
 
  typedef CT_ConstructExpr CExprResolveExpr;
8715
 
 
8716
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8717
 
 public :
8718
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8719
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8720
 
};
8721
 
 
8722
 
 
8723
 
#line 8724 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8724
 
} // closed Puma
8725
 
class WinIfExists;
8726
 
class WinImportHandler;
8727
 
class WinMacros;
8728
 
class CMatchSyntax;
8729
 
class ExtGnu;
8730
 
class ExtAC;
8731
 
class ExtACBuilderCoupling;
8732
 
class ExtACSyntaxCoupling;
8733
 
class ExtACTree;
8734
 
class ExtACKeywords;
8735
 
class WinAsm;
8736
 
class WinDeclSpecs;
8737
 
class WinMemberExplSpec;
8738
 
class WinTypeKeywords;
8739
 
class PragmaOnceUnitState;
8740
 
class PragmaOnce;
8741
 
class CCExprResolve;
8742
 
class CExprResolve;
8743
 
namespace Puma {
8744
 
 
8745
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8746
 
class CT_ThrowExpr : public CT_Expression {
8747
 
#line 8748 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8748
 
  friend class ::WinIfExists;
8749
 
  friend class ::WinImportHandler;
8750
 
  friend class ::WinMacros;
8751
 
  friend class ::CMatchSyntax;
8752
 
  friend class ::ExtGnu;
8753
 
  friend class ::ExtAC;
8754
 
  friend class ::ExtACBuilderCoupling;
8755
 
  friend class ::ExtACSyntaxCoupling;
8756
 
  friend class ::ExtACTree;
8757
 
  friend class ::ExtACKeywords;
8758
 
  friend class ::WinAsm;
8759
 
  friend class ::WinDeclSpecs;
8760
 
  friend class ::WinMemberExplSpec;
8761
 
  friend class ::WinTypeKeywords;
8762
 
  friend class ::PragmaOnceUnitState;
8763
 
  friend class ::PragmaOnce;
8764
 
  friend class ::CCExprResolve;
8765
 
  friend class ::CExprResolve;
8766
 
 
8767
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8768
 
 
8769
 
  CTree *sons[2]; // throw, expr
8770
 
 
8771
 
public:
8772
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
8773
 
  static const char *NodeId ();
8774
 
  const char *NodeName () const { return NodeId (); }
8775
 
  int Sons () const { return CTree::Sons (sons, 2); }
8776
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
8777
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8778
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
8779
 
  }
8780
 
  CTree *Expr () const { return sons[1]; }
8781
 
   private:
8782
 
  typedef CT_ThrowExpr CCExprResolveExpr;
8783
 
 
8784
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8785
 
 public :
8786
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8787
 
  typedef CT_ThrowExpr CExprResolveExpr;
8788
 
 
8789
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8790
 
 public :
8791
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8792
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8793
 
};
8794
 
 
8795
 
 
8796
 
#line 8797 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8797
 
} // closed Puma
8798
 
class WinIfExists;
8799
 
class WinImportHandler;
8800
 
class WinMacros;
8801
 
class CMatchSyntax;
8802
 
class ExtGnu;
8803
 
class ExtAC;
8804
 
class ExtACBuilderCoupling;
8805
 
class ExtACSyntaxCoupling;
8806
 
class ExtACTree;
8807
 
class ExtACKeywords;
8808
 
class WinAsm;
8809
 
class WinDeclSpecs;
8810
 
class WinMemberExplSpec;
8811
 
class WinTypeKeywords;
8812
 
class PragmaOnceUnitState;
8813
 
class PragmaOnce;
8814
 
class CCExprResolve;
8815
 
class CExprResolve;
8816
 
namespace Puma {
8817
 
 
8818
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8819
 
class CT_IndexExpr : public CT_Expression {
8820
 
#line 8821 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8821
 
  friend class ::WinIfExists;
8822
 
  friend class ::WinImportHandler;
8823
 
  friend class ::WinMacros;
8824
 
  friend class ::CMatchSyntax;
8825
 
  friend class ::ExtGnu;
8826
 
  friend class ::ExtAC;
8827
 
  friend class ::ExtACBuilderCoupling;
8828
 
  friend class ::ExtACSyntaxCoupling;
8829
 
  friend class ::ExtACTree;
8830
 
  friend class ::ExtACKeywords;
8831
 
  friend class ::WinAsm;
8832
 
  friend class ::WinDeclSpecs;
8833
 
  friend class ::WinMemberExplSpec;
8834
 
  friend class ::WinTypeKeywords;
8835
 
  friend class ::PragmaOnceUnitState;
8836
 
  friend class ::PragmaOnce;
8837
 
  friend class ::CCExprResolve;
8838
 
  friend class ::CExprResolve;
8839
 
 
8840
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8841
 
 
8842
 
  CTree *sons[4]; // expr, open, index, close
8843
 
 
8844
 
public:
8845
 
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
8846
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
8847
 
  }
8848
 
  static const char *NodeId ();
8849
 
  const char *NodeName () const { return NodeId (); }
8850
 
  int Sons () const { return 4; }
8851
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
8852
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8853
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
8854
 
  }
8855
 
   private:
8856
 
  typedef CT_IndexExpr CCExprResolveExpr;
8857
 
 
8858
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8859
 
 public :
8860
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8861
 
  typedef CT_IndexExpr CExprResolveExpr;
8862
 
 
8863
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8864
 
 public :
8865
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8866
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8867
 
};
8868
 
 
8869
 
 
8870
 
#line 8871 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8871
 
} // closed Puma
8872
 
class WinIfExists;
8873
 
class WinImportHandler;
8874
 
class WinMacros;
8875
 
class CMatchSyntax;
8876
 
class ExtGnu;
8877
 
class ExtAC;
8878
 
class ExtACBuilderCoupling;
8879
 
class ExtACSyntaxCoupling;
8880
 
class ExtACTree;
8881
 
class ExtACKeywords;
8882
 
class WinAsm;
8883
 
class WinDeclSpecs;
8884
 
class WinMemberExplSpec;
8885
 
class WinTypeKeywords;
8886
 
class PragmaOnceUnitState;
8887
 
class PragmaOnce;
8888
 
class CCExprResolve;
8889
 
class CExprResolve;
8890
 
namespace Puma {
8891
 
 
8892
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8893
 
class CT_CallExpr : public CT_Expression, public CSemObject {
8894
 
#line 8895 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8895
 
  friend class ::WinIfExists;
8896
 
  friend class ::WinImportHandler;
8897
 
  friend class ::WinMacros;
8898
 
  friend class ::CMatchSyntax;
8899
 
  friend class ::ExtGnu;
8900
 
  friend class ::ExtAC;
8901
 
  friend class ::ExtACBuilderCoupling;
8902
 
  friend class ::ExtACSyntaxCoupling;
8903
 
  friend class ::ExtACTree;
8904
 
  friend class ::ExtACKeywords;
8905
 
  friend class ::WinAsm;
8906
 
  friend class ::WinDeclSpecs;
8907
 
  friend class ::WinMemberExplSpec;
8908
 
  friend class ::WinTypeKeywords;
8909
 
  friend class ::PragmaOnceUnitState;
8910
 
  friend class ::PragmaOnce;
8911
 
  friend class ::CCExprResolve;
8912
 
  friend class ::CExprResolve;
8913
 
 
8914
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8915
 
 
8916
 
  CTree *sons[2]; // expr, args
8917
 
 
8918
 
public:
8919
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
8920
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
8921
 
  static const char *NodeId ();
8922
 
  const char *NodeName () const { return NodeId (); }
8923
 
  int Sons () const { return CTree::Sons (sons, 2); }
8924
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
8925
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8926
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
8927
 
  }
8928
 
  CTree *Expr () const { return sons[0]; }
8929
 
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
8930
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
8931
 
   private:
8932
 
  typedef CT_CallExpr CCExprResolveExpr;
8933
 
 
8934
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8935
 
 public :
8936
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
8937
 
  typedef CT_CallExpr CExprResolveExpr;
8938
 
 
8939
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8940
 
 public :
8941
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8942
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8943
 
};
8944
 
 
8945
 
 
8946
 
#line 8947 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8947
 
} // closed Puma
8948
 
class WinIfExists;
8949
 
class WinImportHandler;
8950
 
class WinMacros;
8951
 
class CMatchSyntax;
8952
 
class ExtGnu;
8953
 
class ExtAC;
8954
 
class ExtACBuilderCoupling;
8955
 
class ExtACSyntaxCoupling;
8956
 
class ExtACTree;
8957
 
class ExtACKeywords;
8958
 
class WinAsm;
8959
 
class WinDeclSpecs;
8960
 
class WinMemberExplSpec;
8961
 
class WinTypeKeywords;
8962
 
class PragmaOnceUnitState;
8963
 
class PragmaOnce;
8964
 
class CCExprResolve;
8965
 
class CExprResolve;
8966
 
namespace Puma {
8967
 
 
8968
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8969
 
class CT_CastExpr : public CT_Expression {
8970
 
#line 8971 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
8971
 
  friend class ::WinIfExists;
8972
 
  friend class ::WinImportHandler;
8973
 
  friend class ::WinMacros;
8974
 
  friend class ::CMatchSyntax;
8975
 
  friend class ::ExtGnu;
8976
 
  friend class ::ExtAC;
8977
 
  friend class ::ExtACBuilderCoupling;
8978
 
  friend class ::ExtACSyntaxCoupling;
8979
 
  friend class ::ExtACTree;
8980
 
  friend class ::ExtACKeywords;
8981
 
  friend class ::WinAsm;
8982
 
  friend class ::WinDeclSpecs;
8983
 
  friend class ::WinMemberExplSpec;
8984
 
  friend class ::WinTypeKeywords;
8985
 
  friend class ::PragmaOnceUnitState;
8986
 
  friend class ::PragmaOnce;
8987
 
  friend class ::CCExprResolve;
8988
 
  friend class ::CExprResolve;
8989
 
 
8990
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8991
 
 
8992
 
  CTree *sons[4]; // open, type, close, expr
8993
 
 
8994
 
public:
8995
 
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
8996
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
8997
 
  }
8998
 
  static const char *NodeId ();
8999
 
  const char *NodeName () const { return NodeId (); }
9000
 
  int Sons () const { return 4; }
9001
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
9002
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9003
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
9004
 
  }
9005
 
  CTree *Expr () const { return sons[3]; }
9006
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
9007
 
   private:
9008
 
  typedef CT_CastExpr CCExprResolveExpr;
9009
 
 
9010
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9011
 
 public :
9012
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
9013
 
  typedef CT_CastExpr CExprResolveExpr;
9014
 
 
9015
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9016
 
 public :
9017
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9018
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9019
 
};
9020
 
 
9021
 
 
9022
 
#line 9023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9023
 
} // closed Puma
9024
 
class WinIfExists;
9025
 
class WinImportHandler;
9026
 
class WinMacros;
9027
 
class CMatchSyntax;
9028
 
class ExtGnu;
9029
 
class ExtAC;
9030
 
class ExtACBuilderCoupling;
9031
 
class ExtACSyntaxCoupling;
9032
 
class ExtACTree;
9033
 
class ExtACKeywords;
9034
 
class WinAsm;
9035
 
class WinDeclSpecs;
9036
 
class WinMemberExplSpec;
9037
 
class WinTypeKeywords;
9038
 
class PragmaOnceUnitState;
9039
 
class PragmaOnce;
9040
 
class CCExprResolve;
9041
 
class CExprResolve;
9042
 
namespace Puma {
9043
 
 
9044
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9045
 
class CT_StaticCast : public CT_Expression {
9046
 
#line 9047 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9047
 
  friend class ::WinIfExists;
9048
 
  friend class ::WinImportHandler;
9049
 
  friend class ::WinMacros;
9050
 
  friend class ::CMatchSyntax;
9051
 
  friend class ::ExtGnu;
9052
 
  friend class ::ExtAC;
9053
 
  friend class ::ExtACBuilderCoupling;
9054
 
  friend class ::ExtACSyntaxCoupling;
9055
 
  friend class ::ExtACTree;
9056
 
  friend class ::ExtACKeywords;
9057
 
  friend class ::WinAsm;
9058
 
  friend class ::WinDeclSpecs;
9059
 
  friend class ::WinMemberExplSpec;
9060
 
  friend class ::WinTypeKeywords;
9061
 
  friend class ::PragmaOnceUnitState;
9062
 
  friend class ::PragmaOnce;
9063
 
  friend class ::CCExprResolve;
9064
 
  friend class ::CExprResolve;
9065
 
 
9066
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9067
 
 
9068
 
  CTree *sons[5]; // cast, open, type, close, expr
9069
 
 
9070
 
public:
9071
 
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
9072
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
9073
 
  }
9074
 
  static const char *NodeId ();
9075
 
  const char *NodeName () const { return NodeId (); }
9076
 
  int Sons () const { return 5; }
9077
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
9078
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9079
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
9080
 
  }
9081
 
  CTree *Expr () const { return sons[4]; }
9082
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
9083
 
   private:
9084
 
  typedef CT_StaticCast CCExprResolveExpr;
9085
 
 
9086
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9087
 
 public :
9088
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
9089
 
  typedef CT_StaticCast CExprResolveExpr;
9090
 
 
9091
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9092
 
 public :
9093
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9094
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9095
 
};
9096
 
 
9097
 
 
9098
 
#line 9099 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9099
 
} // closed Puma
9100
 
class WinIfExists;
9101
 
class WinImportHandler;
9102
 
class WinMacros;
9103
 
class CMatchSyntax;
9104
 
class ExtGnu;
9105
 
class ExtAC;
9106
 
class ExtACBuilderCoupling;
9107
 
class ExtACSyntaxCoupling;
9108
 
class ExtACTree;
9109
 
class ExtACKeywords;
9110
 
class WinAsm;
9111
 
class WinDeclSpecs;
9112
 
class WinMemberExplSpec;
9113
 
class WinTypeKeywords;
9114
 
class PragmaOnceUnitState;
9115
 
class PragmaOnce;
9116
 
class CCExprResolve;
9117
 
class CExprResolve;
9118
 
namespace Puma {
9119
 
 
9120
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9121
 
class CT_ConstCast : public CT_StaticCast {
9122
 
#line 9123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9123
 
  friend class ::WinIfExists;
9124
 
  friend class ::WinImportHandler;
9125
 
  friend class ::WinMacros;
9126
 
  friend class ::CMatchSyntax;
9127
 
  friend class ::ExtGnu;
9128
 
  friend class ::ExtAC;
9129
 
  friend class ::ExtACBuilderCoupling;
9130
 
  friend class ::ExtACSyntaxCoupling;
9131
 
  friend class ::ExtACTree;
9132
 
  friend class ::ExtACKeywords;
9133
 
  friend class ::WinAsm;
9134
 
  friend class ::WinDeclSpecs;
9135
 
  friend class ::WinMemberExplSpec;
9136
 
  friend class ::WinTypeKeywords;
9137
 
  friend class ::PragmaOnceUnitState;
9138
 
  friend class ::PragmaOnce;
9139
 
  friend class ::CCExprResolve;
9140
 
  friend class ::CExprResolve;
9141
 
 
9142
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9143
 
 
9144
 
public:
9145
 
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
9146
 
    CT_StaticCast (cst, o, t, c, e) {}
9147
 
  static const char *NodeId ();
9148
 
  const char *NodeName () const { return NodeId (); }
9149
 
   private:
9150
 
  typedef CT_ConstCast CCExprResolveExpr;
9151
 
 
9152
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9153
 
 public :
9154
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
9155
 
  typedef CT_ConstCast CExprResolveExpr;
9156
 
 
9157
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9158
 
 public :
9159
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9160
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9161
 
};
9162
 
 
9163
 
 
9164
 
#line 9165 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9165
 
} // closed Puma
9166
 
class WinIfExists;
9167
 
class WinImportHandler;
9168
 
class WinMacros;
9169
 
class CMatchSyntax;
9170
 
class ExtGnu;
9171
 
class ExtAC;
9172
 
class ExtACBuilderCoupling;
9173
 
class ExtACSyntaxCoupling;
9174
 
class ExtACTree;
9175
 
class ExtACKeywords;
9176
 
class WinAsm;
9177
 
class WinDeclSpecs;
9178
 
class WinMemberExplSpec;
9179
 
class WinTypeKeywords;
9180
 
class PragmaOnceUnitState;
9181
 
class PragmaOnce;
9182
 
class CCExprResolve;
9183
 
class CExprResolve;
9184
 
namespace Puma {
9185
 
 
9186
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9187
 
class CT_ReintCast : public CT_StaticCast {
9188
 
#line 9189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9189
 
  friend class ::WinIfExists;
9190
 
  friend class ::WinImportHandler;
9191
 
  friend class ::WinMacros;
9192
 
  friend class ::CMatchSyntax;
9193
 
  friend class ::ExtGnu;
9194
 
  friend class ::ExtAC;
9195
 
  friend class ::ExtACBuilderCoupling;
9196
 
  friend class ::ExtACSyntaxCoupling;
9197
 
  friend class ::ExtACTree;
9198
 
  friend class ::ExtACKeywords;
9199
 
  friend class ::WinAsm;
9200
 
  friend class ::WinDeclSpecs;
9201
 
  friend class ::WinMemberExplSpec;
9202
 
  friend class ::WinTypeKeywords;
9203
 
  friend class ::PragmaOnceUnitState;
9204
 
  friend class ::PragmaOnce;
9205
 
  friend class ::CCExprResolve;
9206
 
  friend class ::CExprResolve;
9207
 
 
9208
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9209
 
 
9210
 
public:
9211
 
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
9212
 
    CT_StaticCast (cst, o, t, c, e) {}
9213
 
  static const char *NodeId ();
9214
 
  const char *NodeName () const { return NodeId (); }
9215
 
   private:
9216
 
  typedef CT_ReintCast CCExprResolveExpr;
9217
 
 
9218
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9219
 
 public :
9220
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
9221
 
  typedef CT_ReintCast CExprResolveExpr;
9222
 
 
9223
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9224
 
 public :
9225
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9226
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9227
 
};
9228
 
 
9229
 
 
9230
 
#line 9231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9231
 
} // closed Puma
9232
 
class WinIfExists;
9233
 
class WinImportHandler;
9234
 
class WinMacros;
9235
 
class CMatchSyntax;
9236
 
class ExtGnu;
9237
 
class ExtAC;
9238
 
class ExtACBuilderCoupling;
9239
 
class ExtACSyntaxCoupling;
9240
 
class ExtACTree;
9241
 
class ExtACKeywords;
9242
 
class WinAsm;
9243
 
class WinDeclSpecs;
9244
 
class WinMemberExplSpec;
9245
 
class WinTypeKeywords;
9246
 
class PragmaOnceUnitState;
9247
 
class PragmaOnce;
9248
 
class CCExprResolve;
9249
 
class CExprResolve;
9250
 
namespace Puma {
9251
 
 
9252
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9253
 
class CT_DynamicCast : public CT_StaticCast {
9254
 
#line 9255 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9255
 
  friend class ::WinIfExists;
9256
 
  friend class ::WinImportHandler;
9257
 
  friend class ::WinMacros;
9258
 
  friend class ::CMatchSyntax;
9259
 
  friend class ::ExtGnu;
9260
 
  friend class ::ExtAC;
9261
 
  friend class ::ExtACBuilderCoupling;
9262
 
  friend class ::ExtACSyntaxCoupling;
9263
 
  friend class ::ExtACTree;
9264
 
  friend class ::ExtACKeywords;
9265
 
  friend class ::WinAsm;
9266
 
  friend class ::WinDeclSpecs;
9267
 
  friend class ::WinMemberExplSpec;
9268
 
  friend class ::WinTypeKeywords;
9269
 
  friend class ::PragmaOnceUnitState;
9270
 
  friend class ::PragmaOnce;
9271
 
  friend class ::CCExprResolve;
9272
 
  friend class ::CExprResolve;
9273
 
 
9274
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9275
 
 
9276
 
public:
9277
 
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
9278
 
    CT_StaticCast (cst, o, t, c, e) {}
9279
 
  static const char *NodeId ();
9280
 
  const char *NodeName () const { return NodeId (); }
9281
 
   private:
9282
 
  typedef CT_DynamicCast CCExprResolveExpr;
9283
 
 
9284
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9285
 
 public :
9286
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
9287
 
  typedef CT_DynamicCast CExprResolveExpr;
9288
 
 
9289
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9290
 
 public :
9291
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9292
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9293
 
};
9294
 
 
9295
 
 
9296
 
#line 9297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9297
 
} // closed Puma
9298
 
class WinIfExists;
9299
 
class WinImportHandler;
9300
 
class WinMacros;
9301
 
class CMatchSyntax;
9302
 
class ExtGnu;
9303
 
class ExtAC;
9304
 
class ExtACBuilderCoupling;
9305
 
class ExtACSyntaxCoupling;
9306
 
class ExtACTree;
9307
 
class ExtACKeywords;
9308
 
class WinAsm;
9309
 
class WinDeclSpecs;
9310
 
class WinMemberExplSpec;
9311
 
class WinTypeKeywords;
9312
 
class PragmaOnceUnitState;
9313
 
class PragmaOnce;
9314
 
class CCExprResolve;
9315
 
class CExprResolve;
9316
 
namespace Puma {
9317
 
 
9318
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9319
 
class CT_ImplicitCast : public CT_Expression {
9320
 
#line 9321 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9321
 
  friend class ::WinIfExists;
9322
 
  friend class ::WinImportHandler;
9323
 
  friend class ::WinMacros;
9324
 
  friend class ::CMatchSyntax;
9325
 
  friend class ::ExtGnu;
9326
 
  friend class ::ExtAC;
9327
 
  friend class ::ExtACBuilderCoupling;
9328
 
  friend class ::ExtACSyntaxCoupling;
9329
 
  friend class ::ExtACTree;
9330
 
  friend class ::ExtACKeywords;
9331
 
  friend class ::WinAsm;
9332
 
  friend class ::WinDeclSpecs;
9333
 
  friend class ::WinMemberExplSpec;
9334
 
  friend class ::WinTypeKeywords;
9335
 
  friend class ::PragmaOnceUnitState;
9336
 
  friend class ::PragmaOnce;
9337
 
  friend class ::CCExprResolve;
9338
 
  friend class ::CExprResolve;
9339
 
 
9340
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9341
 
 
9342
 
  CTree *_expr; // casted expression
9343
 
 
9344
 
public:
9345
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
9346
 
  static const char *NodeId ();
9347
 
  const char *NodeName () const { return NodeId (); }
9348
 
  int Sons () const { return 1; }
9349
 
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
9350
 
  CTree *Expr () const { return _expr; }
9351
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
9352
 
   { if (old_son == _expr) _expr = new_son; }
9353
 
   private:
9354
 
  typedef CT_ImplicitCast CCExprResolveExpr;
9355
 
 
9356
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9357
 
 public :
9358
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
9359
 
  typedef CT_ImplicitCast CExprResolveExpr;
9360
 
 
9361
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9362
 
 public :
9363
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9364
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9365
 
};
9366
 
 
9367
 
 
9368
 
#line 9369 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9369
 
} // closed Puma
9370
 
class WinIfExists;
9371
 
class WinImportHandler;
9372
 
class WinMacros;
9373
 
class CMatchSyntax;
9374
 
class ExtGnu;
9375
 
class ExtAC;
9376
 
class ExtACBuilderCoupling;
9377
 
class ExtACSyntaxCoupling;
9378
 
class ExtACTree;
9379
 
class ExtACKeywords;
9380
 
class WinAsm;
9381
 
class WinDeclSpecs;
9382
 
class WinMemberExplSpec;
9383
 
class WinTypeKeywords;
9384
 
class PragmaOnceUnitState;
9385
 
class PragmaOnce;
9386
 
class CCExprResolve;
9387
 
class CExprResolve;
9388
 
namespace Puma {
9389
 
 
9390
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9391
 
class CT_TypeidExpr : public CT_Expression {
9392
 
#line 9393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9393
 
  friend class ::WinIfExists;
9394
 
  friend class ::WinImportHandler;
9395
 
  friend class ::WinMacros;
9396
 
  friend class ::CMatchSyntax;
9397
 
  friend class ::ExtGnu;
9398
 
  friend class ::ExtAC;
9399
 
  friend class ::ExtACBuilderCoupling;
9400
 
  friend class ::ExtACSyntaxCoupling;
9401
 
  friend class ::ExtACTree;
9402
 
  friend class ::ExtACKeywords;
9403
 
  friend class ::WinAsm;
9404
 
  friend class ::WinDeclSpecs;
9405
 
  friend class ::WinMemberExplSpec;
9406
 
  friend class ::WinTypeKeywords;
9407
 
  friend class ::PragmaOnceUnitState;
9408
 
  friend class ::PragmaOnce;
9409
 
  friend class ::CCExprResolve;
9410
 
  friend class ::CExprResolve;
9411
 
 
9412
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9413
 
 
9414
 
  CTree *sons[4]; // typeid, open, type_id/expr, close
9415
 
 
9416
 
public:
9417
 
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
9418
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
9419
 
  }
9420
 
  static const char *NodeId ();
9421
 
  const char *NodeName () const { return NodeId (); }
9422
 
  int Sons () const { return 4; }
9423
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
9424
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9425
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
9426
 
  }
9427
 
  CTree *Arg () const { return sons[2]; }
9428
 
   private:
9429
 
  typedef CT_TypeidExpr CCExprResolveExpr;
9430
 
 
9431
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9432
 
 public :
9433
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
9434
 
  typedef CT_TypeidExpr CExprResolveExpr;
9435
 
 
9436
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9437
 
 public :
9438
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9439
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9440
 
};
9441
 
 
9442
 
 
9443
 
#line 9444 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9444
 
} // closed Puma
9445
 
class WinIfExists;
9446
 
class WinImportHandler;
9447
 
class WinMacros;
9448
 
class CMatchSyntax;
9449
 
class ExtGnu;
9450
 
class ExtAC;
9451
 
class ExtACBuilderCoupling;
9452
 
class ExtACSyntaxCoupling;
9453
 
class ExtACTree;
9454
 
class ExtACKeywords;
9455
 
class WinAsm;
9456
 
class WinDeclSpecs;
9457
 
class WinMemberExplSpec;
9458
 
class WinTypeKeywords;
9459
 
class PragmaOnceUnitState;
9460
 
class PragmaOnce;
9461
 
class CCExprResolve;
9462
 
class CExprResolve;
9463
 
namespace Puma {
9464
 
 
9465
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9466
 
class CT_SizeofExpr : public CT_Expression {
9467
 
#line 9468 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9468
 
  friend class ::WinIfExists;
9469
 
  friend class ::WinImportHandler;
9470
 
  friend class ::WinMacros;
9471
 
  friend class ::CMatchSyntax;
9472
 
  friend class ::ExtGnu;
9473
 
  friend class ::ExtAC;
9474
 
  friend class ::ExtACBuilderCoupling;
9475
 
  friend class ::ExtACSyntaxCoupling;
9476
 
  friend class ::ExtACTree;
9477
 
  friend class ::ExtACKeywords;
9478
 
  friend class ::WinAsm;
9479
 
  friend class ::WinDeclSpecs;
9480
 
  friend class ::WinMemberExplSpec;
9481
 
  friend class ::WinTypeKeywords;
9482
 
  friend class ::PragmaOnceUnitState;
9483
 
  friend class ::PragmaOnce;
9484
 
  friend class ::CCExprResolve;
9485
 
  friend class ::CExprResolve;
9486
 
 
9487
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9488
 
 
9489
 
  CTree *sons[5]; // key, open, type, close, expr
9490
 
 
9491
 
public:
9492
 
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
9493
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
9494
 
  }
9495
 
  CT_SizeofExpr (CTree *k, CTree *e) {
9496
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
9497
 
  }
9498
 
  static const char *NodeId ();
9499
 
  const char *NodeName () const { return NodeId (); }
9500
 
  int Sons () const { return CTree::Sons (sons, 5); }
9501
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
9502
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9503
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
9504
 
  }
9505
 
  CTree *Expr () const { return sons[4]; }
9506
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
9507
 
   private:
9508
 
  typedef CT_SizeofExpr CCExprResolveExpr;
9509
 
 
9510
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9511
 
 public :
9512
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
9513
 
  typedef CT_SizeofExpr CExprResolveExpr;
9514
 
 
9515
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9516
 
 public :
9517
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9518
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9519
 
};
9520
 
 
9521
 
 
9522
 
#line 9523 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9523
 
} // closed Puma
9524
 
class WinIfExists;
9525
 
class WinImportHandler;
9526
 
class WinMacros;
9527
 
class CMatchSyntax;
9528
 
class ExtGnu;
9529
 
class ExtAC;
9530
 
class ExtACBuilderCoupling;
9531
 
class ExtACSyntaxCoupling;
9532
 
class ExtACTree;
9533
 
class ExtACKeywords;
9534
 
class WinAsm;
9535
 
class WinDeclSpecs;
9536
 
class WinMemberExplSpec;
9537
 
class WinTypeKeywords;
9538
 
class PragmaOnceUnitState;
9539
 
class PragmaOnce;
9540
 
class CCExprResolve;
9541
 
class CExprResolve;
9542
 
namespace Puma {
9543
 
 
9544
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9545
 
class CT_IndexDesignator : public CT_Expression {
9546
 
#line 9547 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9547
 
  friend class ::WinIfExists;
9548
 
  friend class ::WinImportHandler;
9549
 
  friend class ::WinMacros;
9550
 
  friend class ::CMatchSyntax;
9551
 
  friend class ::ExtGnu;
9552
 
  friend class ::ExtAC;
9553
 
  friend class ::ExtACBuilderCoupling;
9554
 
  friend class ::ExtACSyntaxCoupling;
9555
 
  friend class ::ExtACTree;
9556
 
  friend class ::ExtACKeywords;
9557
 
  friend class ::WinAsm;
9558
 
  friend class ::WinDeclSpecs;
9559
 
  friend class ::WinMemberExplSpec;
9560
 
  friend class ::WinTypeKeywords;
9561
 
  friend class ::PragmaOnceUnitState;
9562
 
  friend class ::PragmaOnce;
9563
 
  friend class ::CCExprResolve;
9564
 
  friend class ::CExprResolve;
9565
 
 
9566
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9567
 
 
9568
 
  CTree *sons[3]; // open, index, close
9569
 
 
9570
 
public:
9571
 
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
9572
 
    sons[0] = o; sons[1] = i; sons[2] = c;
9573
 
  }
9574
 
  static const char *NodeId ();
9575
 
  const char *NodeName () const { return NodeId (); }
9576
 
  int Sons () const { return 3; }
9577
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
9578
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9579
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
9580
 
  }
9581
 
   private:
9582
 
  typedef CT_IndexDesignator CCExprResolveExpr;
9583
 
 
9584
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9585
 
 public :
9586
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
9587
 
  typedef CT_IndexDesignator CExprResolveExpr;
9588
 
 
9589
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9590
 
 public :
9591
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9592
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9593
 
};
9594
 
 
9595
 
 
9596
 
#line 9597 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9597
 
} // closed Puma
9598
 
class WinIfExists;
9599
 
class WinImportHandler;
9600
 
class WinMacros;
9601
 
class CMatchSyntax;
9602
 
class ExtGnu;
9603
 
class ExtAC;
9604
 
class ExtACBuilderCoupling;
9605
 
class ExtACSyntaxCoupling;
9606
 
class ExtACTree;
9607
 
class ExtACKeywords;
9608
 
class WinAsm;
9609
 
class WinDeclSpecs;
9610
 
class WinMemberExplSpec;
9611
 
class WinTypeKeywords;
9612
 
class PragmaOnceUnitState;
9613
 
class PragmaOnce;
9614
 
class CCExprResolve;
9615
 
class CExprResolve;
9616
 
namespace Puma {
9617
 
 
9618
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9619
 
class CT_MembDesignator : public CT_Expression {
9620
 
#line 9621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9621
 
  friend class ::WinIfExists;
9622
 
  friend class ::WinImportHandler;
9623
 
  friend class ::WinMacros;
9624
 
  friend class ::CMatchSyntax;
9625
 
  friend class ::ExtGnu;
9626
 
  friend class ::ExtAC;
9627
 
  friend class ::ExtACBuilderCoupling;
9628
 
  friend class ::ExtACSyntaxCoupling;
9629
 
  friend class ::ExtACTree;
9630
 
  friend class ::ExtACKeywords;
9631
 
  friend class ::WinAsm;
9632
 
  friend class ::WinDeclSpecs;
9633
 
  friend class ::WinMemberExplSpec;
9634
 
  friend class ::WinTypeKeywords;
9635
 
  friend class ::PragmaOnceUnitState;
9636
 
  friend class ::PragmaOnce;
9637
 
  friend class ::CCExprResolve;
9638
 
  friend class ::CExprResolve;
9639
 
 
9640
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9641
 
 
9642
 
  CTree *sons[2]; // dot, member
9643
 
 
9644
 
public:
9645
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
9646
 
  static const char *NodeId ();
9647
 
  const char *NodeName () const { return NodeId (); }
9648
 
  int Sons () const { return 2; }
9649
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
9650
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9651
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
9652
 
  }
9653
 
   private:
9654
 
  typedef CT_MembDesignator CCExprResolveExpr;
9655
 
 
9656
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9657
 
 public :
9658
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
9659
 
  typedef CT_MembDesignator CExprResolveExpr;
9660
 
 
9661
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9662
 
 public :
9663
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9664
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9665
 
};
9666
 
 
9667
 
 
9668
 
#line 9669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9669
 
} // closed Puma
9670
 
class WinIfExists;
9671
 
class WinImportHandler;
9672
 
class WinMacros;
9673
 
class CMatchSyntax;
9674
 
class ExtGnu;
9675
 
class ExtAC;
9676
 
class ExtACBuilderCoupling;
9677
 
class ExtACSyntaxCoupling;
9678
 
class ExtACTree;
9679
 
class ExtACKeywords;
9680
 
class WinAsm;
9681
 
class WinDeclSpecs;
9682
 
class WinMemberExplSpec;
9683
 
class WinTypeKeywords;
9684
 
class PragmaOnceUnitState;
9685
 
class PragmaOnce;
9686
 
class CCExprResolve;
9687
 
class CExprResolve;
9688
 
namespace Puma {
9689
 
 
9690
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9691
 
class CT_DesignatorSeq : public CT_List, public CSemValue {
9692
 
#line 9693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9693
 
  friend class ::WinIfExists;
9694
 
  friend class ::WinImportHandler;
9695
 
  friend class ::WinMacros;
9696
 
  friend class ::CMatchSyntax;
9697
 
  friend class ::ExtGnu;
9698
 
  friend class ::ExtAC;
9699
 
  friend class ::ExtACBuilderCoupling;
9700
 
  friend class ::ExtACSyntaxCoupling;
9701
 
  friend class ::ExtACTree;
9702
 
  friend class ::ExtACKeywords;
9703
 
  friend class ::WinAsm;
9704
 
  friend class ::WinDeclSpecs;
9705
 
  friend class ::WinMemberExplSpec;
9706
 
  friend class ::WinTypeKeywords;
9707
 
  friend class ::PragmaOnceUnitState;
9708
 
  friend class ::PragmaOnce;
9709
 
  friend class ::CCExprResolve;
9710
 
  friend class ::CExprResolve;
9711
 
 
9712
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9713
 
 
9714
 
public:
9715
 
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
9716
 
  static const char *NodeId ();
9717
 
  const char *NodeName () const { return NodeId (); }
9718
 
 
9719
 
  CTypeInfo *Type () const { return type; }
9720
 
  CExprValue *Value () const { return value; }
9721
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
9722
 
};
9723
 
 
9724
 
/*****************************************************************************/
9725
 
/*                                                                           */
9726
 
/*                         Declaration specifiers                            */
9727
 
/*                                                                           */
9728
 
/*****************************************************************************/
9729
 
 
9730
 
 
9731
 
#line 9732 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9732
 
} // closed Puma
9733
 
class WinIfExists;
9734
 
class WinImportHandler;
9735
 
class WinMacros;
9736
 
class CMatchSyntax;
9737
 
class ExtGnu;
9738
 
class ExtAC;
9739
 
class ExtACBuilderCoupling;
9740
 
class ExtACSyntaxCoupling;
9741
 
class ExtACTree;
9742
 
class ExtACKeywords;
9743
 
class WinAsm;
9744
 
class WinDeclSpecs;
9745
 
class WinMemberExplSpec;
9746
 
class WinTypeKeywords;
9747
 
class PragmaOnceUnitState;
9748
 
class PragmaOnce;
9749
 
class CCExprResolve;
9750
 
class CExprResolve;
9751
 
namespace Puma {
9752
 
 
9753
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9754
 
class CT_DeclSpec : public CTree {
9755
 
#line 9756 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9756
 
  friend class ::WinIfExists;
9757
 
  friend class ::WinImportHandler;
9758
 
  friend class ::WinMacros;
9759
 
  friend class ::CMatchSyntax;
9760
 
  friend class ::ExtGnu;
9761
 
  friend class ::ExtAC;
9762
 
  friend class ::ExtACBuilderCoupling;
9763
 
  friend class ::ExtACSyntaxCoupling;
9764
 
  friend class ::ExtACTree;
9765
 
  friend class ::ExtACKeywords;
9766
 
  friend class ::WinAsm;
9767
 
  friend class ::WinDeclSpecs;
9768
 
  friend class ::WinMemberExplSpec;
9769
 
  friend class ::WinTypeKeywords;
9770
 
  friend class ::PragmaOnceUnitState;
9771
 
  friend class ::PragmaOnce;
9772
 
  friend class ::CCExprResolve;
9773
 
  friend class ::CExprResolve;
9774
 
 
9775
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9776
 
 
9777
 
protected:
9778
 
  CT_DeclSpec () {}
9779
 
};
9780
 
 
9781
 
 
9782
 
#line 9783 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9783
 
} // closed Puma
9784
 
class WinIfExists;
9785
 
class WinImportHandler;
9786
 
class WinMacros;
9787
 
class CMatchSyntax;
9788
 
class ExtGnu;
9789
 
class ExtAC;
9790
 
class ExtACBuilderCoupling;
9791
 
class ExtACSyntaxCoupling;
9792
 
class ExtACTree;
9793
 
class ExtACKeywords;
9794
 
class WinAsm;
9795
 
class WinDeclSpecs;
9796
 
class WinMemberExplSpec;
9797
 
class WinTypeKeywords;
9798
 
class PragmaOnceUnitState;
9799
 
class PragmaOnce;
9800
 
class CCExprResolve;
9801
 
class CExprResolve;
9802
 
namespace Puma {
9803
 
 
9804
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9805
 
class CT_PrimDeclSpec : public CT_DeclSpec {
9806
 
#line 9807 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9807
 
  friend class ::WinIfExists;
9808
 
  friend class ::WinImportHandler;
9809
 
  friend class ::WinMacros;
9810
 
  friend class ::CMatchSyntax;
9811
 
  friend class ::ExtGnu;
9812
 
  friend class ::ExtAC;
9813
 
  friend class ::ExtACBuilderCoupling;
9814
 
  friend class ::ExtACSyntaxCoupling;
9815
 
  friend class ::ExtACTree;
9816
 
  friend class ::ExtACKeywords;
9817
 
  friend class ::WinAsm;
9818
 
  friend class ::WinDeclSpecs;
9819
 
  friend class ::WinMemberExplSpec;
9820
 
  friend class ::WinTypeKeywords;
9821
 
  friend class ::PragmaOnceUnitState;
9822
 
  friend class ::PragmaOnce;
9823
 
  friend class ::CCExprResolve;
9824
 
  friend class ::CExprResolve;
9825
 
 
9826
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9827
 
 
9828
 
public:
9829
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
9830
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
9831
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
9832
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
9833
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
9834
 
              // AspectC++ specific type specifier
9835
 
              PDS_UNKNOWN_T,
9836
 
              // Win specific declaration specifiers
9837
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
9838
 
              PDS_UNKNOWN, PDS_NUM };
9839
 
 
9840
 
private:
9841
 
  Type _type;
9842
 
  CT_Token *_token;
9843
 
 
9844
 
  void determine_type ();
9845
 
 
9846
 
public:
9847
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
9848
 
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
9849
 
  static const char *NodeId ();
9850
 
  const char *NodeName () const { return NodeId (); }
9851
 
  int Sons () const { return _token ? 1 : 0; }
9852
 
  CTree *Son (int n) const 
9853
 
   { return (n == 0) ? _token : (CTree*)0; }
9854
 
  const char *SpecText () const 
9855
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
9856
 
  Type SpecType () const { return _type; }
9857
 
  static const int NumTypes = PDS_NUM;
9858
 
};
9859
 
 
9860
 
 
9861
 
#line 9862 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9862
 
} // closed Puma
9863
 
class WinIfExists;
9864
 
class WinImportHandler;
9865
 
class WinMacros;
9866
 
class CMatchSyntax;
9867
 
class ExtGnu;
9868
 
class ExtAC;
9869
 
class ExtACBuilderCoupling;
9870
 
class ExtACSyntaxCoupling;
9871
 
class ExtACTree;
9872
 
class ExtACKeywords;
9873
 
class WinAsm;
9874
 
class WinDeclSpecs;
9875
 
class WinMemberExplSpec;
9876
 
class WinTypeKeywords;
9877
 
class PragmaOnceUnitState;
9878
 
class PragmaOnce;
9879
 
class CCExprResolve;
9880
 
class CExprResolve;
9881
 
namespace Puma {
9882
 
 
9883
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9884
 
class CT_NamedType : public CT_DeclSpec, public CSemObject {
9885
 
#line 9886 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9886
 
  friend class ::WinIfExists;
9887
 
  friend class ::WinImportHandler;
9888
 
  friend class ::WinMacros;
9889
 
  friend class ::CMatchSyntax;
9890
 
  friend class ::ExtGnu;
9891
 
  friend class ::ExtAC;
9892
 
  friend class ::ExtACBuilderCoupling;
9893
 
  friend class ::ExtACSyntaxCoupling;
9894
 
  friend class ::ExtACTree;
9895
 
  friend class ::ExtACKeywords;
9896
 
  friend class ::WinAsm;
9897
 
  friend class ::WinDeclSpecs;
9898
 
  friend class ::WinMemberExplSpec;
9899
 
  friend class ::WinTypeKeywords;
9900
 
  friend class ::PragmaOnceUnitState;
9901
 
  friend class ::PragmaOnce;
9902
 
  friend class ::CCExprResolve;
9903
 
  friend class ::CExprResolve;
9904
 
 
9905
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9906
 
 
9907
 
  CTree *sons[2]; // declspecs, declarator
9908
 
 
9909
 
public:
9910
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
9911
 
  static const char *NodeId ();
9912
 
  const char *NodeName () const { return NodeId (); }
9913
 
  int Sons () const { return CTree::Sons (sons, 2); }
9914
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
9915
 
  CTree *Declarator () const { return sons[1]; }
9916
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9917
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
9918
 
  }
9919
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
9920
 
};
9921
 
      
9922
 
 
9923
 
#line 9924 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9924
 
} // closed Puma
9925
 
class WinIfExists;
9926
 
class WinImportHandler;
9927
 
class WinMacros;
9928
 
class CMatchSyntax;
9929
 
class ExtGnu;
9930
 
class ExtAC;
9931
 
class ExtACBuilderCoupling;
9932
 
class ExtACSyntaxCoupling;
9933
 
class ExtACTree;
9934
 
class ExtACKeywords;
9935
 
class WinAsm;
9936
 
class WinDeclSpecs;
9937
 
class WinMemberExplSpec;
9938
 
class WinTypeKeywords;
9939
 
class PragmaOnceUnitState;
9940
 
class PragmaOnce;
9941
 
class CCExprResolve;
9942
 
class CExprResolve;
9943
 
namespace Puma {
9944
 
 
9945
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9946
 
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
9947
 
#line 9948 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9948
 
  friend class ::WinIfExists;
9949
 
  friend class ::WinImportHandler;
9950
 
  friend class ::WinMacros;
9951
 
  friend class ::CMatchSyntax;
9952
 
  friend class ::ExtGnu;
9953
 
  friend class ::ExtAC;
9954
 
  friend class ::ExtACBuilderCoupling;
9955
 
  friend class ::ExtACSyntaxCoupling;
9956
 
  friend class ::ExtACTree;
9957
 
  friend class ::ExtACKeywords;
9958
 
  friend class ::WinAsm;
9959
 
  friend class ::WinDeclSpecs;
9960
 
  friend class ::WinMemberExplSpec;
9961
 
  friend class ::WinTypeKeywords;
9962
 
  friend class ::PragmaOnceUnitState;
9963
 
  friend class ::PragmaOnce;
9964
 
  friend class ::CCExprResolve;
9965
 
  friend class ::CExprResolve;
9966
 
 
9967
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9968
 
 
9969
 
  CTree *sons[2]; // key, name
9970
 
  
9971
 
public:
9972
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
9973
 
  static const char *NodeId ();
9974
 
  const char *NodeName () const { return NodeId (); }
9975
 
  int Sons () const { return 2; }
9976
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
9977
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
9978
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
9979
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9980
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
9981
 
  }
9982
 
};
9983
 
 
9984
 
 
9985
 
#line 9986 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
9986
 
} // closed Puma
9987
 
class WinIfExists;
9988
 
class WinImportHandler;
9989
 
class WinMacros;
9990
 
class CMatchSyntax;
9991
 
class ExtGnu;
9992
 
class ExtAC;
9993
 
class ExtACBuilderCoupling;
9994
 
class ExtACSyntaxCoupling;
9995
 
class ExtACTree;
9996
 
class ExtACKeywords;
9997
 
class WinAsm;
9998
 
class WinDeclSpecs;
9999
 
class WinMemberExplSpec;
10000
 
class WinTypeKeywords;
10001
 
class PragmaOnceUnitState;
10002
 
class PragmaOnce;
10003
 
class CCExprResolve;
10004
 
class CExprResolve;
10005
 
namespace Puma {
10006
 
 
10007
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10008
 
class CT_UnionSpec : public CT_ClassSpec {
10009
 
#line 10010 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10010
 
  friend class ::WinIfExists;
10011
 
  friend class ::WinImportHandler;
10012
 
  friend class ::WinMacros;
10013
 
  friend class ::CMatchSyntax;
10014
 
  friend class ::ExtGnu;
10015
 
  friend class ::ExtAC;
10016
 
  friend class ::ExtACBuilderCoupling;
10017
 
  friend class ::ExtACSyntaxCoupling;
10018
 
  friend class ::ExtACTree;
10019
 
  friend class ::ExtACKeywords;
10020
 
  friend class ::WinAsm;
10021
 
  friend class ::WinDeclSpecs;
10022
 
  friend class ::WinMemberExplSpec;
10023
 
  friend class ::WinTypeKeywords;
10024
 
  friend class ::PragmaOnceUnitState;
10025
 
  friend class ::PragmaOnce;
10026
 
  friend class ::CCExprResolve;
10027
 
  friend class ::CExprResolve;
10028
 
 
10029
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10030
 
 
10031
 
public:
10032
 
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
10033
 
  static const char *NodeId ();
10034
 
  const char *NodeName () const { return NodeId (); }
10035
 
};
10036
 
 
10037
 
 
10038
 
#line 10039 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10039
 
} // closed Puma
10040
 
class WinIfExists;
10041
 
class WinImportHandler;
10042
 
class WinMacros;
10043
 
class CMatchSyntax;
10044
 
class ExtGnu;
10045
 
class ExtAC;
10046
 
class ExtACBuilderCoupling;
10047
 
class ExtACSyntaxCoupling;
10048
 
class ExtACTree;
10049
 
class ExtACKeywords;
10050
 
class WinAsm;
10051
 
class WinDeclSpecs;
10052
 
class WinMemberExplSpec;
10053
 
class WinTypeKeywords;
10054
 
class PragmaOnceUnitState;
10055
 
class PragmaOnce;
10056
 
class CCExprResolve;
10057
 
class CExprResolve;
10058
 
namespace Puma {
10059
 
 
10060
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10061
 
class CT_EnumSpec : public CT_ClassSpec {
10062
 
#line 10063 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10063
 
  friend class ::WinIfExists;
10064
 
  friend class ::WinImportHandler;
10065
 
  friend class ::WinMacros;
10066
 
  friend class ::CMatchSyntax;
10067
 
  friend class ::ExtGnu;
10068
 
  friend class ::ExtAC;
10069
 
  friend class ::ExtACBuilderCoupling;
10070
 
  friend class ::ExtACSyntaxCoupling;
10071
 
  friend class ::ExtACTree;
10072
 
  friend class ::ExtACKeywords;
10073
 
  friend class ::WinAsm;
10074
 
  friend class ::WinDeclSpecs;
10075
 
  friend class ::WinMemberExplSpec;
10076
 
  friend class ::WinTypeKeywords;
10077
 
  friend class ::PragmaOnceUnitState;
10078
 
  friend class ::PragmaOnce;
10079
 
  friend class ::CCExprResolve;
10080
 
  friend class ::CExprResolve;
10081
 
 
10082
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10083
 
 
10084
 
public:
10085
 
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
10086
 
  static const char *NodeId ();
10087
 
  const char *NodeName () const { return NodeId (); }
10088
 
};
10089
 
 
10090
 
 
10091
 
#line 10092 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10092
 
} // closed Puma
10093
 
class WinIfExists;
10094
 
class WinImportHandler;
10095
 
class WinMacros;
10096
 
class CMatchSyntax;
10097
 
class ExtGnu;
10098
 
class ExtAC;
10099
 
class ExtACBuilderCoupling;
10100
 
class ExtACSyntaxCoupling;
10101
 
class ExtACTree;
10102
 
class ExtACKeywords;
10103
 
class WinAsm;
10104
 
class WinDeclSpecs;
10105
 
class WinMemberExplSpec;
10106
 
class WinTypeKeywords;
10107
 
class PragmaOnceUnitState;
10108
 
class PragmaOnce;
10109
 
class CCExprResolve;
10110
 
class CExprResolve;
10111
 
namespace Puma {
10112
 
 
10113
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10114
 
class CT_ExceptionSpec : public CT_DeclSpec {
10115
 
#line 10116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10116
 
  friend class ::WinIfExists;
10117
 
  friend class ::WinImportHandler;
10118
 
  friend class ::WinMacros;
10119
 
  friend class ::CMatchSyntax;
10120
 
  friend class ::ExtGnu;
10121
 
  friend class ::ExtAC;
10122
 
  friend class ::ExtACBuilderCoupling;
10123
 
  friend class ::ExtACSyntaxCoupling;
10124
 
  friend class ::ExtACTree;
10125
 
  friend class ::ExtACKeywords;
10126
 
  friend class ::WinAsm;
10127
 
  friend class ::WinDeclSpecs;
10128
 
  friend class ::WinMemberExplSpec;
10129
 
  friend class ::WinTypeKeywords;
10130
 
  friend class ::PragmaOnceUnitState;
10131
 
  friend class ::PragmaOnce;
10132
 
  friend class ::CCExprResolve;
10133
 
  friend class ::CExprResolve;
10134
 
 
10135
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10136
 
 
10137
 
  CTree *sons[2]; // throw, type_id_list
10138
 
  
10139
 
public:
10140
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
10141
 
  static const char *NodeId ();
10142
 
  const char *NodeName () const { return NodeId (); }
10143
 
  int Sons () const { return 2; }
10144
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
10145
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
10146
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10147
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
10148
 
  }
10149
 
};
10150
 
 
10151
 
/*****************************************************************************/
10152
 
/*                                                                           */
10153
 
/*                              Declarations                                 */
10154
 
/*                                                                           */
10155
 
/*****************************************************************************/
10156
 
 
10157
 
 
10158
 
#line 10159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10159
 
} // closed Puma
10160
 
class WinIfExists;
10161
 
class WinImportHandler;
10162
 
class WinMacros;
10163
 
class CMatchSyntax;
10164
 
class ExtGnu;
10165
 
class ExtAC;
10166
 
class ExtACBuilderCoupling;
10167
 
class ExtACSyntaxCoupling;
10168
 
class ExtACTree;
10169
 
class ExtACKeywords;
10170
 
class WinAsm;
10171
 
class WinDeclSpecs;
10172
 
class WinMemberExplSpec;
10173
 
class WinTypeKeywords;
10174
 
class PragmaOnceUnitState;
10175
 
class PragmaOnce;
10176
 
class CCExprResolve;
10177
 
class CExprResolve;
10178
 
namespace Puma {
10179
 
 
10180
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10181
 
class CT_Decl : public CTree {
10182
 
#line 10183 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10183
 
  friend class ::WinIfExists;
10184
 
  friend class ::WinImportHandler;
10185
 
  friend class ::WinMacros;
10186
 
  friend class ::CMatchSyntax;
10187
 
  friend class ::ExtGnu;
10188
 
  friend class ::ExtAC;
10189
 
  friend class ::ExtACBuilderCoupling;
10190
 
  friend class ::ExtACSyntaxCoupling;
10191
 
  friend class ::ExtACTree;
10192
 
  friend class ::ExtACKeywords;
10193
 
  friend class ::WinAsm;
10194
 
  friend class ::WinDeclSpecs;
10195
 
  friend class ::WinMemberExplSpec;
10196
 
  friend class ::WinTypeKeywords;
10197
 
  friend class ::PragmaOnceUnitState;
10198
 
  friend class ::PragmaOnce;
10199
 
  friend class ::CCExprResolve;
10200
 
  friend class ::CExprResolve;
10201
 
 
10202
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10203
 
 
10204
 
  CT_LinkageSpec *_linkage;
10205
 
protected:
10206
 
  CT_Decl () : _linkage (0) {}
10207
 
public:
10208
 
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
10209
 
  CT_LinkageSpec *Linkage () const { return _linkage; }
10210
 
};
10211
 
 
10212
 
 
10213
 
#line 10214 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10214
 
} // closed Puma
10215
 
class WinIfExists;
10216
 
class WinImportHandler;
10217
 
class WinMacros;
10218
 
class CMatchSyntax;
10219
 
class ExtGnu;
10220
 
class ExtAC;
10221
 
class ExtACBuilderCoupling;
10222
 
class ExtACSyntaxCoupling;
10223
 
class ExtACTree;
10224
 
class ExtACKeywords;
10225
 
class WinAsm;
10226
 
class WinDeclSpecs;
10227
 
class WinMemberExplSpec;
10228
 
class WinTypeKeywords;
10229
 
class PragmaOnceUnitState;
10230
 
class PragmaOnce;
10231
 
class CCExprResolve;
10232
 
class CExprResolve;
10233
 
namespace Puma {
10234
 
 
10235
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10236
 
class CT_Program : public CT_DeclList, public CSemScope {
10237
 
#line 10238 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10238
 
  friend class ::WinIfExists;
10239
 
  friend class ::WinImportHandler;
10240
 
  friend class ::WinMacros;
10241
 
  friend class ::CMatchSyntax;
10242
 
  friend class ::ExtGnu;
10243
 
  friend class ::ExtAC;
10244
 
  friend class ::ExtACBuilderCoupling;
10245
 
  friend class ::ExtACSyntaxCoupling;
10246
 
  friend class ::ExtACTree;
10247
 
  friend class ::ExtACKeywords;
10248
 
  friend class ::WinAsm;
10249
 
  friend class ::WinDeclSpecs;
10250
 
  friend class ::WinMemberExplSpec;
10251
 
  friend class ::WinTypeKeywords;
10252
 
  friend class ::PragmaOnceUnitState;
10253
 
  friend class ::PragmaOnce;
10254
 
  friend class ::CCExprResolve;
10255
 
  friend class ::CExprResolve;
10256
 
 
10257
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10258
 
 
10259
 
public:
10260
 
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
10261
 
  static const char *NodeId ();
10262
 
  const char *NodeName () const { return NodeId (); }
10263
 
};
10264
 
   
10265
 
 
10266
 
#line 10267 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10267
 
} // closed Puma
10268
 
class WinIfExists;
10269
 
class WinImportHandler;
10270
 
class WinMacros;
10271
 
class CMatchSyntax;
10272
 
class ExtGnu;
10273
 
class ExtAC;
10274
 
class ExtACBuilderCoupling;
10275
 
class ExtACSyntaxCoupling;
10276
 
class ExtACTree;
10277
 
class ExtACKeywords;
10278
 
class WinAsm;
10279
 
class WinDeclSpecs;
10280
 
class WinMemberExplSpec;
10281
 
class WinTypeKeywords;
10282
 
class PragmaOnceUnitState;
10283
 
class PragmaOnce;
10284
 
class CCExprResolve;
10285
 
class CExprResolve;
10286
 
namespace Puma {
10287
 
 
10288
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10289
 
class CT_ObjDecl : public CT_Decl {
10290
 
#line 10291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10291
 
  friend class ::WinIfExists;
10292
 
  friend class ::WinImportHandler;
10293
 
  friend class ::WinMacros;
10294
 
  friend class ::CMatchSyntax;
10295
 
  friend class ::ExtGnu;
10296
 
  friend class ::ExtAC;
10297
 
  friend class ::ExtACBuilderCoupling;
10298
 
  friend class ::ExtACSyntaxCoupling;
10299
 
  friend class ::ExtACTree;
10300
 
  friend class ::ExtACKeywords;
10301
 
  friend class ::WinAsm;
10302
 
  friend class ::WinDeclSpecs;
10303
 
  friend class ::WinMemberExplSpec;
10304
 
  friend class ::WinTypeKeywords;
10305
 
  friend class ::PragmaOnceUnitState;
10306
 
  friend class ::PragmaOnce;
10307
 
  friend class ::CCExprResolve;
10308
 
  friend class ::CExprResolve;
10309
 
 
10310
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10311
 
 
10312
 
  CTree *sons[3]; // declspecs, declarators, colon
10313
 
 
10314
 
public:
10315
 
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
10316
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
10317
 
  }
10318
 
  static const char *NodeId ();
10319
 
  const char *NodeName () const { return NodeId (); }
10320
 
  int Sons () const { return 3; }
10321
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
10322
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
10323
 
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
10324
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10325
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
10326
 
  }
10327
 
};
10328
 
 
10329
 
 
10330
 
#line 10331 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10331
 
} // closed Puma
10332
 
class WinIfExists;
10333
 
class WinImportHandler;
10334
 
class WinMacros;
10335
 
class CMatchSyntax;
10336
 
class ExtGnu;
10337
 
class ExtAC;
10338
 
class ExtACBuilderCoupling;
10339
 
class ExtACSyntaxCoupling;
10340
 
class ExtACTree;
10341
 
class ExtACKeywords;
10342
 
class WinAsm;
10343
 
class WinDeclSpecs;
10344
 
class WinMemberExplSpec;
10345
 
class WinTypeKeywords;
10346
 
class PragmaOnceUnitState;
10347
 
class PragmaOnce;
10348
 
class CCExprResolve;
10349
 
class CExprResolve;
10350
 
namespace Puma {
10351
 
 
10352
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10353
 
class CT_TemplateDecl : public CT_Decl, public CSemScope {
10354
 
#line 10355 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10355
 
  friend class ::WinIfExists;
10356
 
  friend class ::WinImportHandler;
10357
 
  friend class ::WinMacros;
10358
 
  friend class ::CMatchSyntax;
10359
 
  friend class ::ExtGnu;
10360
 
  friend class ::ExtAC;
10361
 
  friend class ::ExtACBuilderCoupling;
10362
 
  friend class ::ExtACSyntaxCoupling;
10363
 
  friend class ::ExtACTree;
10364
 
  friend class ::ExtACKeywords;
10365
 
  friend class ::WinAsm;
10366
 
  friend class ::WinDeclSpecs;
10367
 
  friend class ::WinMemberExplSpec;
10368
 
  friend class ::WinTypeKeywords;
10369
 
  friend class ::PragmaOnceUnitState;
10370
 
  friend class ::PragmaOnce;
10371
 
  friend class ::CCExprResolve;
10372
 
  friend class ::CExprResolve;
10373
 
 
10374
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10375
 
 
10376
 
  CTree *sons[3]; // export, param_list, decl
10377
 
 
10378
 
public:
10379
 
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
10380
 
    sons[0] = e; sons[1] = p; sons[2] = d;
10381
 
  }
10382
 
  static const char *NodeId ();
10383
 
  const char *NodeName () const { return NodeId (); }
10384
 
  int Sons () const { return CTree::Sons (sons, 3); }
10385
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
10386
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10387
 
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
10388
 
  }
10389
 
  CTree *Export () const { return sons[0]; }
10390
 
  CT_TemplateParamList *Parameters () const { 
10391
 
    return (CT_TemplateParamList*)sons[1]; 
10392
 
  }
10393
 
  CTree *Declaration () const { return sons[2]; }
10394
 
};
10395
 
 
10396
 
 
10397
 
#line 10398 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10398
 
} // closed Puma
10399
 
class WinIfExists;
10400
 
class WinImportHandler;
10401
 
class WinMacros;
10402
 
class CMatchSyntax;
10403
 
class ExtGnu;
10404
 
class ExtAC;
10405
 
class ExtACBuilderCoupling;
10406
 
class ExtACSyntaxCoupling;
10407
 
class ExtACTree;
10408
 
class ExtACKeywords;
10409
 
class WinAsm;
10410
 
class WinDeclSpecs;
10411
 
class WinMemberExplSpec;
10412
 
class WinTypeKeywords;
10413
 
class PragmaOnceUnitState;
10414
 
class PragmaOnce;
10415
 
class CCExprResolve;
10416
 
class CExprResolve;
10417
 
namespace Puma {
10418
 
 
10419
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10420
 
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
10421
 
#line 10422 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10422
 
  friend class ::WinIfExists;
10423
 
  friend class ::WinImportHandler;
10424
 
  friend class ::WinMacros;
10425
 
  friend class ::CMatchSyntax;
10426
 
  friend class ::ExtGnu;
10427
 
  friend class ::ExtAC;
10428
 
  friend class ::ExtACBuilderCoupling;
10429
 
  friend class ::ExtACSyntaxCoupling;
10430
 
  friend class ::ExtACTree;
10431
 
  friend class ::ExtACKeywords;
10432
 
  friend class ::WinAsm;
10433
 
  friend class ::WinDeclSpecs;
10434
 
  friend class ::WinMemberExplSpec;
10435
 
  friend class ::WinTypeKeywords;
10436
 
  friend class ::PragmaOnceUnitState;
10437
 
  friend class ::PragmaOnce;
10438
 
  friend class ::CCExprResolve;
10439
 
  friend class ::CExprResolve;
10440
 
 
10441
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10442
 
 
10443
 
protected:
10444
 
  CT_TemplateParamDecl () {}
10445
 
  
10446
 
public:
10447
 
  virtual CT_ExprList *DefaultArgument () const = 0;
10448
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
10449
 
};
10450
 
 
10451
 
 
10452
 
#line 10453 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10453
 
} // closed Puma
10454
 
class WinIfExists;
10455
 
class WinImportHandler;
10456
 
class WinMacros;
10457
 
class CMatchSyntax;
10458
 
class ExtGnu;
10459
 
class ExtAC;
10460
 
class ExtACBuilderCoupling;
10461
 
class ExtACSyntaxCoupling;
10462
 
class ExtACTree;
10463
 
class ExtACKeywords;
10464
 
class WinAsm;
10465
 
class WinDeclSpecs;
10466
 
class WinMemberExplSpec;
10467
 
class WinTypeKeywords;
10468
 
class PragmaOnceUnitState;
10469
 
class PragmaOnce;
10470
 
class CCExprResolve;
10471
 
class CExprResolve;
10472
 
namespace Puma {
10473
 
 
10474
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10475
 
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
10476
 
#line 10477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10477
 
  friend class ::WinIfExists;
10478
 
  friend class ::WinImportHandler;
10479
 
  friend class ::WinMacros;
10480
 
  friend class ::CMatchSyntax;
10481
 
  friend class ::ExtGnu;
10482
 
  friend class ::ExtAC;
10483
 
  friend class ::ExtACBuilderCoupling;
10484
 
  friend class ::ExtACSyntaxCoupling;
10485
 
  friend class ::ExtACTree;
10486
 
  friend class ::ExtACKeywords;
10487
 
  friend class ::WinAsm;
10488
 
  friend class ::WinDeclSpecs;
10489
 
  friend class ::WinMemberExplSpec;
10490
 
  friend class ::WinTypeKeywords;
10491
 
  friend class ::PragmaOnceUnitState;
10492
 
  friend class ::PragmaOnce;
10493
 
  friend class ::CCExprResolve;
10494
 
  friend class ::CExprResolve;
10495
 
 
10496
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10497
 
 
10498
 
  CTree *sons[3]; // declspecs, declarator, init
10499
 
 
10500
 
public:
10501
 
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
10502
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
10503
 
  }
10504
 
  static const char *NodeId ();
10505
 
  const char *NodeName () const { return NodeId (); }
10506
 
  int Sons () const { return CTree::Sons (sons, 3); }
10507
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
10508
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
10509
 
  CTree *Declarator () const { return sons[1]; }
10510
 
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
10511
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
10512
 
  void Initializer (CTree *i) { sons[2] = i; }
10513
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10514
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
10515
 
  }
10516
 
};
10517
 
 
10518
 
 
10519
 
#line 10520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10520
 
} // closed Puma
10521
 
class WinIfExists;
10522
 
class WinImportHandler;
10523
 
class WinMacros;
10524
 
class CMatchSyntax;
10525
 
class ExtGnu;
10526
 
class ExtAC;
10527
 
class ExtACBuilderCoupling;
10528
 
class ExtACSyntaxCoupling;
10529
 
class ExtACTree;
10530
 
class ExtACKeywords;
10531
 
class WinAsm;
10532
 
class WinDeclSpecs;
10533
 
class WinMemberExplSpec;
10534
 
class WinTypeKeywords;
10535
 
class PragmaOnceUnitState;
10536
 
class PragmaOnce;
10537
 
class CCExprResolve;
10538
 
class CExprResolve;
10539
 
namespace Puma {
10540
 
 
10541
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10542
 
class CT_TypeParamDecl : public CT_TemplateParamDecl {
10543
 
#line 10544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10544
 
  friend class ::WinIfExists;
10545
 
  friend class ::WinImportHandler;
10546
 
  friend class ::WinMacros;
10547
 
  friend class ::CMatchSyntax;
10548
 
  friend class ::ExtGnu;
10549
 
  friend class ::ExtAC;
10550
 
  friend class ::ExtACBuilderCoupling;
10551
 
  friend class ::ExtACSyntaxCoupling;
10552
 
  friend class ::ExtACTree;
10553
 
  friend class ::ExtACKeywords;
10554
 
  friend class ::WinAsm;
10555
 
  friend class ::WinDeclSpecs;
10556
 
  friend class ::WinMemberExplSpec;
10557
 
  friend class ::WinTypeKeywords;
10558
 
  friend class ::PragmaOnceUnitState;
10559
 
  friend class ::PragmaOnce;
10560
 
  friend class ::CCExprResolve;
10561
 
  friend class ::CExprResolve;
10562
 
 
10563
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10564
 
 
10565
 
  CTree *sons[4]; // params, key, id, init
10566
 
 
10567
 
public:
10568
 
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
10569
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
10570
 
  }
10571
 
  static const char *NodeId ();
10572
 
  const char *NodeName () const { return NodeId (); }
10573
 
  int Sons () const { return CTree::Sons (sons, 4); }
10574
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
10575
 
  CT_TemplateParamList *Parameters () const { 
10576
 
    return (CT_TemplateParamList*)sons[0]; 
10577
 
  }
10578
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
10579
 
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
10580
 
  void Initializer (CTree *i) { sons[3] = i; }
10581
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10582
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
10583
 
  }
10584
 
};
10585
 
 
10586
 
 
10587
 
#line 10588 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10588
 
} // closed Puma
10589
 
class WinIfExists;
10590
 
class WinImportHandler;
10591
 
class WinMacros;
10592
 
class CMatchSyntax;
10593
 
class ExtGnu;
10594
 
class ExtAC;
10595
 
class ExtACBuilderCoupling;
10596
 
class ExtACSyntaxCoupling;
10597
 
class ExtACTree;
10598
 
class ExtACKeywords;
10599
 
class WinAsm;
10600
 
class WinDeclSpecs;
10601
 
class WinMemberExplSpec;
10602
 
class WinTypeKeywords;
10603
 
class PragmaOnceUnitState;
10604
 
class PragmaOnce;
10605
 
class CCExprResolve;
10606
 
class CExprResolve;
10607
 
namespace Puma {
10608
 
 
10609
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10610
 
class CT_EnumDef : public CT_Decl, public CSemObject {
10611
 
#line 10612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10612
 
  friend class ::WinIfExists;
10613
 
  friend class ::WinImportHandler;
10614
 
  friend class ::WinMacros;
10615
 
  friend class ::CMatchSyntax;
10616
 
  friend class ::ExtGnu;
10617
 
  friend class ::ExtAC;
10618
 
  friend class ::ExtACBuilderCoupling;
10619
 
  friend class ::ExtACSyntaxCoupling;
10620
 
  friend class ::ExtACTree;
10621
 
  friend class ::ExtACKeywords;
10622
 
  friend class ::WinAsm;
10623
 
  friend class ::WinDeclSpecs;
10624
 
  friend class ::WinMemberExplSpec;
10625
 
  friend class ::WinTypeKeywords;
10626
 
  friend class ::PragmaOnceUnitState;
10627
 
  friend class ::PragmaOnce;
10628
 
  friend class ::CCExprResolve;
10629
 
  friend class ::CExprResolve;
10630
 
 
10631
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10632
 
 
10633
 
  CTree *sons[3]; // key, name, enumerators
10634
 
 
10635
 
public:
10636
 
  CT_EnumDef (CTree *k, CTree *n) {
10637
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
10638
 
  }
10639
 
  static const char *NodeId ();
10640
 
  const char *NodeName () const { return NodeId (); }
10641
 
  int Sons () const { return CTree::Sons (sons, 3); }
10642
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
10643
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
10644
 
  void Enumerators (CTree *el) { sons[2] = el; }
10645
 
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
10646
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10647
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
10648
 
  }
10649
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
10650
 
};
10651
 
 
10652
 
 
10653
 
#line 10654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10654
 
} // closed Puma
10655
 
class WinIfExists;
10656
 
class WinImportHandler;
10657
 
class WinMacros;
10658
 
class CMatchSyntax;
10659
 
class ExtGnu;
10660
 
class ExtAC;
10661
 
class ExtACBuilderCoupling;
10662
 
class ExtACSyntaxCoupling;
10663
 
class ExtACTree;
10664
 
class ExtACKeywords;
10665
 
class WinAsm;
10666
 
class WinDeclSpecs;
10667
 
class WinMemberExplSpec;
10668
 
class WinTypeKeywords;
10669
 
class PragmaOnceUnitState;
10670
 
class PragmaOnce;
10671
 
class CCExprResolve;
10672
 
class CExprResolve;
10673
 
namespace Puma {
10674
 
 
10675
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10676
 
class CT_Enumerator : public CT_Decl, public CSemObject {
10677
 
#line 10678 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10678
 
  friend class ::WinIfExists;
10679
 
  friend class ::WinImportHandler;
10680
 
  friend class ::WinMacros;
10681
 
  friend class ::CMatchSyntax;
10682
 
  friend class ::ExtGnu;
10683
 
  friend class ::ExtAC;
10684
 
  friend class ::ExtACBuilderCoupling;
10685
 
  friend class ::ExtACSyntaxCoupling;
10686
 
  friend class ::ExtACTree;
10687
 
  friend class ::ExtACKeywords;
10688
 
  friend class ::WinAsm;
10689
 
  friend class ::WinDeclSpecs;
10690
 
  friend class ::WinMemberExplSpec;
10691
 
  friend class ::WinTypeKeywords;
10692
 
  friend class ::PragmaOnceUnitState;
10693
 
  friend class ::PragmaOnce;
10694
 
  friend class ::CCExprResolve;
10695
 
  friend class ::CExprResolve;
10696
 
 
10697
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10698
 
 
10699
 
  CTree *sons[2]; // name, init
10700
 
 
10701
 
public:
10702
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
10703
 
  static const char *NodeId ();
10704
 
  const char *NodeName () const { return NodeId (); }
10705
 
  int Sons () const { return CTree::Sons (sons, 2); }
10706
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
10707
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
10708
 
  void Initializer (CTree *i) { sons[1] = i; }
10709
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
10710
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10711
 
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
10712
 
  }
10713
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
10714
 
};
10715
 
 
10716
 
 
10717
 
#line 10718 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10718
 
} // closed Puma
10719
 
class WinIfExists;
10720
 
class WinImportHandler;
10721
 
class WinMacros;
10722
 
class CMatchSyntax;
10723
 
class ExtGnu;
10724
 
class ExtAC;
10725
 
class ExtACBuilderCoupling;
10726
 
class ExtACSyntaxCoupling;
10727
 
class ExtACTree;
10728
 
class ExtACKeywords;
10729
 
class WinAsm;
10730
 
class WinDeclSpecs;
10731
 
class WinMemberExplSpec;
10732
 
class WinTypeKeywords;
10733
 
class PragmaOnceUnitState;
10734
 
class PragmaOnce;
10735
 
class CCExprResolve;
10736
 
class CExprResolve;
10737
 
namespace Puma {
10738
 
 
10739
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10740
 
class CT_FctDef : public CT_Decl, public CSemObject {
10741
 
#line 10742 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10742
 
  friend class ::WinIfExists;
10743
 
  friend class ::WinImportHandler;
10744
 
  friend class ::WinMacros;
10745
 
  friend class ::CMatchSyntax;
10746
 
  friend class ::ExtGnu;
10747
 
  friend class ::ExtAC;
10748
 
  friend class ::ExtACBuilderCoupling;
10749
 
  friend class ::ExtACSyntaxCoupling;
10750
 
  friend class ::ExtACTree;
10751
 
  friend class ::ExtACKeywords;
10752
 
  friend class ::WinAsm;
10753
 
  friend class ::WinDeclSpecs;
10754
 
  friend class ::WinMemberExplSpec;
10755
 
  friend class ::WinTypeKeywords;
10756
 
  friend class ::PragmaOnceUnitState;
10757
 
  friend class ::PragmaOnce;
10758
 
  friend class ::CCExprResolve;
10759
 
  friend class ::CExprResolve;
10760
 
 
10761
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10762
 
 
10763
 
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
10764
 
 
10765
 
public:
10766
 
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
10767
 
             CTree *b, CTree *hs) {
10768
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
10769
 
    sons[5] = b; sons[6] = hs; 
10770
 
  }
10771
 
  static const char *NodeId ();
10772
 
  const char *NodeName () const { return NodeId (); }
10773
 
  int Sons () const { return CTree::Sons (sons, 7); }
10774
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
10775
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
10776
 
  CTree *Declarator () const { return sons[1]; }
10777
 
  CT_Token *TryKey () const { return (CT_Token*)sons[2]; }
10778
 
  CTree *CtorInit () const { return sons[3]; }
10779
 
  CT_ArgDeclSeq *ArgDeclSeq () const { return (CT_ArgDeclSeq*)sons[4]; }
10780
 
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
10781
 
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
10782
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
10783
 
  void CtorInit (CTree *i) { sons[3] = i; }
10784
 
  void Body (CTree *b) { sons[5] = b; }
10785
 
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
10786
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
10787
 
  }
10788
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10789
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
10790
 
  }
10791
 
};
10792
 
 
10793
 
 
10794
 
#line 10795 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10795
 
} // closed Puma
10796
 
class WinIfExists;
10797
 
class WinImportHandler;
10798
 
class WinMacros;
10799
 
class CMatchSyntax;
10800
 
class ExtGnu;
10801
 
class ExtAC;
10802
 
class ExtACBuilderCoupling;
10803
 
class ExtACSyntaxCoupling;
10804
 
class ExtACTree;
10805
 
class ExtACKeywords;
10806
 
class WinAsm;
10807
 
class WinDeclSpecs;
10808
 
class WinMemberExplSpec;
10809
 
class WinTypeKeywords;
10810
 
class PragmaOnceUnitState;
10811
 
class PragmaOnce;
10812
 
class CCExprResolve;
10813
 
class CExprResolve;
10814
 
namespace Puma {
10815
 
 
10816
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10817
 
class CT_AsmDef : public CT_Decl {
10818
 
#line 10819 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10819
 
  friend class ::WinIfExists;
10820
 
  friend class ::WinImportHandler;
10821
 
  friend class ::WinMacros;
10822
 
  friend class ::CMatchSyntax;
10823
 
  friend class ::ExtGnu;
10824
 
  friend class ::ExtAC;
10825
 
  friend class ::ExtACBuilderCoupling;
10826
 
  friend class ::ExtACSyntaxCoupling;
10827
 
  friend class ::ExtACTree;
10828
 
  friend class ::ExtACKeywords;
10829
 
  friend class ::WinAsm;
10830
 
  friend class ::WinDeclSpecs;
10831
 
  friend class ::WinMemberExplSpec;
10832
 
  friend class ::WinTypeKeywords;
10833
 
  friend class ::PragmaOnceUnitState;
10834
 
  friend class ::PragmaOnce;
10835
 
  friend class ::CCExprResolve;
10836
 
  friend class ::CExprResolve;
10837
 
 
10838
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10839
 
 
10840
 
  CTree *sons[5]; // asm, open, str, close, semi_colon
10841
 
 
10842
 
public:
10843
 
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
10844
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
10845
 
  }
10846
 
  static const char *NodeId ();
10847
 
  const char *NodeName () const { return NodeId (); }
10848
 
  int Sons () const { return 5; }
10849
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
10850
 
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
10851
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10852
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
10853
 
  }
10854
 
};
10855
 
 
10856
 
 
10857
 
#line 10858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10858
 
} // closed Puma
10859
 
class WinIfExists;
10860
 
class WinImportHandler;
10861
 
class WinMacros;
10862
 
class CMatchSyntax;
10863
 
class ExtGnu;
10864
 
class ExtAC;
10865
 
class ExtACBuilderCoupling;
10866
 
class ExtACSyntaxCoupling;
10867
 
class ExtACTree;
10868
 
class ExtACKeywords;
10869
 
class WinAsm;
10870
 
class WinDeclSpecs;
10871
 
class WinMemberExplSpec;
10872
 
class WinTypeKeywords;
10873
 
class PragmaOnceUnitState;
10874
 
class PragmaOnce;
10875
 
class CCExprResolve;
10876
 
class CExprResolve;
10877
 
namespace Puma {
10878
 
 
10879
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10880
 
class CT_Handler : public CT_Decl, public CSemScope {
10881
 
#line 10882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10882
 
  friend class ::WinIfExists;
10883
 
  friend class ::WinImportHandler;
10884
 
  friend class ::WinMacros;
10885
 
  friend class ::CMatchSyntax;
10886
 
  friend class ::ExtGnu;
10887
 
  friend class ::ExtAC;
10888
 
  friend class ::ExtACBuilderCoupling;
10889
 
  friend class ::ExtACSyntaxCoupling;
10890
 
  friend class ::ExtACTree;
10891
 
  friend class ::ExtACKeywords;
10892
 
  friend class ::WinAsm;
10893
 
  friend class ::WinDeclSpecs;
10894
 
  friend class ::WinMemberExplSpec;
10895
 
  friend class ::WinTypeKeywords;
10896
 
  friend class ::PragmaOnceUnitState;
10897
 
  friend class ::PragmaOnce;
10898
 
  friend class ::CCExprResolve;
10899
 
  friend class ::CExprResolve;
10900
 
 
10901
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10902
 
 
10903
 
  CTree *sons[3]; // catch, exception_decl, stmt
10904
 
 
10905
 
public:
10906
 
  CT_Handler (CTree *c, CTree *e, CTree *s) {
10907
 
    sons[0] = c; sons[1] = e; sons[2] = s;
10908
 
  }
10909
 
  static const char *NodeId ();
10910
 
  const char *NodeName () const { return NodeId (); }
10911
 
  int Sons () const { return 3; }
10912
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
10913
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
10914
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
10915
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10916
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
10917
 
  }
10918
 
};
10919
 
 
10920
 
 
10921
 
#line 10922 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10922
 
} // closed Puma
10923
 
class WinIfExists;
10924
 
class WinImportHandler;
10925
 
class WinMacros;
10926
 
class CMatchSyntax;
10927
 
class ExtGnu;
10928
 
class ExtAC;
10929
 
class ExtACBuilderCoupling;
10930
 
class ExtACSyntaxCoupling;
10931
 
class ExtACTree;
10932
 
class ExtACKeywords;
10933
 
class WinAsm;
10934
 
class WinDeclSpecs;
10935
 
class WinMemberExplSpec;
10936
 
class WinTypeKeywords;
10937
 
class PragmaOnceUnitState;
10938
 
class PragmaOnce;
10939
 
class CCExprResolve;
10940
 
class CExprResolve;
10941
 
namespace Puma {
10942
 
 
10943
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10944
 
class CT_LinkageSpec : public CT_Decl {
10945
 
#line 10946 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10946
 
  friend class ::WinIfExists;
10947
 
  friend class ::WinImportHandler;
10948
 
  friend class ::WinMacros;
10949
 
  friend class ::CMatchSyntax;
10950
 
  friend class ::ExtGnu;
10951
 
  friend class ::ExtAC;
10952
 
  friend class ::ExtACBuilderCoupling;
10953
 
  friend class ::ExtACSyntaxCoupling;
10954
 
  friend class ::ExtACTree;
10955
 
  friend class ::ExtACKeywords;
10956
 
  friend class ::WinAsm;
10957
 
  friend class ::WinDeclSpecs;
10958
 
  friend class ::WinMemberExplSpec;
10959
 
  friend class ::WinTypeKeywords;
10960
 
  friend class ::PragmaOnceUnitState;
10961
 
  friend class ::PragmaOnce;
10962
 
  friend class ::CCExprResolve;
10963
 
  friend class ::CExprResolve;
10964
 
 
10965
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10966
 
 
10967
 
  CTree *sons[5]; // extern, str, open, decls, close
10968
 
 
10969
 
public:
10970
 
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
10971
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
10972
 
    if (isList ())
10973
 
      ((CT_DeclList*)Decls ())->Linkage (this);
10974
 
    else
10975
 
      ((CT_Decl*)Decls ())->Linkage (this);
10976
 
  }
10977
 
  static const char *NodeId ();
10978
 
  const char *NodeName () const { return NodeId (); }
10979
 
  int Sons () const { return CTree::Sons (sons, 5); }
10980
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
10981
 
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
10982
 
  CTree *Decls () const { return sons[3]; }
10983
 
  bool isList () const {
10984
 
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
10985
 
  }
10986
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10987
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
10988
 
  }
10989
 
};
10990
 
 
10991
 
 
10992
 
#line 10993 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
10993
 
} // closed Puma
10994
 
class WinIfExists;
10995
 
class WinImportHandler;
10996
 
class WinMacros;
10997
 
class CMatchSyntax;
10998
 
class ExtGnu;
10999
 
class ExtAC;
11000
 
class ExtACBuilderCoupling;
11001
 
class ExtACSyntaxCoupling;
11002
 
class ExtACTree;
11003
 
class ExtACKeywords;
11004
 
class WinAsm;
11005
 
class WinDeclSpecs;
11006
 
class WinMemberExplSpec;
11007
 
class WinTypeKeywords;
11008
 
class PragmaOnceUnitState;
11009
 
class PragmaOnce;
11010
 
class CCExprResolve;
11011
 
class CExprResolve;
11012
 
namespace Puma {
11013
 
 
11014
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11015
 
class CT_ArgDecl : public CT_Decl, public CSemObject {
11016
 
#line 11017 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11017
 
  friend class ::WinIfExists;
11018
 
  friend class ::WinImportHandler;
11019
 
  friend class ::WinMacros;
11020
 
  friend class ::CMatchSyntax;
11021
 
  friend class ::ExtGnu;
11022
 
  friend class ::ExtAC;
11023
 
  friend class ::ExtACBuilderCoupling;
11024
 
  friend class ::ExtACSyntaxCoupling;
11025
 
  friend class ::ExtACTree;
11026
 
  friend class ::ExtACKeywords;
11027
 
  friend class ::WinAsm;
11028
 
  friend class ::WinDeclSpecs;
11029
 
  friend class ::WinMemberExplSpec;
11030
 
  friend class ::WinTypeKeywords;
11031
 
  friend class ::PragmaOnceUnitState;
11032
 
  friend class ::PragmaOnce;
11033
 
  friend class ::CCExprResolve;
11034
 
  friend class ::CExprResolve;
11035
 
 
11036
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11037
 
 
11038
 
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
11039
 
 
11040
 
public:
11041
 
  CT_ArgDecl (CTree *dsl, CTree *d) {
11042
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
11043
 
  }
11044
 
  CT_ArgDecl (CTree *ellipsis) {
11045
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
11046
 
  }
11047
 
  static const char *NodeId ();
11048
 
  const char *NodeName () const { return NodeId (); }
11049
 
  int Sons () const { return CTree::Sons (sons, 4); }
11050
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
11051
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
11052
 
  CTree *Declarator () const { return sons[1]; }
11053
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
11054
 
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
11055
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
11056
 
  void Initializer (CTree *i) { sons[2] = i; }
11057
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11058
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
11059
 
  }
11060
 
};
11061
 
 
11062
 
 
11063
 
#line 11064 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11064
 
} // closed Puma
11065
 
class WinIfExists;
11066
 
class WinImportHandler;
11067
 
class WinMacros;
11068
 
class CMatchSyntax;
11069
 
class ExtGnu;
11070
 
class ExtAC;
11071
 
class ExtACBuilderCoupling;
11072
 
class ExtACSyntaxCoupling;
11073
 
class ExtACTree;
11074
 
class ExtACKeywords;
11075
 
class WinAsm;
11076
 
class WinDeclSpecs;
11077
 
class WinMemberExplSpec;
11078
 
class WinTypeKeywords;
11079
 
class PragmaOnceUnitState;
11080
 
class PragmaOnce;
11081
 
class CCExprResolve;
11082
 
class CExprResolve;
11083
 
namespace Puma {
11084
 
 
11085
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11086
 
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
11087
 
#line 11088 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11088
 
  friend class ::WinIfExists;
11089
 
  friend class ::WinImportHandler;
11090
 
  friend class ::WinMacros;
11091
 
  friend class ::CMatchSyntax;
11092
 
  friend class ::ExtGnu;
11093
 
  friend class ::ExtAC;
11094
 
  friend class ::ExtACBuilderCoupling;
11095
 
  friend class ::ExtACSyntaxCoupling;
11096
 
  friend class ::ExtACTree;
11097
 
  friend class ::ExtACKeywords;
11098
 
  friend class ::WinAsm;
11099
 
  friend class ::WinDeclSpecs;
11100
 
  friend class ::WinMemberExplSpec;
11101
 
  friend class ::WinTypeKeywords;
11102
 
  friend class ::PragmaOnceUnitState;
11103
 
  friend class ::PragmaOnce;
11104
 
  friend class ::CCExprResolve;
11105
 
  friend class ::CExprResolve;
11106
 
 
11107
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11108
 
 
11109
 
public:
11110
 
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
11111
 
   CT_DeclList (size, 2) { AddProperties (props); }
11112
 
  static const char *NodeId ();
11113
 
  const char *NodeName () const { return NodeId (); }
11114
 
};
11115
 
 
11116
 
 
11117
 
#line 11118 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11118
 
} // closed Puma
11119
 
class WinIfExists;
11120
 
class WinImportHandler;
11121
 
class WinMacros;
11122
 
class CMatchSyntax;
11123
 
class ExtGnu;
11124
 
class ExtAC;
11125
 
class ExtACBuilderCoupling;
11126
 
class ExtACSyntaxCoupling;
11127
 
class ExtACTree;
11128
 
class ExtACKeywords;
11129
 
class WinAsm;
11130
 
class WinDeclSpecs;
11131
 
class WinMemberExplSpec;
11132
 
class WinTypeKeywords;
11133
 
class PragmaOnceUnitState;
11134
 
class PragmaOnce;
11135
 
class CCExprResolve;
11136
 
class CExprResolve;
11137
 
namespace Puma {
11138
 
 
11139
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11140
 
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
11141
 
#line 11142 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11142
 
  friend class ::WinIfExists;
11143
 
  friend class ::WinImportHandler;
11144
 
  friend class ::WinMacros;
11145
 
  friend class ::CMatchSyntax;
11146
 
  friend class ::ExtGnu;
11147
 
  friend class ::ExtAC;
11148
 
  friend class ::ExtACBuilderCoupling;
11149
 
  friend class ::ExtACSyntaxCoupling;
11150
 
  friend class ::ExtACTree;
11151
 
  friend class ::ExtACKeywords;
11152
 
  friend class ::WinAsm;
11153
 
  friend class ::WinDeclSpecs;
11154
 
  friend class ::WinMemberExplSpec;
11155
 
  friend class ::WinTypeKeywords;
11156
 
  friend class ::PragmaOnceUnitState;
11157
 
  friend class ::PragmaOnce;
11158
 
  friend class ::CCExprResolve;
11159
 
  friend class ::CExprResolve;
11160
 
 
11161
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11162
 
 
11163
 
public:
11164
 
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
11165
 
  static const char *NodeId ();
11166
 
  const char *NodeName () const { return NodeId (); }
11167
 
};
11168
 
 
11169
 
 
11170
 
#line 11171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11171
 
} // closed Puma
11172
 
class WinIfExists;
11173
 
class WinImportHandler;
11174
 
class WinMacros;
11175
 
class CMatchSyntax;
11176
 
class ExtGnu;
11177
 
class ExtAC;
11178
 
class ExtACBuilderCoupling;
11179
 
class ExtACSyntaxCoupling;
11180
 
class ExtACTree;
11181
 
class ExtACKeywords;
11182
 
class WinAsm;
11183
 
class WinDeclSpecs;
11184
 
class WinMemberExplSpec;
11185
 
class WinTypeKeywords;
11186
 
class PragmaOnceUnitState;
11187
 
class PragmaOnce;
11188
 
class CCExprResolve;
11189
 
class CExprResolve;
11190
 
namespace Puma {
11191
 
 
11192
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11193
 
class CT_ArgNameList : public CT_ArgDeclList {
11194
 
#line 11195 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11195
 
  friend class ::WinIfExists;
11196
 
  friend class ::WinImportHandler;
11197
 
  friend class ::WinMacros;
11198
 
  friend class ::CMatchSyntax;
11199
 
  friend class ::ExtGnu;
11200
 
  friend class ::ExtAC;
11201
 
  friend class ::ExtACBuilderCoupling;
11202
 
  friend class ::ExtACSyntaxCoupling;
11203
 
  friend class ::ExtACTree;
11204
 
  friend class ::ExtACKeywords;
11205
 
  friend class ::WinAsm;
11206
 
  friend class ::WinDeclSpecs;
11207
 
  friend class ::WinMemberExplSpec;
11208
 
  friend class ::WinTypeKeywords;
11209
 
  friend class ::PragmaOnceUnitState;
11210
 
  friend class ::PragmaOnce;
11211
 
  friend class ::CCExprResolve;
11212
 
  friend class ::CExprResolve;
11213
 
 
11214
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11215
 
 
11216
 
public:
11217
 
  CT_ArgNameList () : CT_ArgDeclList () {}
11218
 
  static const char *NodeId ();
11219
 
  const char *NodeName () const { return NodeId (); }
11220
 
};
11221
 
 
11222
 
 
11223
 
#line 11224 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11224
 
} // closed Puma
11225
 
class WinIfExists;
11226
 
class WinImportHandler;
11227
 
class WinMacros;
11228
 
class CMatchSyntax;
11229
 
class ExtGnu;
11230
 
class ExtAC;
11231
 
class ExtACBuilderCoupling;
11232
 
class ExtACSyntaxCoupling;
11233
 
class ExtACTree;
11234
 
class ExtACKeywords;
11235
 
class WinAsm;
11236
 
class WinDeclSpecs;
11237
 
class WinMemberExplSpec;
11238
 
class WinTypeKeywords;
11239
 
class PragmaOnceUnitState;
11240
 
class PragmaOnce;
11241
 
class CCExprResolve;
11242
 
class CExprResolve;
11243
 
namespace Puma {
11244
 
 
11245
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11246
 
class CT_NamespaceDef : public CT_Decl, public CSemObject {
11247
 
#line 11248 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11248
 
  friend class ::WinIfExists;
11249
 
  friend class ::WinImportHandler;
11250
 
  friend class ::WinMacros;
11251
 
  friend class ::CMatchSyntax;
11252
 
  friend class ::ExtGnu;
11253
 
  friend class ::ExtAC;
11254
 
  friend class ::ExtACBuilderCoupling;
11255
 
  friend class ::ExtACSyntaxCoupling;
11256
 
  friend class ::ExtACTree;
11257
 
  friend class ::ExtACKeywords;
11258
 
  friend class ::WinAsm;
11259
 
  friend class ::WinDeclSpecs;
11260
 
  friend class ::WinMemberExplSpec;
11261
 
  friend class ::WinTypeKeywords;
11262
 
  friend class ::PragmaOnceUnitState;
11263
 
  friend class ::PragmaOnce;
11264
 
  friend class ::CCExprResolve;
11265
 
  friend class ::CExprResolve;
11266
 
 
11267
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11268
 
 
11269
 
  CTree *sons[3]; // ns, name, members
11270
 
 
11271
 
public:
11272
 
  CT_NamespaceDef (CTree *n, CTree *nm) {
11273
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
11274
 
  }
11275
 
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
11276
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
11277
 
  }
11278
 
  static const char *NodeId ();
11279
 
  const char *NodeName () const { return NodeId (); }
11280
 
  int Sons () const { return CTree::Sons (sons, 3); }
11281
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
11282
 
  void Members (CTree *m) { sons[2] = m; }
11283
 
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
11284
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
11285
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
11286
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11287
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
11288
 
  }
11289
 
};
11290
 
 
11291
 
 
11292
 
#line 11293 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11293
 
} // closed Puma
11294
 
class WinIfExists;
11295
 
class WinImportHandler;
11296
 
class WinMacros;
11297
 
class CMatchSyntax;
11298
 
class ExtGnu;
11299
 
class ExtAC;
11300
 
class ExtACBuilderCoupling;
11301
 
class ExtACSyntaxCoupling;
11302
 
class ExtACTree;
11303
 
class ExtACKeywords;
11304
 
class WinAsm;
11305
 
class WinDeclSpecs;
11306
 
class WinMemberExplSpec;
11307
 
class WinTypeKeywords;
11308
 
class PragmaOnceUnitState;
11309
 
class PragmaOnce;
11310
 
class CCExprResolve;
11311
 
class CExprResolve;
11312
 
namespace Puma {
11313
 
 
11314
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11315
 
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
11316
 
#line 11317 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11317
 
  friend class ::WinIfExists;
11318
 
  friend class ::WinImportHandler;
11319
 
  friend class ::WinMacros;
11320
 
  friend class ::CMatchSyntax;
11321
 
  friend class ::ExtGnu;
11322
 
  friend class ::ExtAC;
11323
 
  friend class ::ExtACBuilderCoupling;
11324
 
  friend class ::ExtACSyntaxCoupling;
11325
 
  friend class ::ExtACTree;
11326
 
  friend class ::ExtACKeywords;
11327
 
  friend class ::WinAsm;
11328
 
  friend class ::WinDeclSpecs;
11329
 
  friend class ::WinMemberExplSpec;
11330
 
  friend class ::WinTypeKeywords;
11331
 
  friend class ::PragmaOnceUnitState;
11332
 
  friend class ::PragmaOnce;
11333
 
  friend class ::CCExprResolve;
11334
 
  friend class ::CExprResolve;
11335
 
 
11336
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11337
 
 
11338
 
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
11339
 
 
11340
 
public:
11341
 
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
11342
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
11343
 
  }
11344
 
  static const char *NodeId ();
11345
 
  const char *NodeName () const { return NodeId (); }
11346
 
  int Sons () const { return 5; }
11347
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
11348
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
11349
 
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
11350
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
11351
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11352
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
11353
 
  }
11354
 
};
11355
 
 
11356
 
 
11357
 
#line 11358 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11358
 
} // closed Puma
11359
 
class WinIfExists;
11360
 
class WinImportHandler;
11361
 
class WinMacros;
11362
 
class CMatchSyntax;
11363
 
class ExtGnu;
11364
 
class ExtAC;
11365
 
class ExtACBuilderCoupling;
11366
 
class ExtACSyntaxCoupling;
11367
 
class ExtACTree;
11368
 
class ExtACKeywords;
11369
 
class WinAsm;
11370
 
class WinDeclSpecs;
11371
 
class WinMemberExplSpec;
11372
 
class WinTypeKeywords;
11373
 
class PragmaOnceUnitState;
11374
 
class PragmaOnce;
11375
 
class CCExprResolve;
11376
 
class CExprResolve;
11377
 
namespace Puma {
11378
 
 
11379
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11380
 
class CT_UsingDirective : public CT_Decl {
11381
 
#line 11382 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11382
 
  friend class ::WinIfExists;
11383
 
  friend class ::WinImportHandler;
11384
 
  friend class ::WinMacros;
11385
 
  friend class ::CMatchSyntax;
11386
 
  friend class ::ExtGnu;
11387
 
  friend class ::ExtAC;
11388
 
  friend class ::ExtACBuilderCoupling;
11389
 
  friend class ::ExtACSyntaxCoupling;
11390
 
  friend class ::ExtACTree;
11391
 
  friend class ::ExtACKeywords;
11392
 
  friend class ::WinAsm;
11393
 
  friend class ::WinDeclSpecs;
11394
 
  friend class ::WinMemberExplSpec;
11395
 
  friend class ::WinTypeKeywords;
11396
 
  friend class ::PragmaOnceUnitState;
11397
 
  friend class ::PragmaOnce;
11398
 
  friend class ::CCExprResolve;
11399
 
  friend class ::CExprResolve;
11400
 
 
11401
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11402
 
 
11403
 
  CTree *sons[4]; // using, ns, name, semi_colon
11404
 
 
11405
 
public:
11406
 
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
11407
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
11408
 
  }
11409
 
  static const char *NodeId ();
11410
 
  const char *NodeName () const { return NodeId (); }
11411
 
  int Sons () const { return 4; }
11412
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
11413
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
11414
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11415
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
11416
 
  }
11417
 
};
11418
 
 
11419
 
/*****************************************************************************/
11420
 
/*                                                                           */
11421
 
/*                              Declarators                                  */
11422
 
/*                                                                           */
11423
 
/*****************************************************************************/
11424
 
 
11425
 
 
11426
 
#line 11427 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11427
 
} // closed Puma
11428
 
class WinIfExists;
11429
 
class WinImportHandler;
11430
 
class WinMacros;
11431
 
class CMatchSyntax;
11432
 
class ExtGnu;
11433
 
class ExtAC;
11434
 
class ExtACBuilderCoupling;
11435
 
class ExtACSyntaxCoupling;
11436
 
class ExtACTree;
11437
 
class ExtACKeywords;
11438
 
class WinAsm;
11439
 
class WinDeclSpecs;
11440
 
class WinMemberExplSpec;
11441
 
class WinTypeKeywords;
11442
 
class PragmaOnceUnitState;
11443
 
class PragmaOnce;
11444
 
class CCExprResolve;
11445
 
class CExprResolve;
11446
 
namespace Puma {
11447
 
 
11448
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11449
 
class CT_Declarator : public CTree {
11450
 
#line 11451 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11451
 
  friend class ::WinIfExists;
11452
 
  friend class ::WinImportHandler;
11453
 
  friend class ::WinMacros;
11454
 
  friend class ::CMatchSyntax;
11455
 
  friend class ::ExtGnu;
11456
 
  friend class ::ExtAC;
11457
 
  friend class ::ExtACBuilderCoupling;
11458
 
  friend class ::ExtACSyntaxCoupling;
11459
 
  friend class ::ExtACTree;
11460
 
  friend class ::ExtACKeywords;
11461
 
  friend class ::WinAsm;
11462
 
  friend class ::WinDeclSpecs;
11463
 
  friend class ::WinMemberExplSpec;
11464
 
  friend class ::WinTypeKeywords;
11465
 
  friend class ::PragmaOnceUnitState;
11466
 
  friend class ::PragmaOnce;
11467
 
  friend class ::CCExprResolve;
11468
 
  friend class ::CExprResolve;
11469
 
 
11470
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11471
 
 
11472
 
protected:
11473
 
  CT_Declarator () {}
11474
 
 
11475
 
public:
11476
 
  virtual CTree *Declarator () const = 0;
11477
 
  //classification function
11478
 
  virtual CT_Declarator *IsDeclarator () { return this; }
11479
 
  // locate the name node
11480
 
  CT_SimpleName *Name ();
11481
 
  CT_SimpleName *Name (CT_Declarator *&last_declarator);
11482
 
};
11483
 
 
11484
 
 
11485
 
#line 11486 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11486
 
} // closed Puma
11487
 
class WinIfExists;
11488
 
class WinImportHandler;
11489
 
class WinMacros;
11490
 
class CMatchSyntax;
11491
 
class ExtGnu;
11492
 
class ExtAC;
11493
 
class ExtACBuilderCoupling;
11494
 
class ExtACSyntaxCoupling;
11495
 
class ExtACTree;
11496
 
class ExtACKeywords;
11497
 
class WinAsm;
11498
 
class WinDeclSpecs;
11499
 
class WinMemberExplSpec;
11500
 
class WinTypeKeywords;
11501
 
class PragmaOnceUnitState;
11502
 
class PragmaOnce;
11503
 
class CCExprResolve;
11504
 
class CExprResolve;
11505
 
namespace Puma {
11506
 
 
11507
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11508
 
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
11509
 
#line 11510 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11510
 
  friend class ::WinIfExists;
11511
 
  friend class ::WinImportHandler;
11512
 
  friend class ::WinMacros;
11513
 
  friend class ::CMatchSyntax;
11514
 
  friend class ::ExtGnu;
11515
 
  friend class ::ExtAC;
11516
 
  friend class ::ExtACBuilderCoupling;
11517
 
  friend class ::ExtACSyntaxCoupling;
11518
 
  friend class ::ExtACTree;
11519
 
  friend class ::ExtACKeywords;
11520
 
  friend class ::WinAsm;
11521
 
  friend class ::WinDeclSpecs;
11522
 
  friend class ::WinMemberExplSpec;
11523
 
  friend class ::WinTypeKeywords;
11524
 
  friend class ::PragmaOnceUnitState;
11525
 
  friend class ::PragmaOnce;
11526
 
  friend class ::CCExprResolve;
11527
 
  friend class ::CExprResolve;
11528
 
 
11529
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11530
 
 
11531
 
  CTree *sons[2]; // declarator, init
11532
 
  CTree *obj_decl;
11533
 
 
11534
 
public:
11535
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
11536
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
11537
 
  }
11538
 
  static const char *NodeId ();
11539
 
  const char *NodeName () const { return NodeId (); }
11540
 
  int Sons () const { return CTree::Sons (sons, 2); }
11541
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
11542
 
  CTree *Declarator () const { return sons[0]; }
11543
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
11544
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
11545
 
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
11546
 
  void Initializer (CTree* i) { sons[1] = i; }
11547
 
  void ObjDecl (CTree *od) { obj_decl = od; }
11548
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11549
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
11550
 
  }
11551
 
};
11552
 
 
11553
 
 
11554
 
#line 11555 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11555
 
} // closed Puma
11556
 
class WinIfExists;
11557
 
class WinImportHandler;
11558
 
class WinMacros;
11559
 
class CMatchSyntax;
11560
 
class ExtGnu;
11561
 
class ExtAC;
11562
 
class ExtACBuilderCoupling;
11563
 
class ExtACSyntaxCoupling;
11564
 
class ExtACTree;
11565
 
class ExtACKeywords;
11566
 
class WinAsm;
11567
 
class WinDeclSpecs;
11568
 
class WinMemberExplSpec;
11569
 
class WinTypeKeywords;
11570
 
class PragmaOnceUnitState;
11571
 
class PragmaOnce;
11572
 
class CCExprResolve;
11573
 
class CExprResolve;
11574
 
namespace Puma {
11575
 
 
11576
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11577
 
class CT_BracedDeclarator : public CT_Declarator {
11578
 
#line 11579 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11579
 
  friend class ::WinIfExists;
11580
 
  friend class ::WinImportHandler;
11581
 
  friend class ::WinMacros;
11582
 
  friend class ::CMatchSyntax;
11583
 
  friend class ::ExtGnu;
11584
 
  friend class ::ExtAC;
11585
 
  friend class ::ExtACBuilderCoupling;
11586
 
  friend class ::ExtACSyntaxCoupling;
11587
 
  friend class ::ExtACTree;
11588
 
  friend class ::ExtACKeywords;
11589
 
  friend class ::WinAsm;
11590
 
  friend class ::WinDeclSpecs;
11591
 
  friend class ::WinMemberExplSpec;
11592
 
  friend class ::WinTypeKeywords;
11593
 
  friend class ::PragmaOnceUnitState;
11594
 
  friend class ::PragmaOnce;
11595
 
  friend class ::CCExprResolve;
11596
 
  friend class ::CExprResolve;
11597
 
 
11598
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11599
 
 
11600
 
  CTree *sons[4]; // open, win_specs, declarator, close
11601
 
 
11602
 
public:
11603
 
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
11604
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
11605
 
  }
11606
 
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
11607
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
11608
 
  }
11609
 
  static const char *NodeId ();
11610
 
  const char *NodeName () const { return NodeId (); }
11611
 
  int Sons () const { return CTree::Sons (sons, 4); }
11612
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
11613
 
  CTree *Declarator () const { return sons[2]; }
11614
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11615
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
11616
 
  }
11617
 
};
11618
 
 
11619
 
 
11620
 
#line 11621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11621
 
} // closed Puma
11622
 
class WinIfExists;
11623
 
class WinImportHandler;
11624
 
class WinMacros;
11625
 
class CMatchSyntax;
11626
 
class ExtGnu;
11627
 
class ExtAC;
11628
 
class ExtACBuilderCoupling;
11629
 
class ExtACSyntaxCoupling;
11630
 
class ExtACTree;
11631
 
class ExtACKeywords;
11632
 
class WinAsm;
11633
 
class WinDeclSpecs;
11634
 
class WinMemberExplSpec;
11635
 
class WinTypeKeywords;
11636
 
class PragmaOnceUnitState;
11637
 
class PragmaOnce;
11638
 
class CCExprResolve;
11639
 
class CExprResolve;
11640
 
namespace Puma {
11641
 
 
11642
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11643
 
class CT_ArrayDelimiter : public CTree {
11644
 
#line 11645 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11645
 
  friend class ::WinIfExists;
11646
 
  friend class ::WinImportHandler;
11647
 
  friend class ::WinMacros;
11648
 
  friend class ::CMatchSyntax;
11649
 
  friend class ::ExtGnu;
11650
 
  friend class ::ExtAC;
11651
 
  friend class ::ExtACBuilderCoupling;
11652
 
  friend class ::ExtACSyntaxCoupling;
11653
 
  friend class ::ExtACTree;
11654
 
  friend class ::ExtACKeywords;
11655
 
  friend class ::WinAsm;
11656
 
  friend class ::WinDeclSpecs;
11657
 
  friend class ::WinMemberExplSpec;
11658
 
  friend class ::WinTypeKeywords;
11659
 
  friend class ::PragmaOnceUnitState;
11660
 
  friend class ::PragmaOnce;
11661
 
  friend class ::CCExprResolve;
11662
 
  friend class ::CExprResolve;
11663
 
 
11664
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11665
 
 
11666
 
  CTree *sons[4]; // star, static, quals, expr
11667
 
  bool pos0;
11668
 
 
11669
 
public:
11670
 
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
11671
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
11672
 
  }
11673
 
  static const char *NodeId ();
11674
 
  const char *NodeName () const { return NodeId (); }
11675
 
  int Sons () const { return CTree::Sons (sons, 4); }
11676
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
11677
 
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
11678
 
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
11679
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
11680
 
  CTree *Expr () const { return sons[3]; }
11681
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11682
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
11683
 
  }
11684
 
};
11685
 
 
11686
 
 
11687
 
#line 11688 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11688
 
} // closed Puma
11689
 
class WinIfExists;
11690
 
class WinImportHandler;
11691
 
class WinMacros;
11692
 
class CMatchSyntax;
11693
 
class ExtGnu;
11694
 
class ExtAC;
11695
 
class ExtACBuilderCoupling;
11696
 
class ExtACSyntaxCoupling;
11697
 
class ExtACTree;
11698
 
class ExtACKeywords;
11699
 
class WinAsm;
11700
 
class WinDeclSpecs;
11701
 
class WinMemberExplSpec;
11702
 
class WinTypeKeywords;
11703
 
class PragmaOnceUnitState;
11704
 
class PragmaOnce;
11705
 
class CCExprResolve;
11706
 
class CExprResolve;
11707
 
namespace Puma {
11708
 
 
11709
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11710
 
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
11711
 
#line 11712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11712
 
  friend class ::WinIfExists;
11713
 
  friend class ::WinImportHandler;
11714
 
  friend class ::WinMacros;
11715
 
  friend class ::CMatchSyntax;
11716
 
  friend class ::ExtGnu;
11717
 
  friend class ::ExtAC;
11718
 
  friend class ::ExtACBuilderCoupling;
11719
 
  friend class ::ExtACSyntaxCoupling;
11720
 
  friend class ::ExtACTree;
11721
 
  friend class ::ExtACKeywords;
11722
 
  friend class ::WinAsm;
11723
 
  friend class ::WinDeclSpecs;
11724
 
  friend class ::WinMemberExplSpec;
11725
 
  friend class ::WinTypeKeywords;
11726
 
  friend class ::PragmaOnceUnitState;
11727
 
  friend class ::PragmaOnce;
11728
 
  friend class ::CCExprResolve;
11729
 
  friend class ::CExprResolve;
11730
 
 
11731
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11732
 
 
11733
 
  CTree *sons[4]; // declarator, open, delim, close
11734
 
 
11735
 
public:
11736
 
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
11737
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
11738
 
  }
11739
 
  static const char *NodeId ();
11740
 
  const char *NodeName () const { return NodeId (); }
11741
 
  int Sons () const { return 4; }
11742
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
11743
 
  CTree *Declarator () const { return sons[0]; }
11744
 
  CT_ArrayDelimiter *Delimiter () const 
11745
 
   { return (CT_ArrayDelimiter*)sons[2]; }
11746
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11747
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
11748
 
  }
11749
 
  CTypeInfo *Type () const { return type; }
11750
 
  CExprValue *Value () const { return value; }
11751
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
11752
 
};
11753
 
 
11754
 
 
11755
 
#line 11756 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11756
 
} // closed Puma
11757
 
class WinIfExists;
11758
 
class WinImportHandler;
11759
 
class WinMacros;
11760
 
class CMatchSyntax;
11761
 
class ExtGnu;
11762
 
class ExtAC;
11763
 
class ExtACBuilderCoupling;
11764
 
class ExtACSyntaxCoupling;
11765
 
class ExtACTree;
11766
 
class ExtACKeywords;
11767
 
class WinAsm;
11768
 
class WinDeclSpecs;
11769
 
class WinMemberExplSpec;
11770
 
class WinTypeKeywords;
11771
 
class PragmaOnceUnitState;
11772
 
class PragmaOnce;
11773
 
class CCExprResolve;
11774
 
class CExprResolve;
11775
 
namespace Puma {
11776
 
 
11777
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11778
 
class CT_FctDeclarator : public CT_Declarator {
11779
 
#line 11780 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11780
 
  friend class ::WinIfExists;
11781
 
  friend class ::WinImportHandler;
11782
 
  friend class ::WinMacros;
11783
 
  friend class ::CMatchSyntax;
11784
 
  friend class ::ExtGnu;
11785
 
  friend class ::ExtAC;
11786
 
  friend class ::ExtACBuilderCoupling;
11787
 
  friend class ::ExtACSyntaxCoupling;
11788
 
  friend class ::ExtACTree;
11789
 
  friend class ::ExtACKeywords;
11790
 
  friend class ::WinAsm;
11791
 
  friend class ::WinDeclSpecs;
11792
 
  friend class ::WinMemberExplSpec;
11793
 
  friend class ::WinTypeKeywords;
11794
 
  friend class ::PragmaOnceUnitState;
11795
 
  friend class ::PragmaOnce;
11796
 
  friend class ::CCExprResolve;
11797
 
  friend class ::CExprResolve;
11798
 
 
11799
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11800
 
 
11801
 
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
11802
 
 
11803
 
public:
11804
 
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
11805
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
11806
 
  }
11807
 
  static const char *NodeId ();
11808
 
  const char *NodeName () const { return NodeId (); }
11809
 
  int Sons () const { return CTree::Sons (sons, 4); }
11810
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
11811
 
  CTree *Declarator () const { return sons[0]; }
11812
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
11813
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
11814
 
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
11815
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11816
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
11817
 
  }
11818
 
};
11819
 
 
11820
 
 
11821
 
#line 11822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11822
 
} // closed Puma
11823
 
class WinIfExists;
11824
 
class WinImportHandler;
11825
 
class WinMacros;
11826
 
class CMatchSyntax;
11827
 
class ExtGnu;
11828
 
class ExtAC;
11829
 
class ExtACBuilderCoupling;
11830
 
class ExtACSyntaxCoupling;
11831
 
class ExtACTree;
11832
 
class ExtACKeywords;
11833
 
class WinAsm;
11834
 
class WinDeclSpecs;
11835
 
class WinMemberExplSpec;
11836
 
class WinTypeKeywords;
11837
 
class PragmaOnceUnitState;
11838
 
class PragmaOnce;
11839
 
class CCExprResolve;
11840
 
class CExprResolve;
11841
 
namespace Puma {
11842
 
 
11843
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11844
 
class CT_RefDeclarator : public CT_Declarator {
11845
 
#line 11846 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11846
 
  friend class ::WinIfExists;
11847
 
  friend class ::WinImportHandler;
11848
 
  friend class ::WinMacros;
11849
 
  friend class ::CMatchSyntax;
11850
 
  friend class ::ExtGnu;
11851
 
  friend class ::ExtAC;
11852
 
  friend class ::ExtACBuilderCoupling;
11853
 
  friend class ::ExtACSyntaxCoupling;
11854
 
  friend class ::ExtACTree;
11855
 
  friend class ::ExtACKeywords;
11856
 
  friend class ::WinAsm;
11857
 
  friend class ::WinDeclSpecs;
11858
 
  friend class ::WinMemberExplSpec;
11859
 
  friend class ::WinTypeKeywords;
11860
 
  friend class ::PragmaOnceUnitState;
11861
 
  friend class ::PragmaOnce;
11862
 
  friend class ::CCExprResolve;
11863
 
  friend class ::CExprResolve;
11864
 
 
11865
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11866
 
 
11867
 
  CTree *sons[2]; // ref, declarator
11868
 
 
11869
 
public:
11870
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
11871
 
  static const char *NodeId ();
11872
 
  const char *NodeName () const { return NodeId (); }
11873
 
  int Sons () const { return 2; }
11874
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
11875
 
  CTree *Declarator () const { return sons[1]; }
11876
 
  void ReplaceSon (CTree *old_son, CTree *new_son) {
11877
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
11878
 
  }
11879
 
};
11880
 
 
11881
 
 
11882
 
#line 11883 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11883
 
} // closed Puma
11884
 
class WinIfExists;
11885
 
class WinImportHandler;
11886
 
class WinMacros;
11887
 
class CMatchSyntax;
11888
 
class ExtGnu;
11889
 
class ExtAC;
11890
 
class ExtACBuilderCoupling;
11891
 
class ExtACSyntaxCoupling;
11892
 
class ExtACTree;
11893
 
class ExtACKeywords;
11894
 
class WinAsm;
11895
 
class WinDeclSpecs;
11896
 
class WinMemberExplSpec;
11897
 
class WinTypeKeywords;
11898
 
class PragmaOnceUnitState;
11899
 
class PragmaOnce;
11900
 
class CCExprResolve;
11901
 
class CExprResolve;
11902
 
namespace Puma {
11903
 
 
11904
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11905
 
class CT_PtrDeclarator : public CT_Declarator {
11906
 
#line 11907 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11907
 
  friend class ::WinIfExists;
11908
 
  friend class ::WinImportHandler;
11909
 
  friend class ::WinMacros;
11910
 
  friend class ::CMatchSyntax;
11911
 
  friend class ::ExtGnu;
11912
 
  friend class ::ExtAC;
11913
 
  friend class ::ExtACBuilderCoupling;
11914
 
  friend class ::ExtACSyntaxCoupling;
11915
 
  friend class ::ExtACTree;
11916
 
  friend class ::ExtACKeywords;
11917
 
  friend class ::WinAsm;
11918
 
  friend class ::WinDeclSpecs;
11919
 
  friend class ::WinMemberExplSpec;
11920
 
  friend class ::WinTypeKeywords;
11921
 
  friend class ::PragmaOnceUnitState;
11922
 
  friend class ::PragmaOnce;
11923
 
  friend class ::CCExprResolve;
11924
 
  friend class ::CExprResolve;
11925
 
 
11926
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11927
 
 
11928
 
  CTree *sons[3]; // ptr, cv_quals, declarator
11929
 
 
11930
 
public:
11931
 
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
11932
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
11933
 
  }
11934
 
  static const char *NodeId ();
11935
 
  const char *NodeName () const { return NodeId (); }
11936
 
  int Sons () const { return CTree::Sons (sons, 3); }
11937
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
11938
 
  CTree *Declarator () const { return sons[2]; }
11939
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
11940
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11941
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
11942
 
  }
11943
 
};
11944
 
 
11945
 
 
11946
 
#line 11947 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11947
 
} // closed Puma
11948
 
class WinIfExists;
11949
 
class WinImportHandler;
11950
 
class WinMacros;
11951
 
class CMatchSyntax;
11952
 
class ExtGnu;
11953
 
class ExtAC;
11954
 
class ExtACBuilderCoupling;
11955
 
class ExtACSyntaxCoupling;
11956
 
class ExtACTree;
11957
 
class ExtACKeywords;
11958
 
class WinAsm;
11959
 
class WinDeclSpecs;
11960
 
class WinMemberExplSpec;
11961
 
class WinTypeKeywords;
11962
 
class PragmaOnceUnitState;
11963
 
class PragmaOnce;
11964
 
class CCExprResolve;
11965
 
class CExprResolve;
11966
 
namespace Puma {
11967
 
 
11968
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11969
 
class CT_MembPtrDeclarator : public CT_Declarator {
11970
 
#line 11971 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
11971
 
  friend class ::WinIfExists;
11972
 
  friend class ::WinImportHandler;
11973
 
  friend class ::WinMacros;
11974
 
  friend class ::CMatchSyntax;
11975
 
  friend class ::ExtGnu;
11976
 
  friend class ::ExtAC;
11977
 
  friend class ::ExtACBuilderCoupling;
11978
 
  friend class ::ExtACSyntaxCoupling;
11979
 
  friend class ::ExtACTree;
11980
 
  friend class ::ExtACKeywords;
11981
 
  friend class ::WinAsm;
11982
 
  friend class ::WinDeclSpecs;
11983
 
  friend class ::WinMemberExplSpec;
11984
 
  friend class ::WinTypeKeywords;
11985
 
  friend class ::PragmaOnceUnitState;
11986
 
  friend class ::PragmaOnce;
11987
 
  friend class ::CCExprResolve;
11988
 
  friend class ::CExprResolve;
11989
 
 
11990
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11991
 
 
11992
 
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
11993
 
 
11994
 
public:
11995
 
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
11996
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
11997
 
  }
11998
 
  static const char *NodeId ();
11999
 
  const char *NodeName () const { return NodeId (); }
12000
 
  int Sons () const { return CTree::Sons (sons, 5); }
12001
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
12002
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
12003
 
  CTree *Declarator () const { return sons[4]; }
12004
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
12005
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12006
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
12007
 
  }
12008
 
};
12009
 
 
12010
 
 
12011
 
#line 12012 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12012
 
} // closed Puma
12013
 
class WinIfExists;
12014
 
class WinImportHandler;
12015
 
class WinMacros;
12016
 
class CMatchSyntax;
12017
 
class ExtGnu;
12018
 
class ExtAC;
12019
 
class ExtACBuilderCoupling;
12020
 
class ExtACSyntaxCoupling;
12021
 
class ExtACTree;
12022
 
class ExtACKeywords;
12023
 
class WinAsm;
12024
 
class WinDeclSpecs;
12025
 
class WinMemberExplSpec;
12026
 
class WinTypeKeywords;
12027
 
class PragmaOnceUnitState;
12028
 
class PragmaOnce;
12029
 
class CCExprResolve;
12030
 
class CExprResolve;
12031
 
namespace Puma {
12032
 
 
12033
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12034
 
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
12035
 
#line 12036 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12036
 
  friend class ::WinIfExists;
12037
 
  friend class ::WinImportHandler;
12038
 
  friend class ::WinMacros;
12039
 
  friend class ::CMatchSyntax;
12040
 
  friend class ::ExtGnu;
12041
 
  friend class ::ExtAC;
12042
 
  friend class ::ExtACBuilderCoupling;
12043
 
  friend class ::ExtACSyntaxCoupling;
12044
 
  friend class ::ExtACTree;
12045
 
  friend class ::ExtACKeywords;
12046
 
  friend class ::WinAsm;
12047
 
  friend class ::WinDeclSpecs;
12048
 
  friend class ::WinMemberExplSpec;
12049
 
  friend class ::WinTypeKeywords;
12050
 
  friend class ::PragmaOnceUnitState;
12051
 
  friend class ::PragmaOnce;
12052
 
  friend class ::CCExprResolve;
12053
 
  friend class ::CExprResolve;
12054
 
 
12055
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12056
 
 
12057
 
  CTree *sons[3]; // declarator, colon, expr
12058
 
 
12059
 
public:
12060
 
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
12061
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
12062
 
  }
12063
 
  static const char *NodeId ();
12064
 
  const char *NodeName () const { return NodeId (); }
12065
 
  int Sons () const { return CTree::Sons (sons, 3); }
12066
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12067
 
  CTree *Declarator () const { return sons[0]; }
12068
 
  CTree *Expr () const { return sons[2]; }
12069
 
  void FieldSize (CTree *s) { sons[2] = s; }
12070
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
12071
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12072
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12073
 
  }
12074
 
};
12075
 
 
12076
 
/*****************************************************************************/
12077
 
/*                                                                           */
12078
 
/*                              Statements                                   */
12079
 
/*                                                                           */
12080
 
/*****************************************************************************/
12081
 
 
12082
 
 
12083
 
#line 12084 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12084
 
} // closed Puma
12085
 
class WinIfExists;
12086
 
class WinImportHandler;
12087
 
class WinMacros;
12088
 
class CMatchSyntax;
12089
 
class ExtGnu;
12090
 
class ExtAC;
12091
 
class ExtACBuilderCoupling;
12092
 
class ExtACSyntaxCoupling;
12093
 
class ExtACTree;
12094
 
class ExtACKeywords;
12095
 
class WinAsm;
12096
 
class WinDeclSpecs;
12097
 
class WinMemberExplSpec;
12098
 
class WinTypeKeywords;
12099
 
class PragmaOnceUnitState;
12100
 
class PragmaOnce;
12101
 
class CCExprResolve;
12102
 
class CExprResolve;
12103
 
namespace Puma {
12104
 
 
12105
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12106
 
class CT_Statement : public CTree {
12107
 
#line 12108 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12108
 
  friend class ::WinIfExists;
12109
 
  friend class ::WinImportHandler;
12110
 
  friend class ::WinMacros;
12111
 
  friend class ::CMatchSyntax;
12112
 
  friend class ::ExtGnu;
12113
 
  friend class ::ExtAC;
12114
 
  friend class ::ExtACBuilderCoupling;
12115
 
  friend class ::ExtACSyntaxCoupling;
12116
 
  friend class ::ExtACTree;
12117
 
  friend class ::ExtACKeywords;
12118
 
  friend class ::WinAsm;
12119
 
  friend class ::WinDeclSpecs;
12120
 
  friend class ::WinMemberExplSpec;
12121
 
  friend class ::WinTypeKeywords;
12122
 
  friend class ::PragmaOnceUnitState;
12123
 
  friend class ::PragmaOnce;
12124
 
  friend class ::CCExprResolve;
12125
 
  friend class ::CExprResolve;
12126
 
 
12127
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12128
 
 
12129
 
protected:
12130
 
  CT_Statement () {}
12131
 
};
12132
 
 
12133
 
 
12134
 
#line 12135 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12135
 
} // closed Puma
12136
 
class WinIfExists;
12137
 
class WinImportHandler;
12138
 
class WinMacros;
12139
 
class CMatchSyntax;
12140
 
class ExtGnu;
12141
 
class ExtAC;
12142
 
class ExtACBuilderCoupling;
12143
 
class ExtACSyntaxCoupling;
12144
 
class ExtACTree;
12145
 
class ExtACKeywords;
12146
 
class WinAsm;
12147
 
class WinDeclSpecs;
12148
 
class WinMemberExplSpec;
12149
 
class WinTypeKeywords;
12150
 
class PragmaOnceUnitState;
12151
 
class PragmaOnce;
12152
 
class CCExprResolve;
12153
 
class CExprResolve;
12154
 
namespace Puma {
12155
 
 
12156
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12157
 
class CT_LabelStmt : public CT_Statement {
12158
 
#line 12159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12159
 
  friend class ::WinIfExists;
12160
 
  friend class ::WinImportHandler;
12161
 
  friend class ::WinMacros;
12162
 
  friend class ::CMatchSyntax;
12163
 
  friend class ::ExtGnu;
12164
 
  friend class ::ExtAC;
12165
 
  friend class ::ExtACBuilderCoupling;
12166
 
  friend class ::ExtACSyntaxCoupling;
12167
 
  friend class ::ExtACTree;
12168
 
  friend class ::ExtACKeywords;
12169
 
  friend class ::WinAsm;
12170
 
  friend class ::WinDeclSpecs;
12171
 
  friend class ::WinMemberExplSpec;
12172
 
  friend class ::WinTypeKeywords;
12173
 
  friend class ::PragmaOnceUnitState;
12174
 
  friend class ::PragmaOnce;
12175
 
  friend class ::CCExprResolve;
12176
 
  friend class ::CExprResolve;
12177
 
 
12178
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12179
 
 
12180
 
  CTree *sons[3]; // id, colon, stmt
12181
 
 
12182
 
public:
12183
 
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
12184
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
12185
 
  }
12186
 
  static const char *NodeId ();
12187
 
  const char *NodeName () const { return NodeId (); }
12188
 
  int Sons () const { return 3; }
12189
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12190
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
12191
 
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
12192
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12193
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12194
 
  }
12195
 
};
12196
 
 
12197
 
 
12198
 
#line 12199 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12199
 
} // closed Puma
12200
 
class WinIfExists;
12201
 
class WinImportHandler;
12202
 
class WinMacros;
12203
 
class CMatchSyntax;
12204
 
class ExtGnu;
12205
 
class ExtAC;
12206
 
class ExtACBuilderCoupling;
12207
 
class ExtACSyntaxCoupling;
12208
 
class ExtACTree;
12209
 
class ExtACKeywords;
12210
 
class WinAsm;
12211
 
class WinDeclSpecs;
12212
 
class WinMemberExplSpec;
12213
 
class WinTypeKeywords;
12214
 
class PragmaOnceUnitState;
12215
 
class PragmaOnce;
12216
 
class CCExprResolve;
12217
 
class CExprResolve;
12218
 
namespace Puma {
12219
 
 
12220
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12221
 
class CT_DefaultStmt : public CT_Statement {
12222
 
#line 12223 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12223
 
  friend class ::WinIfExists;
12224
 
  friend class ::WinImportHandler;
12225
 
  friend class ::WinMacros;
12226
 
  friend class ::CMatchSyntax;
12227
 
  friend class ::ExtGnu;
12228
 
  friend class ::ExtAC;
12229
 
  friend class ::ExtACBuilderCoupling;
12230
 
  friend class ::ExtACSyntaxCoupling;
12231
 
  friend class ::ExtACTree;
12232
 
  friend class ::ExtACKeywords;
12233
 
  friend class ::WinAsm;
12234
 
  friend class ::WinDeclSpecs;
12235
 
  friend class ::WinMemberExplSpec;
12236
 
  friend class ::WinTypeKeywords;
12237
 
  friend class ::PragmaOnceUnitState;
12238
 
  friend class ::PragmaOnce;
12239
 
  friend class ::CCExprResolve;
12240
 
  friend class ::CExprResolve;
12241
 
 
12242
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12243
 
 
12244
 
  CTree *sons[3]; // keyword, colon, stmt
12245
 
 
12246
 
public:
12247
 
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
12248
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
12249
 
  }
12250
 
  static const char *NodeId ();
12251
 
  const char *NodeName () const { return NodeId (); }
12252
 
  int Sons () const { return 3; }
12253
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12254
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
12255
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12256
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12257
 
  }
12258
 
};
12259
 
 
12260
 
 
12261
 
#line 12262 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12262
 
} // closed Puma
12263
 
class WinIfExists;
12264
 
class WinImportHandler;
12265
 
class WinMacros;
12266
 
class CMatchSyntax;
12267
 
class ExtGnu;
12268
 
class ExtAC;
12269
 
class ExtACBuilderCoupling;
12270
 
class ExtACSyntaxCoupling;
12271
 
class ExtACTree;
12272
 
class ExtACKeywords;
12273
 
class WinAsm;
12274
 
class WinDeclSpecs;
12275
 
class WinMemberExplSpec;
12276
 
class WinTypeKeywords;
12277
 
class PragmaOnceUnitState;
12278
 
class PragmaOnce;
12279
 
class CCExprResolve;
12280
 
class CExprResolve;
12281
 
namespace Puma {
12282
 
 
12283
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12284
 
class CT_TryStmt : public CT_Statement {
12285
 
#line 12286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12286
 
  friend class ::WinIfExists;
12287
 
  friend class ::WinImportHandler;
12288
 
  friend class ::WinMacros;
12289
 
  friend class ::CMatchSyntax;
12290
 
  friend class ::ExtGnu;
12291
 
  friend class ::ExtAC;
12292
 
  friend class ::ExtACBuilderCoupling;
12293
 
  friend class ::ExtACSyntaxCoupling;
12294
 
  friend class ::ExtACTree;
12295
 
  friend class ::ExtACKeywords;
12296
 
  friend class ::WinAsm;
12297
 
  friend class ::WinDeclSpecs;
12298
 
  friend class ::WinMemberExplSpec;
12299
 
  friend class ::WinTypeKeywords;
12300
 
  friend class ::PragmaOnceUnitState;
12301
 
  friend class ::PragmaOnce;
12302
 
  friend class ::CCExprResolve;
12303
 
  friend class ::CExprResolve;
12304
 
 
12305
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12306
 
 
12307
 
  CTree *sons[3]; // try, stmt, handlers
12308
 
 
12309
 
public:
12310
 
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
12311
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
12312
 
  }
12313
 
  static const char *NodeId ();
12314
 
  const char *NodeName () const { return NodeId (); }
12315
 
  int Sons () const { return 3; }
12316
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12317
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
12318
 
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
12319
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12320
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12321
 
  }
12322
 
};
12323
 
 
12324
 
 
12325
 
#line 12326 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12326
 
} // closed Puma
12327
 
class WinIfExists;
12328
 
class WinImportHandler;
12329
 
class WinMacros;
12330
 
class CMatchSyntax;
12331
 
class ExtGnu;
12332
 
class ExtAC;
12333
 
class ExtACBuilderCoupling;
12334
 
class ExtACSyntaxCoupling;
12335
 
class ExtACTree;
12336
 
class ExtACKeywords;
12337
 
class WinAsm;
12338
 
class WinDeclSpecs;
12339
 
class WinMemberExplSpec;
12340
 
class WinTypeKeywords;
12341
 
class PragmaOnceUnitState;
12342
 
class PragmaOnce;
12343
 
class CCExprResolve;
12344
 
class CExprResolve;
12345
 
namespace Puma {
12346
 
 
12347
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12348
 
class CT_CaseStmt : public CT_Statement {
12349
 
#line 12350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12350
 
  friend class ::WinIfExists;
12351
 
  friend class ::WinImportHandler;
12352
 
  friend class ::WinMacros;
12353
 
  friend class ::CMatchSyntax;
12354
 
  friend class ::ExtGnu;
12355
 
  friend class ::ExtAC;
12356
 
  friend class ::ExtACBuilderCoupling;
12357
 
  friend class ::ExtACSyntaxCoupling;
12358
 
  friend class ::ExtACTree;
12359
 
  friend class ::ExtACKeywords;
12360
 
  friend class ::WinAsm;
12361
 
  friend class ::WinDeclSpecs;
12362
 
  friend class ::WinMemberExplSpec;
12363
 
  friend class ::WinTypeKeywords;
12364
 
  friend class ::PragmaOnceUnitState;
12365
 
  friend class ::PragmaOnce;
12366
 
  friend class ::CCExprResolve;
12367
 
  friend class ::CExprResolve;
12368
 
 
12369
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12370
 
 
12371
 
  CTree *sons[4]; // keyword, expr, colon, stmt
12372
 
 
12373
 
public:
12374
 
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
12375
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
12376
 
  }
12377
 
  static const char *NodeId ();
12378
 
  const char *NodeName () const { return NodeId (); }
12379
 
  int Sons () const { return 4; }
12380
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
12381
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
12382
 
  CTree *Expr () const { return sons[1]; }
12383
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12384
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
12385
 
  }
12386
 
};
12387
 
 
12388
 
 
12389
 
#line 12390 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12390
 
} // closed Puma
12391
 
class WinIfExists;
12392
 
class WinImportHandler;
12393
 
class WinMacros;
12394
 
class CMatchSyntax;
12395
 
class ExtGnu;
12396
 
class ExtAC;
12397
 
class ExtACBuilderCoupling;
12398
 
class ExtACSyntaxCoupling;
12399
 
class ExtACTree;
12400
 
class ExtACKeywords;
12401
 
class WinAsm;
12402
 
class WinDeclSpecs;
12403
 
class WinMemberExplSpec;
12404
 
class WinTypeKeywords;
12405
 
class PragmaOnceUnitState;
12406
 
class PragmaOnce;
12407
 
class CCExprResolve;
12408
 
class CExprResolve;
12409
 
namespace Puma {
12410
 
 
12411
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12412
 
class CT_ExprStmt : public CT_Statement {
12413
 
#line 12414 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12414
 
  friend class ::WinIfExists;
12415
 
  friend class ::WinImportHandler;
12416
 
  friend class ::WinMacros;
12417
 
  friend class ::CMatchSyntax;
12418
 
  friend class ::ExtGnu;
12419
 
  friend class ::ExtAC;
12420
 
  friend class ::ExtACBuilderCoupling;
12421
 
  friend class ::ExtACSyntaxCoupling;
12422
 
  friend class ::ExtACTree;
12423
 
  friend class ::ExtACKeywords;
12424
 
  friend class ::WinAsm;
12425
 
  friend class ::WinDeclSpecs;
12426
 
  friend class ::WinMemberExplSpec;
12427
 
  friend class ::WinTypeKeywords;
12428
 
  friend class ::PragmaOnceUnitState;
12429
 
  friend class ::PragmaOnce;
12430
 
  friend class ::CCExprResolve;
12431
 
  friend class ::CExprResolve;
12432
 
 
12433
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12434
 
 
12435
 
  CTree *sons[2]; // expr, semi_colon
12436
 
 
12437
 
public:
12438
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
12439
 
  static const char *NodeId ();
12440
 
  const char *NodeName () const { return NodeId (); }
12441
 
  int Sons () const { return CTree::Sons (sons, 2); }
12442
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
12443
 
  CTree *Expr () const { return sons[0]; }
12444
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12445
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
12446
 
  }
12447
 
};
12448
 
 
12449
 
 
12450
 
#line 12451 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12451
 
} // closed Puma
12452
 
class WinIfExists;
12453
 
class WinImportHandler;
12454
 
class WinMacros;
12455
 
class CMatchSyntax;
12456
 
class ExtGnu;
12457
 
class ExtAC;
12458
 
class ExtACBuilderCoupling;
12459
 
class ExtACSyntaxCoupling;
12460
 
class ExtACTree;
12461
 
class ExtACKeywords;
12462
 
class WinAsm;
12463
 
class WinDeclSpecs;
12464
 
class WinMemberExplSpec;
12465
 
class WinTypeKeywords;
12466
 
class PragmaOnceUnitState;
12467
 
class PragmaOnce;
12468
 
class CCExprResolve;
12469
 
class CExprResolve;
12470
 
namespace Puma {
12471
 
 
12472
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12473
 
class CT_DeclStmt : public CT_Statement {
12474
 
#line 12475 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12475
 
  friend class ::WinIfExists;
12476
 
  friend class ::WinImportHandler;
12477
 
  friend class ::WinMacros;
12478
 
  friend class ::CMatchSyntax;
12479
 
  friend class ::ExtGnu;
12480
 
  friend class ::ExtAC;
12481
 
  friend class ::ExtACBuilderCoupling;
12482
 
  friend class ::ExtACSyntaxCoupling;
12483
 
  friend class ::ExtACTree;
12484
 
  friend class ::ExtACKeywords;
12485
 
  friend class ::WinAsm;
12486
 
  friend class ::WinDeclSpecs;
12487
 
  friend class ::WinMemberExplSpec;
12488
 
  friend class ::WinTypeKeywords;
12489
 
  friend class ::PragmaOnceUnitState;
12490
 
  friend class ::PragmaOnce;
12491
 
  friend class ::CCExprResolve;
12492
 
  friend class ::CExprResolve;
12493
 
 
12494
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12495
 
 
12496
 
  CTree *_decl;
12497
 
 
12498
 
public:
12499
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
12500
 
  static const char *NodeId ();
12501
 
  const char *NodeName () const { return NodeId (); }
12502
 
  int Sons () const { return 1; }
12503
 
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
12504
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
12505
 
   { if (old_son == _decl) _decl = new_son; }
12506
 
};
12507
 
 
12508
 
 
12509
 
#line 12510 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12510
 
} // closed Puma
12511
 
class WinIfExists;
12512
 
class WinImportHandler;
12513
 
class WinMacros;
12514
 
class CMatchSyntax;
12515
 
class ExtGnu;
12516
 
class ExtAC;
12517
 
class ExtACBuilderCoupling;
12518
 
class ExtACSyntaxCoupling;
12519
 
class ExtACTree;
12520
 
class ExtACKeywords;
12521
 
class WinAsm;
12522
 
class WinDeclSpecs;
12523
 
class WinMemberExplSpec;
12524
 
class WinTypeKeywords;
12525
 
class PragmaOnceUnitState;
12526
 
class PragmaOnce;
12527
 
class CCExprResolve;
12528
 
class CExprResolve;
12529
 
namespace Puma {
12530
 
 
12531
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12532
 
class CT_SwitchStmt : public CT_Statement, public CSemScope {
12533
 
#line 12534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12534
 
  friend class ::WinIfExists;
12535
 
  friend class ::WinImportHandler;
12536
 
  friend class ::WinMacros;
12537
 
  friend class ::CMatchSyntax;
12538
 
  friend class ::ExtGnu;
12539
 
  friend class ::ExtAC;
12540
 
  friend class ::ExtACBuilderCoupling;
12541
 
  friend class ::ExtACSyntaxCoupling;
12542
 
  friend class ::ExtACTree;
12543
 
  friend class ::ExtACKeywords;
12544
 
  friend class ::WinAsm;
12545
 
  friend class ::WinDeclSpecs;
12546
 
  friend class ::WinMemberExplSpec;
12547
 
  friend class ::WinTypeKeywords;
12548
 
  friend class ::PragmaOnceUnitState;
12549
 
  friend class ::PragmaOnce;
12550
 
  friend class ::CCExprResolve;
12551
 
  friend class ::CExprResolve;
12552
 
 
12553
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12554
 
 
12555
 
  CTree *sons[5]; // keyword, open, cond, close, stmt
12556
 
 
12557
 
public:
12558
 
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
12559
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
12560
 
  }
12561
 
  static const char *NodeId ();
12562
 
  const char *NodeName () const { return NodeId (); }
12563
 
  int Sons () const { return 5; }
12564
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
12565
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
12566
 
  CTree *Condition () const { return sons[2]; }
12567
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12568
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
12569
 
  }
12570
 
};
12571
 
 
12572
 
 
12573
 
#line 12574 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12574
 
} // closed Puma
12575
 
class WinIfExists;
12576
 
class WinImportHandler;
12577
 
class WinMacros;
12578
 
class CMatchSyntax;
12579
 
class ExtGnu;
12580
 
class ExtAC;
12581
 
class ExtACBuilderCoupling;
12582
 
class ExtACSyntaxCoupling;
12583
 
class ExtACTree;
12584
 
class ExtACKeywords;
12585
 
class WinAsm;
12586
 
class WinDeclSpecs;
12587
 
class WinMemberExplSpec;
12588
 
class WinTypeKeywords;
12589
 
class PragmaOnceUnitState;
12590
 
class PragmaOnce;
12591
 
class CCExprResolve;
12592
 
class CExprResolve;
12593
 
namespace Puma {
12594
 
 
12595
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12596
 
class CT_IfStmt : public CT_Statement, public CSemScope {
12597
 
#line 12598 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12598
 
  friend class ::WinIfExists;
12599
 
  friend class ::WinImportHandler;
12600
 
  friend class ::WinMacros;
12601
 
  friend class ::CMatchSyntax;
12602
 
  friend class ::ExtGnu;
12603
 
  friend class ::ExtAC;
12604
 
  friend class ::ExtACBuilderCoupling;
12605
 
  friend class ::ExtACSyntaxCoupling;
12606
 
  friend class ::ExtACTree;
12607
 
  friend class ::ExtACKeywords;
12608
 
  friend class ::WinAsm;
12609
 
  friend class ::WinDeclSpecs;
12610
 
  friend class ::WinMemberExplSpec;
12611
 
  friend class ::WinTypeKeywords;
12612
 
  friend class ::PragmaOnceUnitState;
12613
 
  friend class ::PragmaOnce;
12614
 
  friend class ::CCExprResolve;
12615
 
  friend class ::CExprResolve;
12616
 
 
12617
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12618
 
 
12619
 
  CTree *sons[5]; // keyword, open, cond, close, stmt
12620
 
 
12621
 
public:
12622
 
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
12623
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
12624
 
  }
12625
 
  static const char *NodeId ();
12626
 
  const char *NodeName () const { return NodeId (); }
12627
 
  int Sons () const { return 5; }
12628
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
12629
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
12630
 
  CTree *Condition () const { return sons[2]; }
12631
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12632
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
12633
 
  }
12634
 
};
12635
 
 
12636
 
 
12637
 
#line 12638 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12638
 
} // closed Puma
12639
 
class WinIfExists;
12640
 
class WinImportHandler;
12641
 
class WinMacros;
12642
 
class CMatchSyntax;
12643
 
class ExtGnu;
12644
 
class ExtAC;
12645
 
class ExtACBuilderCoupling;
12646
 
class ExtACSyntaxCoupling;
12647
 
class ExtACTree;
12648
 
class ExtACKeywords;
12649
 
class WinAsm;
12650
 
class WinDeclSpecs;
12651
 
class WinMemberExplSpec;
12652
 
class WinTypeKeywords;
12653
 
class PragmaOnceUnitState;
12654
 
class PragmaOnce;
12655
 
class CCExprResolve;
12656
 
class CExprResolve;
12657
 
namespace Puma {
12658
 
 
12659
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12660
 
class CT_IfElseStmt : public CT_Statement, public CSemScope {
12661
 
#line 12662 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12662
 
  friend class ::WinIfExists;
12663
 
  friend class ::WinImportHandler;
12664
 
  friend class ::WinMacros;
12665
 
  friend class ::CMatchSyntax;
12666
 
  friend class ::ExtGnu;
12667
 
  friend class ::ExtAC;
12668
 
  friend class ::ExtACBuilderCoupling;
12669
 
  friend class ::ExtACSyntaxCoupling;
12670
 
  friend class ::ExtACTree;
12671
 
  friend class ::ExtACKeywords;
12672
 
  friend class ::WinAsm;
12673
 
  friend class ::WinDeclSpecs;
12674
 
  friend class ::WinMemberExplSpec;
12675
 
  friend class ::WinTypeKeywords;
12676
 
  friend class ::PragmaOnceUnitState;
12677
 
  friend class ::PragmaOnce;
12678
 
  friend class ::CCExprResolve;
12679
 
  friend class ::CExprResolve;
12680
 
 
12681
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12682
 
 
12683
 
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
12684
 
 
12685
 
public:
12686
 
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
12687
 
                 CTree *is, CTree *e, CTree *es) {
12688
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
12689
 
    sons[5] = e; sons[6] = es; 
12690
 
  }
12691
 
  static const char *NodeId ();
12692
 
  const char *NodeName () const { return NodeId (); }
12693
 
  int Sons () const { return 7; }
12694
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
12695
 
  CTree *Condition () const { return sons[2]; }
12696
 
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
12697
 
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
12698
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12699
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
12700
 
  }
12701
 
};
12702
 
 
12703
 
 
12704
 
#line 12705 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12705
 
} // closed Puma
12706
 
class WinIfExists;
12707
 
class WinImportHandler;
12708
 
class WinMacros;
12709
 
class CMatchSyntax;
12710
 
class ExtGnu;
12711
 
class ExtAC;
12712
 
class ExtACBuilderCoupling;
12713
 
class ExtACSyntaxCoupling;
12714
 
class ExtACTree;
12715
 
class ExtACKeywords;
12716
 
class WinAsm;
12717
 
class WinDeclSpecs;
12718
 
class WinMemberExplSpec;
12719
 
class WinTypeKeywords;
12720
 
class PragmaOnceUnitState;
12721
 
class PragmaOnce;
12722
 
class CCExprResolve;
12723
 
class CExprResolve;
12724
 
namespace Puma {
12725
 
 
12726
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12727
 
class CT_BreakStmt : public CT_Statement {
12728
 
#line 12729 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12729
 
  friend class ::WinIfExists;
12730
 
  friend class ::WinImportHandler;
12731
 
  friend class ::WinMacros;
12732
 
  friend class ::CMatchSyntax;
12733
 
  friend class ::ExtGnu;
12734
 
  friend class ::ExtAC;
12735
 
  friend class ::ExtACBuilderCoupling;
12736
 
  friend class ::ExtACSyntaxCoupling;
12737
 
  friend class ::ExtACTree;
12738
 
  friend class ::ExtACKeywords;
12739
 
  friend class ::WinAsm;
12740
 
  friend class ::WinDeclSpecs;
12741
 
  friend class ::WinMemberExplSpec;
12742
 
  friend class ::WinTypeKeywords;
12743
 
  friend class ::PragmaOnceUnitState;
12744
 
  friend class ::PragmaOnce;
12745
 
  friend class ::CCExprResolve;
12746
 
  friend class ::CExprResolve;
12747
 
 
12748
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12749
 
 
12750
 
  CTree *sons[2]; // key, semi_colon
12751
 
 
12752
 
public:
12753
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
12754
 
  static const char *NodeId ();
12755
 
  const char *NodeName () const { return NodeId (); }
12756
 
  int Sons () const { return 2; }
12757
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
12758
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12759
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
12760
 
  }
12761
 
};
12762
 
 
12763
 
 
12764
 
#line 12765 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12765
 
} // closed Puma
12766
 
class WinIfExists;
12767
 
class WinImportHandler;
12768
 
class WinMacros;
12769
 
class CMatchSyntax;
12770
 
class ExtGnu;
12771
 
class ExtAC;
12772
 
class ExtACBuilderCoupling;
12773
 
class ExtACSyntaxCoupling;
12774
 
class ExtACTree;
12775
 
class ExtACKeywords;
12776
 
class WinAsm;
12777
 
class WinDeclSpecs;
12778
 
class WinMemberExplSpec;
12779
 
class WinTypeKeywords;
12780
 
class PragmaOnceUnitState;
12781
 
class PragmaOnce;
12782
 
class CCExprResolve;
12783
 
class CExprResolve;
12784
 
namespace Puma {
12785
 
 
12786
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12787
 
class CT_ContinueStmt : public CT_Statement {
12788
 
#line 12789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12789
 
  friend class ::WinIfExists;
12790
 
  friend class ::WinImportHandler;
12791
 
  friend class ::WinMacros;
12792
 
  friend class ::CMatchSyntax;
12793
 
  friend class ::ExtGnu;
12794
 
  friend class ::ExtAC;
12795
 
  friend class ::ExtACBuilderCoupling;
12796
 
  friend class ::ExtACSyntaxCoupling;
12797
 
  friend class ::ExtACTree;
12798
 
  friend class ::ExtACKeywords;
12799
 
  friend class ::WinAsm;
12800
 
  friend class ::WinDeclSpecs;
12801
 
  friend class ::WinMemberExplSpec;
12802
 
  friend class ::WinTypeKeywords;
12803
 
  friend class ::PragmaOnceUnitState;
12804
 
  friend class ::PragmaOnce;
12805
 
  friend class ::CCExprResolve;
12806
 
  friend class ::CExprResolve;
12807
 
 
12808
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12809
 
 
12810
 
  CTree *sons[2]; // key, semi_colon
12811
 
 
12812
 
public:
12813
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
12814
 
  static const char *NodeId ();
12815
 
  const char *NodeName () const { return NodeId (); }
12816
 
  int Sons () const { return 2; }
12817
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
12818
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12819
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
12820
 
  }
12821
 
};
12822
 
 
12823
 
 
12824
 
#line 12825 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12825
 
} // closed Puma
12826
 
class WinIfExists;
12827
 
class WinImportHandler;
12828
 
class WinMacros;
12829
 
class CMatchSyntax;
12830
 
class ExtGnu;
12831
 
class ExtAC;
12832
 
class ExtACBuilderCoupling;
12833
 
class ExtACSyntaxCoupling;
12834
 
class ExtACTree;
12835
 
class ExtACKeywords;
12836
 
class WinAsm;
12837
 
class WinDeclSpecs;
12838
 
class WinMemberExplSpec;
12839
 
class WinTypeKeywords;
12840
 
class PragmaOnceUnitState;
12841
 
class PragmaOnce;
12842
 
class CCExprResolve;
12843
 
class CExprResolve;
12844
 
namespace Puma {
12845
 
 
12846
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12847
 
class CT_GotoStmt : public CT_Statement {
12848
 
#line 12849 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12849
 
  friend class ::WinIfExists;
12850
 
  friend class ::WinImportHandler;
12851
 
  friend class ::WinMacros;
12852
 
  friend class ::CMatchSyntax;
12853
 
  friend class ::ExtGnu;
12854
 
  friend class ::ExtAC;
12855
 
  friend class ::ExtACBuilderCoupling;
12856
 
  friend class ::ExtACSyntaxCoupling;
12857
 
  friend class ::ExtACTree;
12858
 
  friend class ::ExtACKeywords;
12859
 
  friend class ::WinAsm;
12860
 
  friend class ::WinDeclSpecs;
12861
 
  friend class ::WinMemberExplSpec;
12862
 
  friend class ::WinTypeKeywords;
12863
 
  friend class ::PragmaOnceUnitState;
12864
 
  friend class ::PragmaOnce;
12865
 
  friend class ::CCExprResolve;
12866
 
  friend class ::CExprResolve;
12867
 
 
12868
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12869
 
 
12870
 
  CTree *sons[3]; // key, label, semi_colon
12871
 
 
12872
 
public:
12873
 
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
12874
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
12875
 
  }
12876
 
  static const char *NodeId ();
12877
 
  const char *NodeName () const { return NodeId (); }
12878
 
  int Sons () const { return 3; }
12879
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12880
 
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
12881
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12882
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12883
 
  }
12884
 
};
12885
 
 
12886
 
 
12887
 
#line 12888 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12888
 
} // closed Puma
12889
 
class WinIfExists;
12890
 
class WinImportHandler;
12891
 
class WinMacros;
12892
 
class CMatchSyntax;
12893
 
class ExtGnu;
12894
 
class ExtAC;
12895
 
class ExtACBuilderCoupling;
12896
 
class ExtACSyntaxCoupling;
12897
 
class ExtACTree;
12898
 
class ExtACKeywords;
12899
 
class WinAsm;
12900
 
class WinDeclSpecs;
12901
 
class WinMemberExplSpec;
12902
 
class WinTypeKeywords;
12903
 
class PragmaOnceUnitState;
12904
 
class PragmaOnce;
12905
 
class CCExprResolve;
12906
 
class CExprResolve;
12907
 
namespace Puma {
12908
 
 
12909
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12910
 
class CT_ReturnStmt : public CT_Statement {
12911
 
#line 12912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12912
 
  friend class ::WinIfExists;
12913
 
  friend class ::WinImportHandler;
12914
 
  friend class ::WinMacros;
12915
 
  friend class ::CMatchSyntax;
12916
 
  friend class ::ExtGnu;
12917
 
  friend class ::ExtAC;
12918
 
  friend class ::ExtACBuilderCoupling;
12919
 
  friend class ::ExtACSyntaxCoupling;
12920
 
  friend class ::ExtACTree;
12921
 
  friend class ::ExtACKeywords;
12922
 
  friend class ::WinAsm;
12923
 
  friend class ::WinDeclSpecs;
12924
 
  friend class ::WinMemberExplSpec;
12925
 
  friend class ::WinTypeKeywords;
12926
 
  friend class ::PragmaOnceUnitState;
12927
 
  friend class ::PragmaOnce;
12928
 
  friend class ::CCExprResolve;
12929
 
  friend class ::CExprResolve;
12930
 
 
12931
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12932
 
 
12933
 
  CTree *sons[3]; // key, expr, semi_colon
12934
 
 
12935
 
public:
12936
 
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
12937
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
12938
 
  }
12939
 
  static const char *NodeId ();
12940
 
  const char *NodeName () const { return NodeId (); }
12941
 
  int Sons () const { return CTree::Sons (sons, 3); }
12942
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12943
 
  CTree *Expr () const { return sons[1]; }
12944
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12945
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12946
 
  }
12947
 
};
12948
 
 
12949
 
 
12950
 
#line 12951 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12951
 
} // closed Puma
12952
 
class WinIfExists;
12953
 
class WinImportHandler;
12954
 
class WinMacros;
12955
 
class CMatchSyntax;
12956
 
class ExtGnu;
12957
 
class ExtAC;
12958
 
class ExtACBuilderCoupling;
12959
 
class ExtACSyntaxCoupling;
12960
 
class ExtACTree;
12961
 
class ExtACKeywords;
12962
 
class WinAsm;
12963
 
class WinDeclSpecs;
12964
 
class WinMemberExplSpec;
12965
 
class WinTypeKeywords;
12966
 
class PragmaOnceUnitState;
12967
 
class PragmaOnce;
12968
 
class CCExprResolve;
12969
 
class CExprResolve;
12970
 
namespace Puma {
12971
 
 
12972
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12973
 
class CT_WhileStmt : public CT_Statement, public CSemScope {
12974
 
#line 12975 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
12975
 
  friend class ::WinIfExists;
12976
 
  friend class ::WinImportHandler;
12977
 
  friend class ::WinMacros;
12978
 
  friend class ::CMatchSyntax;
12979
 
  friend class ::ExtGnu;
12980
 
  friend class ::ExtAC;
12981
 
  friend class ::ExtACBuilderCoupling;
12982
 
  friend class ::ExtACSyntaxCoupling;
12983
 
  friend class ::ExtACTree;
12984
 
  friend class ::ExtACKeywords;
12985
 
  friend class ::WinAsm;
12986
 
  friend class ::WinDeclSpecs;
12987
 
  friend class ::WinMemberExplSpec;
12988
 
  friend class ::WinTypeKeywords;
12989
 
  friend class ::PragmaOnceUnitState;
12990
 
  friend class ::PragmaOnce;
12991
 
  friend class ::CCExprResolve;
12992
 
  friend class ::CExprResolve;
12993
 
 
12994
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
12995
 
 
12996
 
  CTree *sons[5]; // key, open, cond, close, stmt
12997
 
 
12998
 
public:
12999
 
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
13000
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
13001
 
  }
13002
 
  static const char *NodeId ();
13003
 
  const char *NodeName () const { return NodeId (); }
13004
 
  int Sons () const { return 5; }
13005
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
13006
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
13007
 
  CTree *Condition () const { return sons[2]; }
13008
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13009
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
13010
 
  }
13011
 
};
13012
 
 
13013
 
 
13014
 
#line 13015 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13015
 
} // closed Puma
13016
 
class WinIfExists;
13017
 
class WinImportHandler;
13018
 
class WinMacros;
13019
 
class CMatchSyntax;
13020
 
class ExtGnu;
13021
 
class ExtAC;
13022
 
class ExtACBuilderCoupling;
13023
 
class ExtACSyntaxCoupling;
13024
 
class ExtACTree;
13025
 
class ExtACKeywords;
13026
 
class WinAsm;
13027
 
class WinDeclSpecs;
13028
 
class WinMemberExplSpec;
13029
 
class WinTypeKeywords;
13030
 
class PragmaOnceUnitState;
13031
 
class PragmaOnce;
13032
 
class CCExprResolve;
13033
 
class CExprResolve;
13034
 
namespace Puma {
13035
 
 
13036
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13037
 
class CT_DoStmt : public CT_Statement {
13038
 
#line 13039 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13039
 
  friend class ::WinIfExists;
13040
 
  friend class ::WinImportHandler;
13041
 
  friend class ::WinMacros;
13042
 
  friend class ::CMatchSyntax;
13043
 
  friend class ::ExtGnu;
13044
 
  friend class ::ExtAC;
13045
 
  friend class ::ExtACBuilderCoupling;
13046
 
  friend class ::ExtACSyntaxCoupling;
13047
 
  friend class ::ExtACTree;
13048
 
  friend class ::ExtACKeywords;
13049
 
  friend class ::WinAsm;
13050
 
  friend class ::WinDeclSpecs;
13051
 
  friend class ::WinMemberExplSpec;
13052
 
  friend class ::WinTypeKeywords;
13053
 
  friend class ::PragmaOnceUnitState;
13054
 
  friend class ::PragmaOnce;
13055
 
  friend class ::CCExprResolve;
13056
 
  friend class ::CExprResolve;
13057
 
 
13058
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13059
 
 
13060
 
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
13061
 
 
13062
 
public:
13063
 
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
13064
 
             CTree *c, CTree *sc) {
13065
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
13066
 
    sons[5] = c; sons[6] = sc; 
13067
 
  }
13068
 
  static const char *NodeId ();
13069
 
  const char *NodeName () const { return NodeId (); }
13070
 
  int Sons () const { return 7; }
13071
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
13072
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
13073
 
  CTree *Expr () const { return sons[4]; }
13074
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13075
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
13076
 
  }
13077
 
};
13078
 
 
13079
 
 
13080
 
#line 13081 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13081
 
} // closed Puma
13082
 
class WinIfExists;
13083
 
class WinImportHandler;
13084
 
class WinMacros;
13085
 
class CMatchSyntax;
13086
 
class ExtGnu;
13087
 
class ExtAC;
13088
 
class ExtACBuilderCoupling;
13089
 
class ExtACSyntaxCoupling;
13090
 
class ExtACTree;
13091
 
class ExtACKeywords;
13092
 
class WinAsm;
13093
 
class WinDeclSpecs;
13094
 
class WinMemberExplSpec;
13095
 
class WinTypeKeywords;
13096
 
class PragmaOnceUnitState;
13097
 
class PragmaOnce;
13098
 
class CCExprResolve;
13099
 
class CExprResolve;
13100
 
namespace Puma {
13101
 
 
13102
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13103
 
class CT_ForStmt : public CT_Statement, public CSemScope {
13104
 
#line 13105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13105
 
  friend class ::WinIfExists;
13106
 
  friend class ::WinImportHandler;
13107
 
  friend class ::WinMacros;
13108
 
  friend class ::CMatchSyntax;
13109
 
  friend class ::ExtGnu;
13110
 
  friend class ::ExtAC;
13111
 
  friend class ::ExtACBuilderCoupling;
13112
 
  friend class ::ExtACSyntaxCoupling;
13113
 
  friend class ::ExtACTree;
13114
 
  friend class ::ExtACKeywords;
13115
 
  friend class ::WinAsm;
13116
 
  friend class ::WinDeclSpecs;
13117
 
  friend class ::WinMemberExplSpec;
13118
 
  friend class ::WinTypeKeywords;
13119
 
  friend class ::PragmaOnceUnitState;
13120
 
  friend class ::PragmaOnce;
13121
 
  friend class ::CCExprResolve;
13122
 
  friend class ::CExprResolve;
13123
 
 
13124
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13125
 
 
13126
 
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
13127
 
 
13128
 
public:
13129
 
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
13130
 
              CTree *e, CTree *c, CTree *stmt) {
13131
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
13132
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
13133
 
  }
13134
 
  static const char *NodeId ();
13135
 
  const char *NodeName () const { return NodeId (); }
13136
 
  int Sons () const { return CTree::Sons (sons, 8); }
13137
 
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
13138
 
  CTree *InitStmt () const { return sons[2]; }
13139
 
  CTree *Condition () const { return sons[3]; }
13140
 
  CTree *Expr () const { return sons[5]; }
13141
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
13142
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13143
 
    CTree::ReplaceSon (sons, 8, old_son, new_son);
13144
 
  }
13145
 
};
13146
 
 
13147
 
 
13148
 
#line 13149 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13149
 
} // closed Puma
13150
 
class WinIfExists;
13151
 
class WinImportHandler;
13152
 
class WinMacros;
13153
 
class CMatchSyntax;
13154
 
class ExtGnu;
13155
 
class ExtAC;
13156
 
class ExtACBuilderCoupling;
13157
 
class ExtACSyntaxCoupling;
13158
 
class ExtACTree;
13159
 
class ExtACKeywords;
13160
 
class WinAsm;
13161
 
class WinDeclSpecs;
13162
 
class WinMemberExplSpec;
13163
 
class WinTypeKeywords;
13164
 
class PragmaOnceUnitState;
13165
 
class PragmaOnce;
13166
 
class CCExprResolve;
13167
 
class CExprResolve;
13168
 
namespace Puma {
13169
 
 
13170
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13171
 
class CT_Condition : public CT_Decl, public CSemObject {
13172
 
#line 13173 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13173
 
  friend class ::WinIfExists;
13174
 
  friend class ::WinImportHandler;
13175
 
  friend class ::WinMacros;
13176
 
  friend class ::CMatchSyntax;
13177
 
  friend class ::ExtGnu;
13178
 
  friend class ::ExtAC;
13179
 
  friend class ::ExtACBuilderCoupling;
13180
 
  friend class ::ExtACSyntaxCoupling;
13181
 
  friend class ::ExtACTree;
13182
 
  friend class ::ExtACKeywords;
13183
 
  friend class ::WinAsm;
13184
 
  friend class ::WinDeclSpecs;
13185
 
  friend class ::WinMemberExplSpec;
13186
 
  friend class ::WinTypeKeywords;
13187
 
  friend class ::PragmaOnceUnitState;
13188
 
  friend class ::PragmaOnce;
13189
 
  friend class ::CCExprResolve;
13190
 
  friend class ::CExprResolve;
13191
 
 
13192
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13193
 
 
13194
 
  CTree *sons[3]; // declspecs, declarator, init
13195
 
 
13196
 
public:
13197
 
  CT_Condition (CTree *dsl, CTree *d) {
13198
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
13199
 
  }
13200
 
  static const char *NodeId ();
13201
 
  const char *NodeName () const { return NodeId (); }
13202
 
  int Sons () const { return CTree::Sons (sons, 3); }
13203
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
13204
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
13205
 
  CTree *Declarator () const { return sons[1]; }
13206
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
13207
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
13208
 
  void Initializer (CTree *i) { sons[2] = i; }
13209
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13210
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
13211
 
  }
13212
 
};
13213
 
 
13214
 
/*****************************************************************************/
13215
 
/*                                                                           */
13216
 
/*                              Classes                                      */
13217
 
/*                                                                           */
13218
 
/*****************************************************************************/
13219
 
 
13220
 
 
13221
 
#line 13222 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13222
 
} // closed Puma
13223
 
class WinIfExists;
13224
 
class WinImportHandler;
13225
 
class WinMacros;
13226
 
class CMatchSyntax;
13227
 
class ExtGnu;
13228
 
class ExtAC;
13229
 
class ExtACBuilderCoupling;
13230
 
class ExtACSyntaxCoupling;
13231
 
class ExtACTree;
13232
 
class ExtACKeywords;
13233
 
class WinAsm;
13234
 
class WinDeclSpecs;
13235
 
class WinMemberExplSpec;
13236
 
class WinTypeKeywords;
13237
 
class PragmaOnceUnitState;
13238
 
class PragmaOnce;
13239
 
class CCExprResolve;
13240
 
class CExprResolve;
13241
 
namespace Puma {
13242
 
 
13243
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13244
 
class CT_ClassDef : public CT_Decl, public CSemObject {
13245
 
#line 13246 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13246
 
  friend class ::WinIfExists;
13247
 
  friend class ::WinImportHandler;
13248
 
  friend class ::WinMacros;
13249
 
  friend class ::CMatchSyntax;
13250
 
  friend class ::ExtGnu;
13251
 
  friend class ::ExtAC;
13252
 
  friend class ::ExtACBuilderCoupling;
13253
 
  friend class ::ExtACSyntaxCoupling;
13254
 
  friend class ::ExtACTree;
13255
 
  friend class ::ExtACKeywords;
13256
 
  friend class ::WinAsm;
13257
 
  friend class ::WinDeclSpecs;
13258
 
  friend class ::WinMemberExplSpec;
13259
 
  friend class ::WinTypeKeywords;
13260
 
  friend class ::PragmaOnceUnitState;
13261
 
  friend class ::PragmaOnce;
13262
 
  friend class ::CCExprResolve;
13263
 
  friend class ::CExprResolve;
13264
 
 
13265
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13266
 
 
13267
 
   
13268
 
#line 13269 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13269
 
 
13270
 
  struct __ac_wrapper_sons {
13271
 
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
13272
 
    operator A& () { return _data; }
13273
 
    operator A& () const { return (A&)*(::Puma::CTree * *)_data; }
13274
 
    operator const A& () { return _data; }
13275
 
    operator const A& () const { return _data; }
13276
 
    operator void* () { return _data; }
13277
 
    operator void* () const { return (void*)_data; }
13278
 
    operator const void* () { return _data; }
13279
 
    operator const void* () const { return _data; }
13280
 
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
13281
 
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
13282
 
  } sons
13283
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13284
 
 
13285
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13286
 
; // key, name, bases, members
13287
 
  CTree *obj_decl;
13288
 
 
13289
 
public:
13290
 
  
13291
 
#line 13292 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13292
 
 
13293
 
 
13294
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
13295
 
  typedef void Result;
13296
 
  typedef ::Puma::CT_ClassDef That;
13297
 
  typedef ::Puma::CT_ClassDef Target;
13298
 
  static const int JPID = 4;
13299
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
13300
 
  struct Res {
13301
 
    typedef void Type;
13302
 
    typedef void ReferredType;
13303
 
  };
13304
 
  enum { ARGS = 3 };
13305
 
  template <int I, int DUMMY = 0> struct Arg {
13306
 
    typedef void Type;
13307
 
    typedef void ReferredType;
13308
 
  };
13309
 
  template <int DUMMY> struct Arg<0, DUMMY> {
13310
 
    typedef ::Puma::CTree * Type;
13311
 
    typedef ::Puma::CTree * ReferredType;
13312
 
  };
13313
 
  template <int DUMMY> struct Arg<1, DUMMY> {
13314
 
    typedef ::Puma::CTree * Type;
13315
 
    typedef ::Puma::CTree * ReferredType;
13316
 
  };
13317
 
  template <int DUMMY> struct Arg<2, DUMMY> {
13318
 
    typedef ::Puma::CTree * Type;
13319
 
    typedef ::Puma::CTree * ReferredType;
13320
 
  };
13321
 
 
13322
 
  That *_that;
13323
 
 
13324
 
  inline That *that() {return (That*)_that;}
13325
 
 
13326
 
};
13327
 
 
13328
 
 
13329
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13330
 
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
13331
 
#line 13332 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13332
 
{
13333
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
13334
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
13335
 
this->__exec_old_C1(arg0, arg1, arg2);
13336
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
13337
 
 
13338
 
}
13339
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
13340
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13341
 
{
13342
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
13343
 
  }
13344
 
  static const char *NodeId ();
13345
 
  const char *NodeName () const { return NodeId (); }
13346
 
  int Sons () const { return CTree::Sons (sons, 4); }
13347
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
13348
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
13349
 
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
13350
 
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
13351
 
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
13352
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
13353
 
  void Members (CTree *m) { sons[3] = m; }
13354
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
13355
 
  void ObjDecl (CTree *od) { obj_decl = od; }
13356
 
  void ReplaceSon (CTree *old_son, CTree *new_son) {
13357
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
13358
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
13359
 
  }
13360
 
   private:
13361
 
 
13362
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
13363
 
 CTree * _intro_members ;
13364
 
public :
13365
 
CTree * IntroMembers ( ) const { return _intro_members ; }
13366
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
13367
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13368
 
 
13369
 
#line 13370 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13370
 
 
13371
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
13372
 
  typedef void Result;
13373
 
  typedef ::Puma::CT_ClassDef That;
13374
 
  typedef ::Puma::CT_ClassDef Target;
13375
 
  static const int JPID = 4;
13376
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
13377
 
  struct Res {
13378
 
    typedef void Type;
13379
 
    typedef void ReferredType;
13380
 
  };
13381
 
  enum { ARGS = 1 };
13382
 
  template <int I, int DUMMY = 0> struct Arg {
13383
 
    typedef void Type;
13384
 
    typedef void ReferredType;
13385
 
  };
13386
 
  template <int DUMMY> struct Arg<0, DUMMY> {
13387
 
    typedef const ::Puma::CT_ClassDef & Type;
13388
 
    typedef const ::Puma::CT_ClassDef ReferredType;
13389
 
  };
13390
 
 
13391
 
  That *_that;
13392
 
 
13393
 
  inline That *that() {return (That*)_that;}
13394
 
 
13395
 
};
13396
 
 
13397
 
 
13398
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13399
 
 
13400
 
#line 13401 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13401
 
 
13402
 
public:
13403
 
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) {
13404
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
13405
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
13406
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
13407
 
 
13408
 
}
13409
 
 
13410
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13411
 
 
13412
 
#line 13413 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13413
 
 
13414
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
13415
 
  typedef void Result;
13416
 
  typedef ::Puma::CT_ClassDef That;
13417
 
  typedef ::Puma::CT_ClassDef Target;
13418
 
  static const int JPID = 4;
13419
 
  static const AC::JPType JPTYPE = (AC::JPType)32;
13420
 
  struct Res {
13421
 
    typedef void Type;
13422
 
    typedef void ReferredType;
13423
 
  };
13424
 
  enum { ARGS = 0 };
13425
 
  template <int I, int DUMMY = 0> struct Arg {
13426
 
    typedef void Type;
13427
 
    typedef void ReferredType;
13428
 
  };
13429
 
 
13430
 
  That *_that;
13431
 
 
13432
 
  inline That *that() {return (That*)_that;}
13433
 
 
13434
 
};
13435
 
 
13436
 
 
13437
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13438
 
 
13439
 
#line 13440 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13440
 
 
13441
 
public:
13442
 
inline ~CT_ClassDef () {
13443
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
13444
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
13445
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
13446
 
 
13447
 
}
13448
 
 
13449
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13450
 
};
13451
 
      
13452
 
 
13453
 
#line 13454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13454
 
} // closed Puma
13455
 
class WinIfExists;
13456
 
class WinImportHandler;
13457
 
class WinMacros;
13458
 
class CMatchSyntax;
13459
 
class ExtGnu;
13460
 
class ExtAC;
13461
 
class ExtACBuilderCoupling;
13462
 
class ExtACSyntaxCoupling;
13463
 
class ExtACTree;
13464
 
class ExtACKeywords;
13465
 
class WinAsm;
13466
 
class WinDeclSpecs;
13467
 
class WinMemberExplSpec;
13468
 
class WinTypeKeywords;
13469
 
class PragmaOnceUnitState;
13470
 
class PragmaOnce;
13471
 
class CCExprResolve;
13472
 
class CExprResolve;
13473
 
namespace Puma {
13474
 
 
13475
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13476
 
class CT_UnionDef : public CT_ClassDef {
13477
 
#line 13478 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13478
 
  friend class ::WinIfExists;
13479
 
  friend class ::WinImportHandler;
13480
 
  friend class ::WinMacros;
13481
 
  friend class ::CMatchSyntax;
13482
 
  friend class ::ExtGnu;
13483
 
  friend class ::ExtAC;
13484
 
  friend class ::ExtACBuilderCoupling;
13485
 
  friend class ::ExtACSyntaxCoupling;
13486
 
  friend class ::ExtACTree;
13487
 
  friend class ::ExtACKeywords;
13488
 
  friend class ::WinAsm;
13489
 
  friend class ::WinDeclSpecs;
13490
 
  friend class ::WinMemberExplSpec;
13491
 
  friend class ::WinTypeKeywords;
13492
 
  friend class ::PragmaOnceUnitState;
13493
 
  friend class ::PragmaOnce;
13494
 
  friend class ::CCExprResolve;
13495
 
  friend class ::CExprResolve;
13496
 
 
13497
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13498
 
 
13499
 
public:
13500
 
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
13501
 
  static const char *NodeId ();
13502
 
  const char *NodeName () const { return NodeId (); }
13503
 
};
13504
 
      
13505
 
 
13506
 
#line 13507 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13507
 
} // closed Puma
13508
 
class WinIfExists;
13509
 
class WinImportHandler;
13510
 
class WinMacros;
13511
 
class CMatchSyntax;
13512
 
class ExtGnu;
13513
 
class ExtAC;
13514
 
class ExtACBuilderCoupling;
13515
 
class ExtACSyntaxCoupling;
13516
 
class ExtACTree;
13517
 
class ExtACKeywords;
13518
 
class WinAsm;
13519
 
class WinDeclSpecs;
13520
 
class WinMemberExplSpec;
13521
 
class WinTypeKeywords;
13522
 
class PragmaOnceUnitState;
13523
 
class PragmaOnce;
13524
 
class CCExprResolve;
13525
 
class CExprResolve;
13526
 
namespace Puma {
13527
 
 
13528
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13529
 
class CT_MembList : public CT_DeclList, public CSemScope {
13530
 
#line 13531 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13531
 
  friend class ::WinIfExists;
13532
 
  friend class ::WinImportHandler;
13533
 
  friend class ::WinMacros;
13534
 
  friend class ::CMatchSyntax;
13535
 
  friend class ::ExtGnu;
13536
 
  friend class ::ExtAC;
13537
 
  friend class ::ExtACBuilderCoupling;
13538
 
  friend class ::ExtACSyntaxCoupling;
13539
 
  friend class ::ExtACTree;
13540
 
  friend class ::ExtACKeywords;
13541
 
  friend class ::WinAsm;
13542
 
  friend class ::WinDeclSpecs;
13543
 
  friend class ::WinMemberExplSpec;
13544
 
  friend class ::WinTypeKeywords;
13545
 
  friend class ::PragmaOnceUnitState;
13546
 
  friend class ::PragmaOnce;
13547
 
  friend class ::CCExprResolve;
13548
 
  friend class ::CExprResolve;
13549
 
 
13550
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13551
 
 
13552
 
public:
13553
 
  CT_MembList (int size = 10, int incr = 10) : 
13554
 
    CT_DeclList (size, incr) {}
13555
 
  static const char *NodeId ();
13556
 
  const char *NodeName () const { return NodeId (); }
13557
 
};
13558
 
 
13559
 
 
13560
 
#line 13561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13561
 
} // closed Puma
13562
 
class WinIfExists;
13563
 
class WinImportHandler;
13564
 
class WinMacros;
13565
 
class CMatchSyntax;
13566
 
class ExtGnu;
13567
 
class ExtAC;
13568
 
class ExtACBuilderCoupling;
13569
 
class ExtACSyntaxCoupling;
13570
 
class ExtACTree;
13571
 
class ExtACKeywords;
13572
 
class WinAsm;
13573
 
class WinDeclSpecs;
13574
 
class WinMemberExplSpec;
13575
 
class WinTypeKeywords;
13576
 
class PragmaOnceUnitState;
13577
 
class PragmaOnce;
13578
 
class CCExprResolve;
13579
 
class CExprResolve;
13580
 
namespace Puma {
13581
 
 
13582
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13583
 
class CT_MembInitList : public CT_List, public CSemScope {
13584
 
#line 13585 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13585
 
  friend class ::WinIfExists;
13586
 
  friend class ::WinImportHandler;
13587
 
  friend class ::WinMacros;
13588
 
  friend class ::CMatchSyntax;
13589
 
  friend class ::ExtGnu;
13590
 
  friend class ::ExtAC;
13591
 
  friend class ::ExtACBuilderCoupling;
13592
 
  friend class ::ExtACSyntaxCoupling;
13593
 
  friend class ::ExtACTree;
13594
 
  friend class ::ExtACKeywords;
13595
 
  friend class ::WinAsm;
13596
 
  friend class ::WinDeclSpecs;
13597
 
  friend class ::WinMemberExplSpec;
13598
 
  friend class ::WinTypeKeywords;
13599
 
  friend class ::PragmaOnceUnitState;
13600
 
  friend class ::PragmaOnce;
13601
 
  friend class ::CCExprResolve;
13602
 
  friend class ::CExprResolve;
13603
 
 
13604
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13605
 
 
13606
 
public:
13607
 
  CT_MembInitList (int size = 2) : 
13608
 
    CT_List (size, 2, CT_List::OPEN) {}
13609
 
  static const char *NodeId ();
13610
 
  const char *NodeName () const { return NodeId (); }
13611
 
};
13612
 
 
13613
 
 
13614
 
#line 13615 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13615
 
} // closed Puma
13616
 
class WinIfExists;
13617
 
class WinImportHandler;
13618
 
class WinMacros;
13619
 
class CMatchSyntax;
13620
 
class ExtGnu;
13621
 
class ExtAC;
13622
 
class ExtACBuilderCoupling;
13623
 
class ExtACSyntaxCoupling;
13624
 
class ExtACTree;
13625
 
class ExtACKeywords;
13626
 
class WinAsm;
13627
 
class WinDeclSpecs;
13628
 
class WinMemberExplSpec;
13629
 
class WinTypeKeywords;
13630
 
class PragmaOnceUnitState;
13631
 
class PragmaOnce;
13632
 
class CCExprResolve;
13633
 
class CExprResolve;
13634
 
namespace Puma {
13635
 
 
13636
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13637
 
class CT_MembInit : public CT_Expression, public CSemObject {
13638
 
#line 13639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13639
 
  friend class ::WinIfExists;
13640
 
  friend class ::WinImportHandler;
13641
 
  friend class ::WinMacros;
13642
 
  friend class ::CMatchSyntax;
13643
 
  friend class ::ExtGnu;
13644
 
  friend class ::ExtAC;
13645
 
  friend class ::ExtACBuilderCoupling;
13646
 
  friend class ::ExtACSyntaxCoupling;
13647
 
  friend class ::ExtACTree;
13648
 
  friend class ::ExtACKeywords;
13649
 
  friend class ::WinAsm;
13650
 
  friend class ::WinDeclSpecs;
13651
 
  friend class ::WinMemberExplSpec;
13652
 
  friend class ::WinTypeKeywords;
13653
 
  friend class ::PragmaOnceUnitState;
13654
 
  friend class ::PragmaOnce;
13655
 
  friend class ::CCExprResolve;
13656
 
  friend class ::CExprResolve;
13657
 
 
13658
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13659
 
 
13660
 
  CTree *sons[2]; // name, init
13661
 
 
13662
 
public:
13663
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
13664
 
  static const char *NodeId ();
13665
 
  const char *NodeName () const { return NodeId (); }
13666
 
  int Sons () const { return 2; }
13667
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
13668
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13669
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
13670
 
  }
13671
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
13672
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
13673
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
13674
 
   private:
13675
 
  typedef CT_MembInit CCExprResolveExpr;
13676
 
 
13677
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
13678
 
 public :
13679
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
13680
 
  typedef CT_MembInit CExprResolveExpr;
13681
 
 
13682
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
13683
 
 public :
13684
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
13685
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13686
 
};
13687
 
 
13688
 
 
13689
 
#line 13690 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13690
 
} // closed Puma
13691
 
class WinIfExists;
13692
 
class WinImportHandler;
13693
 
class WinMacros;
13694
 
class CMatchSyntax;
13695
 
class ExtGnu;
13696
 
class ExtAC;
13697
 
class ExtACBuilderCoupling;
13698
 
class ExtACSyntaxCoupling;
13699
 
class ExtACTree;
13700
 
class ExtACKeywords;
13701
 
class WinAsm;
13702
 
class WinDeclSpecs;
13703
 
class WinMemberExplSpec;
13704
 
class WinTypeKeywords;
13705
 
class PragmaOnceUnitState;
13706
 
class PragmaOnce;
13707
 
class CCExprResolve;
13708
 
class CExprResolve;
13709
 
namespace Puma {
13710
 
 
13711
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13712
 
class CT_BaseSpecList : public CT_List {
13713
 
#line 13714 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13714
 
  friend class ::WinIfExists;
13715
 
  friend class ::WinImportHandler;
13716
 
  friend class ::WinMacros;
13717
 
  friend class ::CMatchSyntax;
13718
 
  friend class ::ExtGnu;
13719
 
  friend class ::ExtAC;
13720
 
  friend class ::ExtACBuilderCoupling;
13721
 
  friend class ::ExtACSyntaxCoupling;
13722
 
  friend class ::ExtACTree;
13723
 
  friend class ::ExtACKeywords;
13724
 
  friend class ::WinAsm;
13725
 
  friend class ::WinDeclSpecs;
13726
 
  friend class ::WinMemberExplSpec;
13727
 
  friend class ::WinTypeKeywords;
13728
 
  friend class ::PragmaOnceUnitState;
13729
 
  friend class ::PragmaOnce;
13730
 
  friend class ::CCExprResolve;
13731
 
  friend class ::CExprResolve;
13732
 
 
13733
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13734
 
 
13735
 
public:
13736
 
  CT_BaseSpecList (int size = 2) : 
13737
 
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
13738
 
  static const char *NodeId ();
13739
 
  const char *NodeName () const { return NodeId (); }
13740
 
};
13741
 
 
13742
 
 
13743
 
#line 13744 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13744
 
} // closed Puma
13745
 
class WinIfExists;
13746
 
class WinImportHandler;
13747
 
class WinMacros;
13748
 
class CMatchSyntax;
13749
 
class ExtGnu;
13750
 
class ExtAC;
13751
 
class ExtACBuilderCoupling;
13752
 
class ExtACSyntaxCoupling;
13753
 
class ExtACTree;
13754
 
class ExtACKeywords;
13755
 
class WinAsm;
13756
 
class WinDeclSpecs;
13757
 
class WinMemberExplSpec;
13758
 
class WinTypeKeywords;
13759
 
class PragmaOnceUnitState;
13760
 
class PragmaOnce;
13761
 
class CCExprResolve;
13762
 
class CExprResolve;
13763
 
namespace Puma {
13764
 
 
13765
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13766
 
class CT_AccessSpec : public CTree {
13767
 
#line 13768 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13768
 
  friend class ::WinIfExists;
13769
 
  friend class ::WinImportHandler;
13770
 
  friend class ::WinMacros;
13771
 
  friend class ::CMatchSyntax;
13772
 
  friend class ::ExtGnu;
13773
 
  friend class ::ExtAC;
13774
 
  friend class ::ExtACBuilderCoupling;
13775
 
  friend class ::ExtACSyntaxCoupling;
13776
 
  friend class ::ExtACTree;
13777
 
  friend class ::ExtACKeywords;
13778
 
  friend class ::WinAsm;
13779
 
  friend class ::WinDeclSpecs;
13780
 
  friend class ::WinMemberExplSpec;
13781
 
  friend class ::WinTypeKeywords;
13782
 
  friend class ::PragmaOnceUnitState;
13783
 
  friend class ::PragmaOnce;
13784
 
  friend class ::CCExprResolve;
13785
 
  friend class ::CExprResolve;
13786
 
 
13787
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13788
 
 
13789
 
  CTree *sons[2]; // access, colon
13790
 
 
13791
 
public:
13792
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
13793
 
  static const char *NodeId ();
13794
 
  const char *NodeName () const { return NodeId (); }
13795
 
  int Sons () const { return 2; }
13796
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
13797
 
  int Access () const { return sons[0]->token ()->type (); }
13798
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13799
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
13800
 
  }
13801
 
};
13802
 
 
13803
 
 
13804
 
#line 13805 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13805
 
} // closed Puma
13806
 
class WinIfExists;
13807
 
class WinImportHandler;
13808
 
class WinMacros;
13809
 
class CMatchSyntax;
13810
 
class ExtGnu;
13811
 
class ExtAC;
13812
 
class ExtACBuilderCoupling;
13813
 
class ExtACSyntaxCoupling;
13814
 
class ExtACTree;
13815
 
class ExtACKeywords;
13816
 
class WinAsm;
13817
 
class WinDeclSpecs;
13818
 
class WinMemberExplSpec;
13819
 
class WinTypeKeywords;
13820
 
class PragmaOnceUnitState;
13821
 
class PragmaOnce;
13822
 
class CCExprResolve;
13823
 
class CExprResolve;
13824
 
namespace Puma {
13825
 
 
13826
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13827
 
class CT_BaseSpec : public CTree {
13828
 
#line 13829 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13829
 
  friend class ::WinIfExists;
13830
 
  friend class ::WinImportHandler;
13831
 
  friend class ::WinMacros;
13832
 
  friend class ::CMatchSyntax;
13833
 
  friend class ::ExtGnu;
13834
 
  friend class ::ExtAC;
13835
 
  friend class ::ExtACBuilderCoupling;
13836
 
  friend class ::ExtACSyntaxCoupling;
13837
 
  friend class ::ExtACTree;
13838
 
  friend class ::ExtACKeywords;
13839
 
  friend class ::WinAsm;
13840
 
  friend class ::WinDeclSpecs;
13841
 
  friend class ::WinMemberExplSpec;
13842
 
  friend class ::WinTypeKeywords;
13843
 
  friend class ::PragmaOnceUnitState;
13844
 
  friend class ::PragmaOnce;
13845
 
  friend class ::CCExprResolve;
13846
 
  friend class ::CExprResolve;
13847
 
 
13848
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13849
 
 
13850
 
  CTree *sons[3]; // virtual, access, name
13851
 
 
13852
 
public:
13853
 
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
13854
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
13855
 
  }
13856
 
  static const char *NodeId ();
13857
 
  const char *NodeName () const { return NodeId (); }
13858
 
  int Sons () const { return CTree::Sons (sons, 3); }
13859
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
13860
 
  int Access () const { return sons[1]->token ()->type (); }
13861
 
  CTree *AccessSpec () const { return sons[1]; }
13862
 
  CTree *Virtual () const { return sons[0]; }
13863
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
13864
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13865
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
13866
 
  }
13867
 
};
13868
 
 
13869
 
 
13870
 
#line 13871 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13871
 
} // closed Puma
13872
 
class WinIfExists;
13873
 
class WinImportHandler;
13874
 
class WinMacros;
13875
 
class CMatchSyntax;
13876
 
class ExtGnu;
13877
 
class ExtAC;
13878
 
class ExtACBuilderCoupling;
13879
 
class ExtACSyntaxCoupling;
13880
 
class ExtACTree;
13881
 
class ExtACKeywords;
13882
 
class WinAsm;
13883
 
class WinDeclSpecs;
13884
 
class WinMemberExplSpec;
13885
 
class WinTypeKeywords;
13886
 
class PragmaOnceUnitState;
13887
 
class PragmaOnce;
13888
 
class CCExprResolve;
13889
 
class CExprResolve;
13890
 
namespace Puma {
13891
 
 
13892
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13893
 
class CT_AccessDecl : public CT_Decl {
13894
 
#line 13895 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13895
 
  friend class ::WinIfExists;
13896
 
  friend class ::WinImportHandler;
13897
 
  friend class ::WinMacros;
13898
 
  friend class ::CMatchSyntax;
13899
 
  friend class ::ExtGnu;
13900
 
  friend class ::ExtAC;
13901
 
  friend class ::ExtACBuilderCoupling;
13902
 
  friend class ::ExtACSyntaxCoupling;
13903
 
  friend class ::ExtACTree;
13904
 
  friend class ::ExtACKeywords;
13905
 
  friend class ::WinAsm;
13906
 
  friend class ::WinDeclSpecs;
13907
 
  friend class ::WinMemberExplSpec;
13908
 
  friend class ::WinTypeKeywords;
13909
 
  friend class ::PragmaOnceUnitState;
13910
 
  friend class ::PragmaOnce;
13911
 
  friend class ::CCExprResolve;
13912
 
  friend class ::CExprResolve;
13913
 
 
13914
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13915
 
 
13916
 
  CTree *sons[2]; // name, semi_colon
13917
 
 
13918
 
public:
13919
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
13920
 
  static const char *NodeId ();
13921
 
  const char *NodeName () const { return NodeId (); }
13922
 
  int Sons () const { return 2; }
13923
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
13924
 
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
13925
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13926
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
13927
 
  }
13928
 
};
13929
 
 
13930
 
 
13931
 
#line 13932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13932
 
} // closed Puma
13933
 
class WinIfExists;
13934
 
class WinImportHandler;
13935
 
class WinMacros;
13936
 
class CMatchSyntax;
13937
 
class ExtGnu;
13938
 
class ExtAC;
13939
 
class ExtACBuilderCoupling;
13940
 
class ExtACSyntaxCoupling;
13941
 
class ExtACTree;
13942
 
class ExtACKeywords;
13943
 
class WinAsm;
13944
 
class WinDeclSpecs;
13945
 
class WinMemberExplSpec;
13946
 
class WinTypeKeywords;
13947
 
class PragmaOnceUnitState;
13948
 
class PragmaOnce;
13949
 
class CCExprResolve;
13950
 
class CExprResolve;
13951
 
namespace Puma {
13952
 
 
13953
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13954
 
class CT_UsingDecl : public CT_AccessDecl {
13955
 
#line 13956 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
13956
 
  friend class ::WinIfExists;
13957
 
  friend class ::WinImportHandler;
13958
 
  friend class ::WinMacros;
13959
 
  friend class ::CMatchSyntax;
13960
 
  friend class ::ExtGnu;
13961
 
  friend class ::ExtAC;
13962
 
  friend class ::ExtACBuilderCoupling;
13963
 
  friend class ::ExtACSyntaxCoupling;
13964
 
  friend class ::ExtACTree;
13965
 
  friend class ::ExtACKeywords;
13966
 
  friend class ::WinAsm;
13967
 
  friend class ::WinDeclSpecs;
13968
 
  friend class ::WinMemberExplSpec;
13969
 
  friend class ::WinTypeKeywords;
13970
 
  friend class ::PragmaOnceUnitState;
13971
 
  friend class ::PragmaOnce;
13972
 
  friend class ::CCExprResolve;
13973
 
  friend class ::CExprResolve;
13974
 
 
13975
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13976
 
 
13977
 
  CTree *sons[2]; // using, typename
13978
 
 
13979
 
public:
13980
 
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
13981
 
    sons[0] = u; sons[1] = 0; 
13982
 
  }
13983
 
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
13984
 
    sons[0] = u; sons[1] = t; 
13985
 
  }
13986
 
  static const char *NodeId ();
13987
 
  const char *NodeName () const { return NodeId (); }
13988
 
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
13989
 
  CTree *Son (int n) const {
13990
 
    int num = CTree::Sons (sons, 2);
13991
 
    CTree *result = CTree::Son (sons, 2, n);
13992
 
    return result ? result : CT_AccessDecl::Son (n-num);
13993
 
  }
13994
 
  CTree *Typename () const { return sons[1]; }
13995
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13996
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
13997
 
    CT_AccessDecl::ReplaceSon (old_son, new_son);
13998
 
  }
13999
 
};
14000
 
 
14001
 
/*****************************************************************************/
14002
 
/*                                                                           */
14003
 
/*                              Wildcards                                    */
14004
 
/*                                                                           */
14005
 
/*****************************************************************************/
14006
 
 
14007
 
 
14008
 
#line 14009 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
14009
 
} // closed Puma
14010
 
class WinIfExists;
14011
 
class WinImportHandler;
14012
 
class WinMacros;
14013
 
class CMatchSyntax;
14014
 
class ExtGnu;
14015
 
class ExtAC;
14016
 
class ExtACBuilderCoupling;
14017
 
class ExtACSyntaxCoupling;
14018
 
class ExtACTree;
14019
 
class ExtACKeywords;
14020
 
class WinAsm;
14021
 
class WinDeclSpecs;
14022
 
class WinMemberExplSpec;
14023
 
class WinTypeKeywords;
14024
 
class PragmaOnceUnitState;
14025
 
class PragmaOnce;
14026
 
class CCExprResolve;
14027
 
class CExprResolve;
14028
 
namespace Puma {
14029
 
 
14030
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
14031
 
class CT_Any : public CTree {
14032
 
#line 14033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
14033
 
  friend class ::WinIfExists;
14034
 
  friend class ::WinImportHandler;
14035
 
  friend class ::WinMacros;
14036
 
  friend class ::CMatchSyntax;
14037
 
  friend class ::ExtGnu;
14038
 
  friend class ::ExtAC;
14039
 
  friend class ::ExtACBuilderCoupling;
14040
 
  friend class ::ExtACSyntaxCoupling;
14041
 
  friend class ::ExtACTree;
14042
 
  friend class ::ExtACKeywords;
14043
 
  friend class ::WinAsm;
14044
 
  friend class ::WinDeclSpecs;
14045
 
  friend class ::WinMemberExplSpec;
14046
 
  friend class ::WinTypeKeywords;
14047
 
  friend class ::PragmaOnceUnitState;
14048
 
  friend class ::PragmaOnce;
14049
 
  friend class ::CCExprResolve;
14050
 
  friend class ::CExprResolve;
14051
 
 
14052
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
14053
 
 
14054
 
  CTree *sons[2]; // keyword, extension
14055
 
 
14056
 
public:
14057
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
14058
 
  static const char *NodeId ();
14059
 
  const char *NodeName () const { return NodeId (); }
14060
 
  int Sons () const { return CTree::Sons (sons, 2); }
14061
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
14062
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14063
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
14064
 
  }
14065
 
  int AnyType () const { return sons[0]->token ()->type (); }
14066
 
  CT_AnyExtension *Extension () const { return (CT_AnyExtension*)sons[1]; }
14067
 
};
14068
 
 
14069
 
 
14070
 
#line 14071 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
14071
 
} // closed Puma
14072
 
class WinIfExists;
14073
 
class WinImportHandler;
14074
 
class WinMacros;
14075
 
class CMatchSyntax;
14076
 
class ExtGnu;
14077
 
class ExtAC;
14078
 
class ExtACBuilderCoupling;
14079
 
class ExtACSyntaxCoupling;
14080
 
class ExtACTree;
14081
 
class ExtACKeywords;
14082
 
class WinAsm;
14083
 
class WinDeclSpecs;
14084
 
class WinMemberExplSpec;
14085
 
class WinTypeKeywords;
14086
 
class PragmaOnceUnitState;
14087
 
class PragmaOnce;
14088
 
class CCExprResolve;
14089
 
class CExprResolve;
14090
 
namespace Puma {
14091
 
 
14092
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
14093
 
class CT_AnyList : public CT_Any {
14094
 
#line 14095 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
14095
 
  friend class ::WinIfExists;
14096
 
  friend class ::WinImportHandler;
14097
 
  friend class ::WinMacros;
14098
 
  friend class ::CMatchSyntax;
14099
 
  friend class ::ExtGnu;
14100
 
  friend class ::ExtAC;
14101
 
  friend class ::ExtACBuilderCoupling;
14102
 
  friend class ::ExtACSyntaxCoupling;
14103
 
  friend class ::ExtACTree;
14104
 
  friend class ::ExtACKeywords;
14105
 
  friend class ::WinAsm;
14106
 
  friend class ::WinDeclSpecs;
14107
 
  friend class ::WinMemberExplSpec;
14108
 
  friend class ::WinTypeKeywords;
14109
 
  friend class ::PragmaOnceUnitState;
14110
 
  friend class ::PragmaOnce;
14111
 
  friend class ::CCExprResolve;
14112
 
  friend class ::CExprResolve;
14113
 
 
14114
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
14115
 
 
14116
 
public:
14117
 
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
14118
 
  static const char *NodeId ();
14119
 
  const char *NodeName () const { return NodeId (); }
14120
 
};
14121
 
 
14122
 
 
14123
 
#line 14124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
14124
 
} // closed Puma
14125
 
class WinIfExists;
14126
 
class WinImportHandler;
14127
 
class WinMacros;
14128
 
class CMatchSyntax;
14129
 
class ExtGnu;
14130
 
class ExtAC;
14131
 
class ExtACBuilderCoupling;
14132
 
class ExtACSyntaxCoupling;
14133
 
class ExtACTree;
14134
 
class ExtACKeywords;
14135
 
class WinAsm;
14136
 
class WinDeclSpecs;
14137
 
class WinMemberExplSpec;
14138
 
class WinTypeKeywords;
14139
 
class PragmaOnceUnitState;
14140
 
class PragmaOnce;
14141
 
class CCExprResolve;
14142
 
class CExprResolve;
14143
 
namespace Puma {
14144
 
 
14145
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
14146
 
class CT_AnyExtension : public CTree, public CSemValue {
14147
 
#line 14148 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
14148
 
  friend class ::WinIfExists;
14149
 
  friend class ::WinImportHandler;
14150
 
  friend class ::WinMacros;
14151
 
  friend class ::CMatchSyntax;
14152
 
  friend class ::ExtGnu;
14153
 
  friend class ::ExtAC;
14154
 
  friend class ::ExtACBuilderCoupling;
14155
 
  friend class ::ExtACSyntaxCoupling;
14156
 
  friend class ::ExtACTree;
14157
 
  friend class ::ExtACKeywords;
14158
 
  friend class ::WinAsm;
14159
 
  friend class ::WinDeclSpecs;
14160
 
  friend class ::WinMemberExplSpec;
14161
 
  friend class ::WinTypeKeywords;
14162
 
  friend class ::PragmaOnceUnitState;
14163
 
  friend class ::PragmaOnce;
14164
 
  friend class ::CCExprResolve;
14165
 
  friend class ::CExprResolve;
14166
 
 
14167
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
14168
 
 
14169
 
  CTree *sons[5]; // open, string, comma, cond, close
14170
 
 
14171
 
public:
14172
 
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
14173
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
14174
 
  }
14175
 
  static const char *NodeId ();
14176
 
  const char *NodeName () const { return NodeId (); }
14177
 
  int Sons () const { return CTree::Sons (sons, 5); }
14178
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
14179
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14180
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
14181
 
  }
14182
 
  CTree *Condition () const { return sons[3]; }
14183
 
  CT_Token *String () const { return (CT_Token*)sons[1]; }
14184
 
  const char *Name () const { 
14185
 
    return value ? value->StrLiteral ()->String () : (const char*)0; }
14186
 
 
14187
 
  CExprValue *Value () const { return value; }
14188
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
14189
 
};
14190
 
 
14191
 
 
14192
 
#line 14193 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
14193
 
} // closed Puma
14194
 
class WinIfExists;
14195
 
class WinImportHandler;
14196
 
class WinMacros;
14197
 
class CMatchSyntax;
14198
 
class ExtGnu;
14199
 
class ExtAC;
14200
 
class ExtACBuilderCoupling;
14201
 
class ExtACSyntaxCoupling;
14202
 
class ExtACTree;
14203
 
class ExtACKeywords;
14204
 
class WinAsm;
14205
 
class WinDeclSpecs;
14206
 
class WinMemberExplSpec;
14207
 
class WinTypeKeywords;
14208
 
class PragmaOnceUnitState;
14209
 
class PragmaOnce;
14210
 
class CCExprResolve;
14211
 
class CExprResolve;
14212
 
namespace Puma {
14213
 
 
14214
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
14215
 
class CT_AnyCondition : public CTree {
14216
 
#line 14217 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
14217
 
  friend class ::WinIfExists;
14218
 
  friend class ::WinImportHandler;
14219
 
  friend class ::WinMacros;
14220
 
  friend class ::CMatchSyntax;
14221
 
  friend class ::ExtGnu;
14222
 
  friend class ::ExtAC;
14223
 
  friend class ::ExtACBuilderCoupling;
14224
 
  friend class ::ExtACSyntaxCoupling;
14225
 
  friend class ::ExtACTree;
14226
 
  friend class ::ExtACKeywords;
14227
 
  friend class ::WinAsm;
14228
 
  friend class ::WinDeclSpecs;
14229
 
  friend class ::WinMemberExplSpec;
14230
 
  friend class ::WinTypeKeywords;
14231
 
  friend class ::PragmaOnceUnitState;
14232
 
  friend class ::PragmaOnce;
14233
 
  friend class ::CCExprResolve;
14234
 
  friend class ::CExprResolve;
14235
 
 
14236
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
14237
 
 
14238
 
  CTree *sons[3]; // arg1, arg2, arg3
14239
 
 
14240
 
public:
14241
 
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
14242
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
14243
 
  }
14244
 
  static const char *NodeId ();
14245
 
  const char *NodeName () const { return NodeId (); }
14246
 
  int Sons () const { return CTree::Sons (sons, 3); }
14247
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
14248
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14249
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
14250
 
  }
14251
 
};
14252
 
 
14253
 
 
14254
 
} // namespace Puma
14255
 
 
14256
 
#endif /* __CTree_h__ */
14257
 
 
14258
 
#line 14259 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
14259
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
14260
 
 
14261
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
14262
 
 
14263
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14264
 
namespace Puma {
14265
 
 
14266
 
 
14267
 
 
14268
 
#line 14269 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
14269
 
} // closed Puma
14270
 
class WinIfExists;
14271
 
class WinImportHandler;
14272
 
class WinMacros;
14273
 
class CMatchSyntax;
14274
 
class ExtGnu;
14275
 
class ExtAC;
14276
 
class ExtACBuilderCoupling;
14277
 
class ExtACSyntaxCoupling;
14278
 
class ExtACTree;
14279
 
class ExtACKeywords;
14280
 
class WinAsm;
14281
 
class WinDeclSpecs;
14282
 
class WinMemberExplSpec;
14283
 
class WinTypeKeywords;
14284
 
class PragmaOnceUnitState;
14285
 
class PragmaOnce;
14286
 
class CCExprResolve;
14287
 
class CExprResolve;
14288
 
namespace Puma {
14289
 
 
14290
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
5288
#line 168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5289
#include <string.h>
 
5290
using namespace std;
 
5291
 
 
5292
namespace Puma {
 
5293
 
 
5294
 
 
5295
class ErrorStream;
 
5296
class CObjectInfo;
 
5297
class CStructure;
 
5298
 
 
5299
/*****************************************************************************/
 
5300
/*                                                                           */
 
5301
/*                    S y n t a x  t r e e  n o d e s                        */
 
5302
/*                                                                           */
 
5303
/*****************************************************************************/
 
5304
 
 
5305
/** \file
 
5306
 *  C/C++ syntax tree classes.
 
5307
 *  \see Puma::CTree */
 
5308
 
 
5309
/** \class CTree CTree.h Puma/CTree.h
 
5310
 *  Base class for all C/C++ syntax tree classes. */
 
5311
 
 
5312
#line 5313 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5313
} // closed Puma
 
5314
class CCExprResolve;
 
5315
class CExprResolve;
 
5316
class WinIfExists;
 
5317
class WinImportHandler;
 
5318
class WinMacros;
 
5319
class WinAsm;
 
5320
class WinDeclSpecs;
 
5321
class WinMemberExplSpec;
 
5322
class WinTypeKeywords;
 
5323
class WinFriend;
 
5324
class ExtAC;
 
5325
class ExtACBuilderCoupling;
 
5326
class ExtACSyntaxCoupling;
 
5327
class ExtACTree;
 
5328
class ExtACKeywords;
 
5329
class ExtGnu;
 
5330
class PragmaOnceUnitState;
 
5331
class PragmaOnce;
 
5332
class CMatchSyntax;
 
5333
namespace Puma {
 
5334
 
 
5335
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5336
 
 
5337
#line 5338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5338
} // closed Puma
 
5339
 
 
5340
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
5341
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
5342
 
 
5343
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5344
// This file is part of PUMA.
 
5345
// Copyright (C) 1999-2003  The PUMA developer team.
 
5346
//                                                                
 
5347
// This program is free software;  you can redistribute it and/or 
 
5348
// modify it under the terms of the GNU General Public License as 
 
5349
// published by the Free Software Foundation; either version 2 of 
 
5350
// the License, or (at your option) any later version.            
 
5351
//                                                                
 
5352
// This program is distributed in the hope that it will be useful,
 
5353
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
5354
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
5355
// GNU General Public License for more details.                   
 
5356
//                                                                
 
5357
// You should have received a copy of the GNU General Public      
 
5358
// License along with this program; if not, write to the Free     
 
5359
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
5360
// MA  02111-1307  USA                                            
 
5361
 
 
5362
#ifndef __CCExprResolveH_ah__
 
5363
#define __CCExprResolveH_ah__
 
5364
 
 
5365
// This aspect inserts resolve member functions into all syntax tree classes
 
5366
// that represent expressions. As the function is virtual, an efficient
 
5367
// run-time switch over the node type is implemented.
 
5368
 
 
5369
namespace Puma {
 
5370
  class CCSemExpr;
 
5371
}
 
5372
 
 
5373
namespace Puma {
 
5374
  
 
5375
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5376
 
 
5377
  
 
5378
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5379
 
 
5380
}
 
5381
 
 
5382
 
 
5383
#line 5384 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5384
class CExprResolve;
 
5385
class WinIfExists;
 
5386
class WinImportHandler;
 
5387
class WinMacros;
 
5388
class WinAsm;
 
5389
class WinDeclSpecs;
 
5390
class WinMemberExplSpec;
 
5391
class WinTypeKeywords;
 
5392
class WinFriend;
 
5393
class ExtAC;
 
5394
class ExtACBuilderCoupling;
 
5395
class ExtACSyntaxCoupling;
 
5396
class ExtACTree;
 
5397
class ExtACKeywords;
 
5398
class ExtGnu;
 
5399
class PragmaOnceUnitState;
 
5400
class PragmaOnce;
 
5401
class CMatchSyntax;
 
5402
 
 
5403
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5404
class CCExprResolve {
 
5405
#line 5406 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5406
 
 
5407
public:
 
5408
  static CCExprResolve *aspectof () {
 
5409
    static CCExprResolve __instance;
 
5410
    return &__instance;
 
5411
  }
 
5412
  static CCExprResolve *aspectOf () {
 
5413
    return aspectof ();
 
5414
  }
 
5415
private:
 
5416
 
 
5417
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5418
 
 
5419
#line 5420 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5420
  friend class ::CExprResolve;
 
5421
  friend class ::WinIfExists;
 
5422
  friend class ::WinImportHandler;
 
5423
  friend class ::WinMacros;
 
5424
  friend class ::WinAsm;
 
5425
  friend class ::WinDeclSpecs;
 
5426
  friend class ::WinMemberExplSpec;
 
5427
  friend class ::WinTypeKeywords;
 
5428
  friend class ::WinFriend;
 
5429
  friend class ::ExtAC;
 
5430
  friend class ::ExtACBuilderCoupling;
 
5431
  friend class ::ExtACSyntaxCoupling;
 
5432
  friend class ::ExtACTree;
 
5433
  friend class ::ExtACKeywords;
 
5434
  friend class ::ExtGnu;
 
5435
  friend class ::PragmaOnceUnitState;
 
5436
  friend class ::PragmaOnce;
 
5437
  friend class ::CMatchSyntax;
 
5438
 
 
5439
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5440
 
 
5441
  
 
5442
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5443
 
 
5444
  
 
5445
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5446
 
 
5447
};
 
5448
#line 5449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5449
 
 
5450
namespace AC {
 
5451
 
5452
 
 
5453
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5454
 
 
5455
 
 
5456
#endif /* __CCExprResolveH_ah__ */
 
5457
 
 
5458
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5459
#endif
 
5460
namespace Puma {
 
5461
 
 
5462
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5463
 
 
5464
#line 5465 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5465
} // closed Puma
 
5466
 
 
5467
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
5468
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
5469
 
 
5470
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5471
// This file is part of PUMA.
 
5472
// Copyright (C) 1999-2003  The PUMA developer team.
 
5473
//                                                                
 
5474
// This program is free software;  you can redistribute it and/or 
 
5475
// modify it under the terms of the GNU General Public License as 
 
5476
// published by the Free Software Foundation; either version 2 of 
 
5477
// the License, or (at your option) any later version.            
 
5478
//                                                                
 
5479
// This program is distributed in the hope that it will be useful,
 
5480
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
5481
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
5482
// GNU General Public License for more details.                   
 
5483
//                                                                
 
5484
// You should have received a copy of the GNU General Public      
 
5485
// License along with this program; if not, write to the Free     
 
5486
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
5487
// MA  02111-1307  USA                                            
 
5488
 
 
5489
#ifndef __CExprResolveH_ah__
 
5490
#define __CExprResolveH_ah__
 
5491
 
 
5492
// This aspect inserts resolve member functions into all syntax tree classes
 
5493
// that represent expressions. As the function is virtual, an efficient
 
5494
// run-time switch over the node type is implemented.
 
5495
 
 
5496
namespace Puma {
 
5497
  class CSemExpr;
 
5498
}
 
5499
 
 
5500
namespace Puma {
 
5501
  
 
5502
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5503
 
 
5504
  
 
5505
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5506
 
 
5507
}
 
5508
 
 
5509
 
 
5510
#line 5511 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5511
class CCExprResolve;
 
5512
class WinIfExists;
 
5513
class WinImportHandler;
 
5514
class WinMacros;
 
5515
class WinAsm;
 
5516
class WinDeclSpecs;
 
5517
class WinMemberExplSpec;
 
5518
class WinTypeKeywords;
 
5519
class WinFriend;
 
5520
class ExtAC;
 
5521
class ExtACBuilderCoupling;
 
5522
class ExtACSyntaxCoupling;
 
5523
class ExtACTree;
 
5524
class ExtACKeywords;
 
5525
class ExtGnu;
 
5526
class PragmaOnceUnitState;
 
5527
class PragmaOnce;
 
5528
class CMatchSyntax;
 
5529
 
 
5530
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5531
class CExprResolve {
 
5532
#line 5533 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5533
 
 
5534
public:
 
5535
  static CExprResolve *aspectof () {
 
5536
    static CExprResolve __instance;
 
5537
    return &__instance;
 
5538
  }
 
5539
  static CExprResolve *aspectOf () {
 
5540
    return aspectof ();
 
5541
  }
 
5542
private:
 
5543
 
 
5544
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5545
 
 
5546
#line 5547 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5547
  friend class ::CCExprResolve;
 
5548
  friend class ::WinIfExists;
 
5549
  friend class ::WinImportHandler;
 
5550
  friend class ::WinMacros;
 
5551
  friend class ::WinAsm;
 
5552
  friend class ::WinDeclSpecs;
 
5553
  friend class ::WinMemberExplSpec;
 
5554
  friend class ::WinTypeKeywords;
 
5555
  friend class ::WinFriend;
 
5556
  friend class ::ExtAC;
 
5557
  friend class ::ExtACBuilderCoupling;
 
5558
  friend class ::ExtACSyntaxCoupling;
 
5559
  friend class ::ExtACTree;
 
5560
  friend class ::ExtACKeywords;
 
5561
  friend class ::ExtGnu;
 
5562
  friend class ::PragmaOnceUnitState;
 
5563
  friend class ::PragmaOnce;
 
5564
  friend class ::CMatchSyntax;
 
5565
 
 
5566
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5567
 
 
5568
  
 
5569
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5570
 
 
5571
  
 
5572
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5573
 
 
5574
};
 
5575
#line 5576 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5576
 
 
5577
namespace AC {
 
5578
 
5579
 
 
5580
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5581
 
 
5582
 
 
5583
#endif /* __CExprResolveH_ah__ */
 
5584
 
 
5585
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5586
#endif
 
5587
namespace Puma {
 
5588
 
 
5589
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5590
class CTree {
 
5591
#line 5592 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5592
  friend class ::CCExprResolve;
 
5593
  friend class ::CExprResolve;
 
5594
  friend class ::WinIfExists;
 
5595
  friend class ::WinImportHandler;
 
5596
  friend class ::WinMacros;
 
5597
  friend class ::WinAsm;
 
5598
  friend class ::WinDeclSpecs;
 
5599
  friend class ::WinMemberExplSpec;
 
5600
  friend class ::WinTypeKeywords;
 
5601
  friend class ::WinFriend;
 
5602
  friend class ::ExtAC;
 
5603
  friend class ::ExtACBuilderCoupling;
 
5604
  friend class ::ExtACSyntaxCoupling;
 
5605
  friend class ::ExtACTree;
 
5606
  friend class ::ExtACKeywords;
 
5607
  friend class ::ExtGnu;
 
5608
  friend class ::PragmaOnceUnitState;
 
5609
  friend class ::PragmaOnce;
 
5610
  friend class ::CMatchSyntax;
 
5611
 
 
5612
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5613
 
 
5614
  CTree * _parent;
 
5615
 
 
5616
public:
 
5617
  /*DEBUG*/static int alloc;
 
5618
  /*DEBUG*/static int release;
 
5619
 
 
5620
protected:
 
5621
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
5622
   *  \param sons The sons array.
 
5623
   *  \param len Length of the sons array.
 
5624
   *  \param n Index of the son.
 
5625
   *  \return The n-th son or NULL. */
 
5626
  CTree *Son (CTree * const *sons, int len, int n) const;
 
5627
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
5628
   *  \param sons The sons array.
 
5629
   *  \param len Length of the sons array. */
 
5630
  int Sons (CTree * const *sons, int len) const;
 
5631
  /** Replace a son.
 
5632
   *  \param sons The sons array.
 
5633
   *  \param len Length of the sons array.
 
5634
   *  \param old_son The son to replace.
 
5635
   *  \param new_son The new son. */
 
5636
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
5637
  /** Replace a son if it equals the given son.
 
5638
   *  \param son The actual son.
 
5639
   *  \param old_son The son to replace, must match the actual son.
 
5640
   *  \param new_son The new son, overwrites the actual son. */
 
5641
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
5642
  /** Add a new son.
 
5643
   *  \param son The actual son.
 
5644
   *  \param new_son The new son, overwrites the actual son. */
 
5645
  void AddSon (CTree *&son, CTree *new_son);
 
5646
  /** Set the parent tree node.
 
5647
   *  \param parent The new parent tree node. */
 
5648
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
5649
  /** Set the parent tree node of the given tree node.
 
5650
   *  \param node The tree node.
 
5651
   *  \param parent The new parent. */
 
5652
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
 
5653
  
 
5654
protected:
 
5655
  /** Default constructor. */
 
5656
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
 
5657
 
 
5658
public:
 
5659
  /** Destructor. */
 
5660
  virtual ~CTree () { /*DEBUG*/release++; }
 
5661
  /** Get the number of sons. */
 
5662
  virtual int Sons () const = 0;
 
5663
  /** Get the n-th son.
 
5664
   *  \param n The index of the son.
 
5665
   *  \return The n-th son or NULL. */
 
5666
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
5667
  /** Get the node name (node identifier). */
 
5668
  virtual const char *NodeName () const = 0;
 
5669
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
5670
   *  \return The token or NULL. */
 
5671
  virtual Token *token () const;
 
5672
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
5673
   *  \return The token or NULL. */
 
5674
  virtual Token *end_token () const;
 
5675
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
5676
   *  \return The token node or NULL. */
 
5677
  virtual CT_Token *token_node () const;
 
5678
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
5679
   *  \return The token node or NULL. */
 
5680
  virtual CT_Token *end_token_node () const;
 
5681
  /** Replace a son.
 
5682
   *  \param old_son The son to replace.
 
5683
   *  \param new_son The son with which to replace. */
 
5684
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
5685
  /** Get the parent node.
 
5686
   *  \return The parent node or NULL. */
 
5687
  virtual CTree *Parent () const { return (CTree*)_parent; }
 
5688
 
 
5689
public: // semantic information
 
5690
  /** Get the semantic type of the node.
 
5691
   *  \return The type object or NULL. */
 
5692
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
5693
  /** Get the calculated value of the expression.
 
5694
   *  \return The value object or NULL. */
 
5695
  virtual CExprValue *Value () const { return (CExprValue*)0; }
 
5696
  
 
5697
  /** Get the semantic scope of the node.
 
5698
   *  \return The scope object or NULL. */
 
5699
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
5700
  /** Get the semantic value of the node.
 
5701
   *  \return The value object or NULL. */
 
5702
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
5703
  /** Get the semantic object of the node.
 
5704
   *  \return The semantic object or NULL. */
 
5705
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
 
5706
  
 
5707
public: // node classification function
 
5708
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
5709
   *  \return The CT_SimpleName node or NULL. */
 
5710
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
5711
  /** Get a pointer to CT_String if the current node represents a string.
 
5712
   *  \return The CT_String node or NULL. */
 
5713
  virtual CT_String *IsString () { return 0; }
 
5714
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
5715
   *  \return The CT_Declarator pointer or NULL. */
 
5716
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
5717
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
5718
   *  \return The CT_Statement pointer or NULL. */
 
5719
  virtual CT_Statement *IsStatement () { return 0; }
 
5720
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
5721
   *  \return The CT_Expression pointer or NULL. */
 
5722
  virtual CT_Expression *IsExpression () { return 0; }
 
5723
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
5724
   *  \return The CT_Decl pointer or NULL. */
 
5725
  virtual CT_Decl *IsDeclaration () { return 0; }
 
5726
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
5727
   *  \return The CT_Call pointer or NULL. */
 
5728
  virtual CT_Call *IsCall () { return 0; }
 
5729
   private:
 
5730
  typedef CTree CCExprResolveCTree;
 
5731
 
 
5732
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5733
 public :
 
5734
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
5735
  typedef CTree CExprResolveCTree;
 
5736
 
 
5737
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5738
 public :
 
5739
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
5740
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5741
};
 
5742
 
 
5743
/** \class CT_Error CTree.h Puma/CTree.h
 
5744
 *  Error tree node that is inserted into the tree for syntactic constructs
 
5745
 *  that could not be parsed. */
 
5746
 
 
5747
#line 5748 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5748
} // closed Puma
 
5749
class CCExprResolve;
 
5750
class CExprResolve;
 
5751
class WinIfExists;
 
5752
class WinImportHandler;
 
5753
class WinMacros;
 
5754
class WinAsm;
 
5755
class WinDeclSpecs;
 
5756
class WinMemberExplSpec;
 
5757
class WinTypeKeywords;
 
5758
class WinFriend;
 
5759
class ExtAC;
 
5760
class ExtACBuilderCoupling;
 
5761
class ExtACSyntaxCoupling;
 
5762
class ExtACTree;
 
5763
class ExtACKeywords;
 
5764
class ExtGnu;
 
5765
class PragmaOnceUnitState;
 
5766
class PragmaOnce;
 
5767
class CMatchSyntax;
 
5768
namespace Puma {
 
5769
 
 
5770
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5771
class CT_Error : public CTree {
 
5772
#line 5773 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5773
  friend class ::CCExprResolve;
 
5774
  friend class ::CExprResolve;
 
5775
  friend class ::WinIfExists;
 
5776
  friend class ::WinImportHandler;
 
5777
  friend class ::WinMacros;
 
5778
  friend class ::WinAsm;
 
5779
  friend class ::WinDeclSpecs;
 
5780
  friend class ::WinMemberExplSpec;
 
5781
  friend class ::WinTypeKeywords;
 
5782
  friend class ::WinFriend;
 
5783
  friend class ::ExtAC;
 
5784
  friend class ::ExtACBuilderCoupling;
 
5785
  friend class ::ExtACSyntaxCoupling;
 
5786
  friend class ::ExtACTree;
 
5787
  friend class ::ExtACKeywords;
 
5788
  friend class ::ExtGnu;
 
5789
  friend class ::PragmaOnceUnitState;
 
5790
  friend class ::PragmaOnce;
 
5791
  friend class ::CMatchSyntax;
 
5792
 
 
5793
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5794
 
 
5795
public:
 
5796
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
5797
  static const char *NodeId ();
 
5798
  /** Get the name of the node. Can be compared with NodeId(). */
 
5799
  const char *NodeName () const { return NodeId (); }
 
5800
  /** Get the number of sons. */
 
5801
  int Sons () const { return 0; }
 
5802
};
 
5803
 
 
5804
/** \class CT_Token CTree.h Puma/CTree.h
 
5805
 *  Tree node representing a single token in the source code. */
 
5806
 
 
5807
#line 5808 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5808
} // closed Puma
 
5809
class CCExprResolve;
 
5810
class CExprResolve;
 
5811
class WinIfExists;
 
5812
class WinImportHandler;
 
5813
class WinMacros;
 
5814
class WinAsm;
 
5815
class WinDeclSpecs;
 
5816
class WinMemberExplSpec;
 
5817
class WinTypeKeywords;
 
5818
class WinFriend;
 
5819
class ExtAC;
 
5820
class ExtACBuilderCoupling;
 
5821
class ExtACSyntaxCoupling;
 
5822
class ExtACTree;
 
5823
class ExtACKeywords;
 
5824
class ExtGnu;
 
5825
class PragmaOnceUnitState;
 
5826
class PragmaOnce;
 
5827
class CMatchSyntax;
 
5828
namespace Puma {
 
5829
 
 
5830
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5831
class CT_Token : public CTree {
 
5832
#line 5833 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5833
  friend class ::CCExprResolve;
 
5834
  friend class ::CExprResolve;
 
5835
  friend class ::WinIfExists;
 
5836
  friend class ::WinImportHandler;
 
5837
  friend class ::WinMacros;
 
5838
  friend class ::WinAsm;
 
5839
  friend class ::WinDeclSpecs;
 
5840
  friend class ::WinMemberExplSpec;
 
5841
  friend class ::WinTypeKeywords;
 
5842
  friend class ::WinFriend;
 
5843
  friend class ::ExtAC;
 
5844
  friend class ::ExtACBuilderCoupling;
 
5845
  friend class ::ExtACSyntaxCoupling;
 
5846
  friend class ::ExtACTree;
 
5847
  friend class ::ExtACKeywords;
 
5848
  friend class ::ExtGnu;
 
5849
  friend class ::PragmaOnceUnitState;
 
5850
  friend class ::PragmaOnce;
 
5851
  friend class ::CMatchSyntax;
 
5852
 
 
5853
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5854
 
 
5855
  Token *_token;
 
5856
  unsigned long int _number;
 
5857
  
 
5858
public:
 
5859
  /** Constructor. 
 
5860
   *  \param token The represented token.
 
5861
   *  \param number The token number (a consecutive number). */
 
5862
  CT_Token (Token *token, unsigned long int number = 0) : 
 
5863
    _token (token), _number (number) {}
 
5864
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
5865
  static const char *NodeId ();
 
5866
  /** Get the name of the node. Can be compared with NodeId(). */
 
5867
  const char *NodeName () const { return NodeId (); }
 
5868
  /** Get the number of sons. */
 
5869
  int Sons () const { return 0; }
 
5870
  /** Get the represented token. */
 
5871
  Token *token () const { return _token; }
 
5872
  /** Get the represented token. */
 
5873
  Token *end_token () const { return _token; }
 
5874
  /** Get this. */
 
5875
  CT_Token *token_node () const { return (CT_Token*)this; }
 
5876
  /** Get this. */
 
5877
  CT_Token *end_token_node () const { return (CT_Token*)this; }
 
5878
  /** Set the token number. 
 
5879
   *  \param number The token number. */ 
 
5880
  void Number (unsigned long int number) { _number = number; }
 
5881
  /** Get the token number. Can be used to indentify this token. */
 
5882
  unsigned long int Number () const { return _number; }
 
5883
  
 
5884
public:
 
5885
  /** Own new operator reusing memory. */
 
5886
  void *operator new (size_t);
 
5887
  /** Own delete operator. */
 
5888
  void operator delete (void *);
 
5889
};
 
5890
 
 
5891
/*****************************************************************************/
 
5892
/*                                                                           */
 
5893
/*                              List nodes                                   */
 
5894
/*                                                                           */
 
5895
/*****************************************************************************/
 
5896
 
 
5897
/** \class CT_List CTree.h Puma/CTree.h
 
5898
 *  Base class for tree nodes representing lists. */
 
5899
 
 
5900
#line 5901 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5901
} // closed Puma
 
5902
class CCExprResolve;
 
5903
class CExprResolve;
 
5904
class WinIfExists;
 
5905
class WinImportHandler;
 
5906
class WinMacros;
 
5907
class WinAsm;
 
5908
class WinDeclSpecs;
 
5909
class WinMemberExplSpec;
 
5910
class WinTypeKeywords;
 
5911
class WinFriend;
 
5912
class ExtAC;
 
5913
class ExtACBuilderCoupling;
 
5914
class ExtACSyntaxCoupling;
 
5915
class ExtACTree;
 
5916
class ExtACKeywords;
 
5917
class ExtGnu;
 
5918
class PragmaOnceUnitState;
 
5919
class PragmaOnce;
 
5920
class CMatchSyntax;
 
5921
namespace Puma {
 
5922
 
 
5923
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5924
class CT_List : public CTree {
 
5925
#line 5926 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
5926
  friend class ::CCExprResolve;
 
5927
  friend class ::CExprResolve;
 
5928
  friend class ::WinIfExists;
 
5929
  friend class ::WinImportHandler;
 
5930
  friend class ::WinMacros;
 
5931
  friend class ::WinAsm;
 
5932
  friend class ::WinDeclSpecs;
 
5933
  friend class ::WinMemberExplSpec;
 
5934
  friend class ::WinTypeKeywords;
 
5935
  friend class ::WinFriend;
 
5936
  friend class ::ExtAC;
 
5937
  friend class ::ExtACBuilderCoupling;
 
5938
  friend class ::ExtACSyntaxCoupling;
 
5939
  friend class ::ExtACTree;
 
5940
  friend class ::ExtACKeywords;
 
5941
  friend class ::ExtGnu;
 
5942
  friend class ::PragmaOnceUnitState;
 
5943
  friend class ::PragmaOnce;
 
5944
  friend class ::CMatchSyntax;
 
5945
 
 
5946
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5947
 
 
5948
  Array<CTree*> _sons;
 
5949
  int _properties;
 
5950
 
 
5951
protected:
 
5952
  /** Constructor.
 
5953
   *  \param size The initial list size.
 
5954
   *  \param incr The initial increment count. 
 
5955
   *  \param props The list properties (bit array). */
 
5956
  CT_List(int size = 5, int incr = 5, int props = 0) : 
 
5957
    _sons (size, incr), _properties (props) {}
 
5958
 
 
5959
public:
 
5960
  /** List properties. */
 
5961
  enum {
 
5962
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
5963
    CLOSE = 2,        /** List has an end token */
 
5964
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
5965
    SEPARATORS = 4,   /** List has separators, like ',' */
 
5966
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
5967
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
5968
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
5969
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
 
5970
  };
 
5971
 
 
5972
  /** Get the number of list entries. */
 
5973
  int Entries () const;
 
5974
  /** Get the n-th list entry.
 
5975
   *  \param n The index of the entry. 
 
5976
   *  \return The list entry or NULL. */
 
5977
  CTree *Entry (int n) const;
 
5978
  /** Get the number of sons. */
 
5979
  int Sons () const { return _sons.length (); }
 
5980
  /** Get the n-th son.
 
5981
   *  \param n The index of the son. 
 
5982
   *  \return The n-th son or NULL. */
 
5983
  CTree *Son (int n) const { return _sons.lookup (n); }
 
5984
  /** Get the list properties. */
 
5985
  int GetProperties () const { return _properties; }
 
5986
  /** Add a list property.
 
5987
   *  \param p The property to add. */
 
5988
  void AddProperties (int p) { _properties |= p; }
 
5989
  /** Add a son.
 
5990
   *  \param s The son to add. */
 
5991
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
5992
  /** Prepend a son.
 
5993
   *  \param s The son to prepend. */
 
5994
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
5995
  /** Insert a son before another son.
 
5996
   *  \param before The son to insert the new son before.
 
5997
   *  \param son The son to insert. */
 
5998
  void InsertSon (CTree *before, CTree *son); 
 
5999
  /** Replace a son.
 
6000
   *  \param old_son The son to replace.
 
6001
   *  \param new_son The new son. */
 
6002
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
6003
  /** Remove a son.
 
6004
   *  \param son The son to remove. */
 
6005
  void RemoveSon (CTree *son);
 
6006
  /** Insert a son at the given index. 
 
6007
   *  \param idx The index at which to insert.
 
6008
   *  \param s The son to insert. */
 
6009
  void InsertSon (int idx, CTree *s)
 
6010
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
6011
  /** Replace the son at the given index.
 
6012
   *  \param idx The index of the son to replace.
 
6013
   *  \param s The new son. */
 
6014
  void ReplaceSon (int idx, CTree *s) 
 
6015
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
6016
  /** Remove the son at the given index. 
 
6017
   *  \param idx The index of the son to remove. */
 
6018
  void RemoveSon (int idx) 
 
6019
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
 
6020
};
 
6021
 
 
6022
/** \class CT_ExprList CTree.h Puma/CTree.h
 
6023
 *  Tree node representing an expression list. */
 
6024
 
 
6025
#line 6026 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6026
} // closed Puma
 
6027
class CCExprResolve;
 
6028
class CExprResolve;
 
6029
class WinIfExists;
 
6030
class WinImportHandler;
 
6031
class WinMacros;
 
6032
class WinAsm;
 
6033
class WinDeclSpecs;
 
6034
class WinMemberExplSpec;
 
6035
class WinTypeKeywords;
 
6036
class WinFriend;
 
6037
class ExtAC;
 
6038
class ExtACBuilderCoupling;
 
6039
class ExtACSyntaxCoupling;
 
6040
class ExtACTree;
 
6041
class ExtACKeywords;
 
6042
class ExtGnu;
 
6043
class PragmaOnceUnitState;
 
6044
class PragmaOnce;
 
6045
class CMatchSyntax;
 
6046
namespace Puma {
 
6047
 
 
6048
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6049
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
 
6050
#line 6051 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6051
  friend class ::CCExprResolve;
 
6052
  friend class ::CExprResolve;
 
6053
  friend class ::WinIfExists;
 
6054
  friend class ::WinImportHandler;
 
6055
  friend class ::WinMacros;
 
6056
  friend class ::WinAsm;
 
6057
  friend class ::WinDeclSpecs;
 
6058
  friend class ::WinMemberExplSpec;
 
6059
  friend class ::WinTypeKeywords;
 
6060
  friend class ::WinFriend;
 
6061
  friend class ::ExtAC;
 
6062
  friend class ::ExtACBuilderCoupling;
 
6063
  friend class ::ExtACSyntaxCoupling;
 
6064
  friend class ::ExtACTree;
 
6065
  friend class ::ExtACKeywords;
 
6066
  friend class ::ExtGnu;
 
6067
  friend class ::PragmaOnceUnitState;
 
6068
  friend class ::PragmaOnce;
 
6069
  friend class ::CMatchSyntax;
 
6070
 
 
6071
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6072
 
 
6073
public:
 
6074
  /** Constructor. */
 
6075
  CT_ExprList () { AddProperties (SEPARATORS); }
 
6076
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6077
  static const char *NodeId ();
 
6078
  /** Get the name of the node. Can be compared with NodeId(). */
 
6079
  const char *NodeName () const { return NodeId (); }
 
6080
 
 
6081
  /** Get the type of the last expression in the expression list.
 
6082
   *  \return The type or NULL. */
 
6083
  CTypeInfo *Type () const { return type; }
 
6084
  /** Get the value of the last expression in the expression list.
 
6085
   *  \return The value of NULL. */
 
6086
  CExprValue *Value () const { return value; }
 
6087
  /** Get the semantic value of the node. */
 
6088
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
6089
  /** Get the semantic object of the node. */
 
6090
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
6091
};
 
6092
 
 
6093
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
6094
 *  Tree node representing a list of declarators. */
 
6095
 
 
6096
#line 6097 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6097
} // closed Puma
 
6098
class CCExprResolve;
 
6099
class CExprResolve;
 
6100
class WinIfExists;
 
6101
class WinImportHandler;
 
6102
class WinMacros;
 
6103
class WinAsm;
 
6104
class WinDeclSpecs;
 
6105
class WinMemberExplSpec;
 
6106
class WinTypeKeywords;
 
6107
class WinFriend;
 
6108
class ExtAC;
 
6109
class ExtACBuilderCoupling;
 
6110
class ExtACSyntaxCoupling;
 
6111
class ExtACTree;
 
6112
class ExtACKeywords;
 
6113
class ExtGnu;
 
6114
class PragmaOnceUnitState;
 
6115
class PragmaOnce;
 
6116
class CMatchSyntax;
 
6117
namespace Puma {
 
6118
 
 
6119
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6120
class CT_DeclaratorList : public CT_List {
 
6121
#line 6122 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6122
  friend class ::CCExprResolve;
 
6123
  friend class ::CExprResolve;
 
6124
  friend class ::WinIfExists;
 
6125
  friend class ::WinImportHandler;
 
6126
  friend class ::WinMacros;
 
6127
  friend class ::WinAsm;
 
6128
  friend class ::WinDeclSpecs;
 
6129
  friend class ::WinMemberExplSpec;
 
6130
  friend class ::WinTypeKeywords;
 
6131
  friend class ::WinFriend;
 
6132
  friend class ::ExtAC;
 
6133
  friend class ::ExtACBuilderCoupling;
 
6134
  friend class ::ExtACSyntaxCoupling;
 
6135
  friend class ::ExtACTree;
 
6136
  friend class ::ExtACKeywords;
 
6137
  friend class ::ExtGnu;
 
6138
  friend class ::PragmaOnceUnitState;
 
6139
  friend class ::PragmaOnce;
 
6140
  friend class ::CMatchSyntax;
 
6141
 
 
6142
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6143
 
 
6144
public:
 
6145
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6146
  static const char *NodeId ();
 
6147
  /** Get the name of the node. Can be compared with NodeId(). */
 
6148
  const char *NodeName () const { return NodeId (); }
 
6149
};
 
6150
 
 
6151
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
6152
 *  Tree node representing a list of enumerator constants. */
 
6153
 
 
6154
#line 6155 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6155
} // closed Puma
 
6156
class CCExprResolve;
 
6157
class CExprResolve;
 
6158
class WinIfExists;
 
6159
class WinImportHandler;
 
6160
class WinMacros;
 
6161
class WinAsm;
 
6162
class WinDeclSpecs;
 
6163
class WinMemberExplSpec;
 
6164
class WinTypeKeywords;
 
6165
class WinFriend;
 
6166
class ExtAC;
 
6167
class ExtACBuilderCoupling;
 
6168
class ExtACSyntaxCoupling;
 
6169
class ExtACTree;
 
6170
class ExtACKeywords;
 
6171
class ExtGnu;
 
6172
class PragmaOnceUnitState;
 
6173
class PragmaOnce;
 
6174
class CMatchSyntax;
 
6175
namespace Puma {
 
6176
 
 
6177
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6178
class CT_EnumeratorList : public CT_List {
 
6179
#line 6180 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6180
  friend class ::CCExprResolve;
 
6181
  friend class ::CExprResolve;
 
6182
  friend class ::WinIfExists;
 
6183
  friend class ::WinImportHandler;
 
6184
  friend class ::WinMacros;
 
6185
  friend class ::WinAsm;
 
6186
  friend class ::WinDeclSpecs;
 
6187
  friend class ::WinMemberExplSpec;
 
6188
  friend class ::WinTypeKeywords;
 
6189
  friend class ::WinFriend;
 
6190
  friend class ::ExtAC;
 
6191
  friend class ::ExtACBuilderCoupling;
 
6192
  friend class ::ExtACSyntaxCoupling;
 
6193
  friend class ::ExtACTree;
 
6194
  friend class ::ExtACKeywords;
 
6195
  friend class ::ExtGnu;
 
6196
  friend class ::PragmaOnceUnitState;
 
6197
  friend class ::PragmaOnce;
 
6198
  friend class ::CMatchSyntax;
 
6199
 
 
6200
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6201
 
 
6202
public:
 
6203
  /** Constructor. */
 
6204
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
6205
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6206
  static const char *NodeId ();
 
6207
  /** Get the name of the node. Can be compared with NodeId(). */
 
6208
  const char *NodeName () const { return NodeId (); }
 
6209
};
 
6210
   
 
6211
/** \class CT_DeclList CTree.h Puma/CTree.h
 
6212
 *  Tree node representing a list of declarations. */
 
6213
 
 
6214
#line 6215 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6215
} // closed Puma
 
6216
class CCExprResolve;
 
6217
class CExprResolve;
 
6218
class WinIfExists;
 
6219
class WinImportHandler;
 
6220
class WinMacros;
 
6221
class WinAsm;
 
6222
class WinDeclSpecs;
 
6223
class WinMemberExplSpec;
 
6224
class WinTypeKeywords;
 
6225
class WinFriend;
 
6226
class ExtAC;
 
6227
class ExtACBuilderCoupling;
 
6228
class ExtACSyntaxCoupling;
 
6229
class ExtACTree;
 
6230
class ExtACKeywords;
 
6231
class ExtGnu;
 
6232
class PragmaOnceUnitState;
 
6233
class PragmaOnce;
 
6234
class CMatchSyntax;
 
6235
namespace Puma {
 
6236
 
 
6237
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6238
class CT_DeclList : public CT_List {
 
6239
#line 6240 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6240
  friend class ::CCExprResolve;
 
6241
  friend class ::CExprResolve;
 
6242
  friend class ::WinIfExists;
 
6243
  friend class ::WinImportHandler;
 
6244
  friend class ::WinMacros;
 
6245
  friend class ::WinAsm;
 
6246
  friend class ::WinDeclSpecs;
 
6247
  friend class ::WinMemberExplSpec;
 
6248
  friend class ::WinTypeKeywords;
 
6249
  friend class ::WinFriend;
 
6250
  friend class ::ExtAC;
 
6251
  friend class ::ExtACBuilderCoupling;
 
6252
  friend class ::ExtACSyntaxCoupling;
 
6253
  friend class ::ExtACTree;
 
6254
  friend class ::ExtACKeywords;
 
6255
  friend class ::ExtGnu;
 
6256
  friend class ::PragmaOnceUnitState;
 
6257
  friend class ::PragmaOnce;
 
6258
  friend class ::CMatchSyntax;
 
6259
 
 
6260
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6261
 
 
6262
public:
 
6263
  /** Constructor. 
 
6264
   *  \param size The initial size of the list.
 
6265
   *  \param incr The initial increment count of the list. */
 
6266
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
6267
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6268
  static const char *NodeId ();
 
6269
  /** Get the name of the node. Can be compared with NodeId(). */
 
6270
  const char *NodeName () const { return NodeId (); }
 
6271
  /** Set the linkage specifiers to each declaration in the list.
 
6272
   *  \param l The linkage specifiers node. */
 
6273
  void Linkage (CT_LinkageSpec *l);
 
6274
};
 
6275
 
 
6276
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
6277
 *  Tree node representing a sequence of declaration specifiers. */
 
6278
 
 
6279
#line 6280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6280
} // closed Puma
 
6281
class CCExprResolve;
 
6282
class CExprResolve;
 
6283
class WinIfExists;
 
6284
class WinImportHandler;
 
6285
class WinMacros;
 
6286
class WinAsm;
 
6287
class WinDeclSpecs;
 
6288
class WinMemberExplSpec;
 
6289
class WinTypeKeywords;
 
6290
class WinFriend;
 
6291
class ExtAC;
 
6292
class ExtACBuilderCoupling;
 
6293
class ExtACSyntaxCoupling;
 
6294
class ExtACTree;
 
6295
class ExtACKeywords;
 
6296
class ExtGnu;
 
6297
class PragmaOnceUnitState;
 
6298
class PragmaOnce;
 
6299
class CMatchSyntax;
 
6300
namespace Puma {
 
6301
 
 
6302
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6303
class CT_DeclSpecSeq : public CT_List {
 
6304
#line 6305 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6305
  friend class ::CCExprResolve;
 
6306
  friend class ::CExprResolve;
 
6307
  friend class ::WinIfExists;
 
6308
  friend class ::WinImportHandler;
 
6309
  friend class ::WinMacros;
 
6310
  friend class ::WinAsm;
 
6311
  friend class ::WinDeclSpecs;
 
6312
  friend class ::WinMemberExplSpec;
 
6313
  friend class ::WinTypeKeywords;
 
6314
  friend class ::WinFriend;
 
6315
  friend class ::ExtAC;
 
6316
  friend class ::ExtACBuilderCoupling;
 
6317
  friend class ::ExtACSyntaxCoupling;
 
6318
  friend class ::ExtACTree;
 
6319
  friend class ::ExtACKeywords;
 
6320
  friend class ::ExtGnu;
 
6321
  friend class ::PragmaOnceUnitState;
 
6322
  friend class ::PragmaOnce;
 
6323
  friend class ::CMatchSyntax;
 
6324
 
 
6325
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6326
 
 
6327
public:
 
6328
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6329
  static const char *NodeId ();
 
6330
  /** Get the name of the node. Can be compared with NodeId(). */
 
6331
  const char *NodeName () const { return NodeId (); }
 
6332
};
 
6333
 
 
6334
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
6335
 *  Tree node representing a compound statement. */
 
6336
 
 
6337
#line 6338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6338
} // closed Puma
 
6339
class CCExprResolve;
 
6340
class CExprResolve;
 
6341
class WinIfExists;
 
6342
class WinImportHandler;
 
6343
class WinMacros;
 
6344
class WinAsm;
 
6345
class WinDeclSpecs;
 
6346
class WinMemberExplSpec;
 
6347
class WinTypeKeywords;
 
6348
class WinFriend;
 
6349
class ExtAC;
 
6350
class ExtACBuilderCoupling;
 
6351
class ExtACSyntaxCoupling;
 
6352
class ExtACTree;
 
6353
class ExtACKeywords;
 
6354
class ExtGnu;
 
6355
class PragmaOnceUnitState;
 
6356
class PragmaOnce;
 
6357
class CMatchSyntax;
 
6358
namespace Puma {
 
6359
 
 
6360
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6361
class CT_CmpdStmt : public CT_List, public CSemScope {
 
6362
#line 6363 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6363
  friend class ::CCExprResolve;
 
6364
  friend class ::CExprResolve;
 
6365
  friend class ::WinIfExists;
 
6366
  friend class ::WinImportHandler;
 
6367
  friend class ::WinMacros;
 
6368
  friend class ::WinAsm;
 
6369
  friend class ::WinDeclSpecs;
 
6370
  friend class ::WinMemberExplSpec;
 
6371
  friend class ::WinTypeKeywords;
 
6372
  friend class ::WinFriend;
 
6373
  friend class ::ExtAC;
 
6374
  friend class ::ExtACBuilderCoupling;
 
6375
  friend class ::ExtACSyntaxCoupling;
 
6376
  friend class ::ExtACTree;
 
6377
  friend class ::ExtACKeywords;
 
6378
  friend class ::ExtGnu;
 
6379
  friend class ::PragmaOnceUnitState;
 
6380
  friend class ::PragmaOnce;
 
6381
  friend class ::CMatchSyntax;
 
6382
 
 
6383
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6384
 
 
6385
public:
 
6386
  /* Constructor. */
 
6387
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
6388
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6389
  static const char *NodeId ();
 
6390
  /** Get the name of the node. Can be compared with NodeId(). */
 
6391
  const char *NodeName () const { return NodeId (); }
 
6392
  /** Get the local scope of the compound statement. */
 
6393
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
6394
};
 
6395
 
 
6396
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
6397
 *  Tree node representing an exception handler sequence. */
 
6398
 
 
6399
#line 6400 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6400
} // closed Puma
 
6401
class CCExprResolve;
 
6402
class CExprResolve;
 
6403
class WinIfExists;
 
6404
class WinImportHandler;
 
6405
class WinMacros;
 
6406
class WinAsm;
 
6407
class WinDeclSpecs;
 
6408
class WinMemberExplSpec;
 
6409
class WinTypeKeywords;
 
6410
class WinFriend;
 
6411
class ExtAC;
 
6412
class ExtACBuilderCoupling;
 
6413
class ExtACSyntaxCoupling;
 
6414
class ExtACTree;
 
6415
class ExtACKeywords;
 
6416
class ExtGnu;
 
6417
class PragmaOnceUnitState;
 
6418
class PragmaOnce;
 
6419
class CMatchSyntax;
 
6420
namespace Puma {
 
6421
 
 
6422
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6423
class CT_HandlerSeq : public CT_List {
 
6424
#line 6425 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6425
  friend class ::CCExprResolve;
 
6426
  friend class ::CExprResolve;
 
6427
  friend class ::WinIfExists;
 
6428
  friend class ::WinImportHandler;
 
6429
  friend class ::WinMacros;
 
6430
  friend class ::WinAsm;
 
6431
  friend class ::WinDeclSpecs;
 
6432
  friend class ::WinMemberExplSpec;
 
6433
  friend class ::WinTypeKeywords;
 
6434
  friend class ::WinFriend;
 
6435
  friend class ::ExtAC;
 
6436
  friend class ::ExtACBuilderCoupling;
 
6437
  friend class ::ExtACSyntaxCoupling;
 
6438
  friend class ::ExtACTree;
 
6439
  friend class ::ExtACKeywords;
 
6440
  friend class ::ExtGnu;
 
6441
  friend class ::PragmaOnceUnitState;
 
6442
  friend class ::PragmaOnce;
 
6443
  friend class ::CMatchSyntax;
 
6444
 
 
6445
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6446
 
 
6447
public:
 
6448
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6449
  static const char *NodeId ();
 
6450
  /** Get the name of the node. Can be compared with NodeId(). */
 
6451
  const char *NodeName () const { return NodeId (); }
 
6452
};
 
6453
 
 
6454
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
6455
 *  Tree node representing a template parameter list. */
 
6456
 
 
6457
#line 6458 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6458
} // closed Puma
 
6459
class CCExprResolve;
 
6460
class CExprResolve;
 
6461
class WinIfExists;
 
6462
class WinImportHandler;
 
6463
class WinMacros;
 
6464
class WinAsm;
 
6465
class WinDeclSpecs;
 
6466
class WinMemberExplSpec;
 
6467
class WinTypeKeywords;
 
6468
class WinFriend;
 
6469
class ExtAC;
 
6470
class ExtACBuilderCoupling;
 
6471
class ExtACSyntaxCoupling;
 
6472
class ExtACTree;
 
6473
class ExtACKeywords;
 
6474
class ExtGnu;
 
6475
class PragmaOnceUnitState;
 
6476
class PragmaOnce;
 
6477
class CMatchSyntax;
 
6478
namespace Puma {
 
6479
 
 
6480
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6481
class CT_TemplateParamList : public CT_List, public CSemScope {
 
6482
#line 6483 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6483
  friend class ::CCExprResolve;
 
6484
  friend class ::CExprResolve;
 
6485
  friend class ::WinIfExists;
 
6486
  friend class ::WinImportHandler;
 
6487
  friend class ::WinMacros;
 
6488
  friend class ::WinAsm;
 
6489
  friend class ::WinDeclSpecs;
 
6490
  friend class ::WinMemberExplSpec;
 
6491
  friend class ::WinTypeKeywords;
 
6492
  friend class ::WinFriend;
 
6493
  friend class ::ExtAC;
 
6494
  friend class ::ExtACBuilderCoupling;
 
6495
  friend class ::ExtACSyntaxCoupling;
 
6496
  friend class ::ExtACTree;
 
6497
  friend class ::ExtACKeywords;
 
6498
  friend class ::ExtGnu;
 
6499
  friend class ::PragmaOnceUnitState;
 
6500
  friend class ::PragmaOnce;
 
6501
  friend class ::CMatchSyntax;
 
6502
 
 
6503
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6504
 
 
6505
public:
 
6506
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
6507
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6508
  static const char *NodeId ();
 
6509
  /** Get the name of the node. Can be compared with NodeId(). */
 
6510
  const char *NodeName () const { return NodeId (); }
 
6511
  /** Get the scope of the template parameter list. */
 
6512
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
6513
};
 
6514
 
 
6515
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
6516
 *  Tree node representing a template argument list. */
 
6517
 
 
6518
#line 6519 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6519
} // closed Puma
 
6520
class CCExprResolve;
 
6521
class CExprResolve;
 
6522
class WinIfExists;
 
6523
class WinImportHandler;
 
6524
class WinMacros;
 
6525
class WinAsm;
 
6526
class WinDeclSpecs;
 
6527
class WinMemberExplSpec;
 
6528
class WinTypeKeywords;
 
6529
class WinFriend;
 
6530
class ExtAC;
 
6531
class ExtACBuilderCoupling;
 
6532
class ExtACSyntaxCoupling;
 
6533
class ExtACTree;
 
6534
class ExtACKeywords;
 
6535
class ExtGnu;
 
6536
class PragmaOnceUnitState;
 
6537
class PragmaOnce;
 
6538
class CMatchSyntax;
 
6539
namespace Puma {
 
6540
 
 
6541
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6542
class CT_TemplateArgList : public CT_List {
 
6543
#line 6544 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6544
  friend class ::CCExprResolve;
 
6545
  friend class ::CExprResolve;
 
6546
  friend class ::WinIfExists;
 
6547
  friend class ::WinImportHandler;
 
6548
  friend class ::WinMacros;
 
6549
  friend class ::WinAsm;
 
6550
  friend class ::WinDeclSpecs;
 
6551
  friend class ::WinMemberExplSpec;
 
6552
  friend class ::WinTypeKeywords;
 
6553
  friend class ::WinFriend;
 
6554
  friend class ::ExtAC;
 
6555
  friend class ::ExtACBuilderCoupling;
 
6556
  friend class ::ExtACSyntaxCoupling;
 
6557
  friend class ::ExtACTree;
 
6558
  friend class ::ExtACKeywords;
 
6559
  friend class ::ExtGnu;
 
6560
  friend class ::PragmaOnceUnitState;
 
6561
  friend class ::PragmaOnce;
 
6562
  friend class ::CMatchSyntax;
 
6563
 
 
6564
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6565
 
 
6566
public:
 
6567
  /** Constructor. */
 
6568
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
6569
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6570
  static const char *NodeId ();
 
6571
  /** Get the name of the node. Can be compared with NodeId(). */
 
6572
  const char *NodeName () const { return NodeId (); }
 
6573
};
 
6574
 
 
6575
/*****************************************************************************/
 
6576
/*                                                                           */
 
6577
/*                              Expressions                                  */
 
6578
/*                                                                           */
 
6579
/*****************************************************************************/
 
6580
 
 
6581
/** \class CT_Expression CTree.h Puma/CTree.h
 
6582
 *  Base class for all expression tree nodes. */
 
6583
 
 
6584
#line 6585 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6585
} // closed Puma
 
6586
class CCExprResolve;
 
6587
class CExprResolve;
 
6588
class WinIfExists;
 
6589
class WinImportHandler;
 
6590
class WinMacros;
 
6591
class WinAsm;
 
6592
class WinDeclSpecs;
 
6593
class WinMemberExplSpec;
 
6594
class WinTypeKeywords;
 
6595
class WinFriend;
 
6596
class ExtAC;
 
6597
class ExtACBuilderCoupling;
 
6598
class ExtACSyntaxCoupling;
 
6599
class ExtACTree;
 
6600
class ExtACKeywords;
 
6601
class ExtGnu;
 
6602
class PragmaOnceUnitState;
 
6603
class PragmaOnce;
 
6604
class CMatchSyntax;
 
6605
namespace Puma {
 
6606
 
 
6607
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6608
 
 
6609
#line 6610 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6610
} // closed Puma
 
6611
 
 
6612
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6613
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6614
#include "CCExprResolveH.ah"
 
6615
#endif
 
6616
namespace Puma {
 
6617
 
 
6618
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6619
 
 
6620
#line 6621 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6621
} // closed Puma
 
6622
 
 
6623
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6624
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6625
#include "CExprResolveH.ah"
 
6626
#endif
 
6627
namespace Puma {
 
6628
 
 
6629
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6630
class CT_Expression : public CTree, public CSemValue {
 
6631
#line 6632 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6632
  friend class ::CCExprResolve;
 
6633
  friend class ::CExprResolve;
 
6634
  friend class ::WinIfExists;
 
6635
  friend class ::WinImportHandler;
 
6636
  friend class ::WinMacros;
 
6637
  friend class ::WinAsm;
 
6638
  friend class ::WinDeclSpecs;
 
6639
  friend class ::WinMemberExplSpec;
 
6640
  friend class ::WinTypeKeywords;
 
6641
  friend class ::WinFriend;
 
6642
  friend class ::ExtAC;
 
6643
  friend class ::ExtACBuilderCoupling;
 
6644
  friend class ::ExtACSyntaxCoupling;
 
6645
  friend class ::ExtACTree;
 
6646
  friend class ::ExtACKeywords;
 
6647
  friend class ::ExtGnu;
 
6648
  friend class ::PragmaOnceUnitState;
 
6649
  friend class ::PragmaOnce;
 
6650
  friend class ::CMatchSyntax;
 
6651
 
 
6652
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6653
 
 
6654
protected:
 
6655
  /** Constructor. */
 
6656
  CT_Expression () {}
 
6657
 
 
6658
public:
 
6659
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6660
  static const char *NodeId ();
 
6661
  /** Get the name of the node. Can be compared with NodeId(). */
 
6662
  const char *NodeName () const { return NodeId (); }
 
6663
  /** Get the type of the expression.
 
6664
   *  \return The type information object or NULL. */
 
6665
  CTypeInfo *Type () const { return type; }
 
6666
  /** Get the value of the expression.
 
6667
   *  \return The value object or NULL. */
 
6668
  CExprValue *Value () const { return value; }
 
6669
  /** Get the semantic value information of the expression.
 
6670
   *  \return The value object or NULL. */
 
6671
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
6672
  /** Get this. */
 
6673
  virtual CT_Expression *IsExpression () { return this; }
 
6674
   private:
 
6675
  typedef CT_Expression CCExprResolveExpr;
 
6676
 
 
6677
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6678
 public :
 
6679
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
6680
  typedef CT_Expression CExprResolveExpr;
 
6681
 
 
6682
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6683
 public :
 
6684
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
6685
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6686
};
 
6687
 
 
6688
/** \class CT_Call CTree.h Puma/CTree.h
 
6689
 *  Tree node representing explicit or implicit function calls 
 
6690
 *  including built-in or user-defined functions and overloaded
 
6691
 *  operators. */
 
6692
 
 
6693
#line 6694 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6694
} // closed Puma
 
6695
class CCExprResolve;
 
6696
class CExprResolve;
 
6697
class WinIfExists;
 
6698
class WinImportHandler;
 
6699
class WinMacros;
 
6700
class WinAsm;
 
6701
class WinDeclSpecs;
 
6702
class WinMemberExplSpec;
 
6703
class WinTypeKeywords;
 
6704
class WinFriend;
 
6705
class ExtAC;
 
6706
class ExtACBuilderCoupling;
 
6707
class ExtACSyntaxCoupling;
 
6708
class ExtACTree;
 
6709
class ExtACKeywords;
 
6710
class ExtGnu;
 
6711
class PragmaOnceUnitState;
 
6712
class PragmaOnce;
 
6713
class CMatchSyntax;
 
6714
namespace Puma {
 
6715
 
 
6716
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6717
 
 
6718
#line 6719 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6719
} // closed Puma
 
6720
 
 
6721
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6722
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6723
#include "CCExprResolveH.ah"
 
6724
#endif
 
6725
namespace Puma {
 
6726
 
 
6727
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6728
 
 
6729
#line 6730 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6730
} // closed Puma
 
6731
 
 
6732
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6733
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6734
#include "CExprResolveH.ah"
 
6735
#endif
 
6736
namespace Puma {
 
6737
 
 
6738
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6739
class CT_Call : public CT_Expression, public CSemObject {
 
6740
#line 6741 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6741
  friend class ::CCExprResolve;
 
6742
  friend class ::CExprResolve;
 
6743
  friend class ::WinIfExists;
 
6744
  friend class ::WinImportHandler;
 
6745
  friend class ::WinMacros;
 
6746
  friend class ::WinAsm;
 
6747
  friend class ::WinDeclSpecs;
 
6748
  friend class ::WinMemberExplSpec;
 
6749
  friend class ::WinTypeKeywords;
 
6750
  friend class ::WinFriend;
 
6751
  friend class ::ExtAC;
 
6752
  friend class ::ExtACBuilderCoupling;
 
6753
  friend class ::ExtACSyntaxCoupling;
 
6754
  friend class ::ExtACTree;
 
6755
  friend class ::ExtACKeywords;
 
6756
  friend class ::ExtGnu;
 
6757
  friend class ::PragmaOnceUnitState;
 
6758
  friend class ::PragmaOnce;
 
6759
  friend class ::CMatchSyntax;
 
6760
 
 
6761
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6762
 
 
6763
protected:
 
6764
  /** Constructor. */
 
6765
  CT_Call () {}
 
6766
  
 
6767
public:
 
6768
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6769
  static const char *NodeId ();
 
6770
  /** Get the name of the node. Can be compared with NodeId(). */
 
6771
  const char *NodeName () const { return NodeId (); }
 
6772
  /** Get the semantic information of the call.
 
6773
   *  \return The semantic information or NULL. */
 
6774
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
6775
  /** Get this. */
 
6776
  CT_Call *IsCall () { return this; }
 
6777
   private:
 
6778
  typedef CT_Call CCExprResolveExpr;
 
6779
 
 
6780
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6781
 public :
 
6782
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
6783
  typedef CT_Call CExprResolveExpr;
 
6784
 
 
6785
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6786
 public :
 
6787
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
6788
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6789
};
 
6790
 
 
6791
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
6792
 *  Tree node representing implicit function calls detected by
 
6793
 *  the semantic analysis. */
 
6794
 
 
6795
#line 6796 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6796
} // closed Puma
 
6797
class CCExprResolve;
 
6798
class CExprResolve;
 
6799
class WinIfExists;
 
6800
class WinImportHandler;
 
6801
class WinMacros;
 
6802
class WinAsm;
 
6803
class WinDeclSpecs;
 
6804
class WinMemberExplSpec;
 
6805
class WinTypeKeywords;
 
6806
class WinFriend;
 
6807
class ExtAC;
 
6808
class ExtACBuilderCoupling;
 
6809
class ExtACSyntaxCoupling;
 
6810
class ExtACTree;
 
6811
class ExtACKeywords;
 
6812
class ExtGnu;
 
6813
class PragmaOnceUnitState;
 
6814
class PragmaOnce;
 
6815
class CMatchSyntax;
 
6816
namespace Puma {
 
6817
 
 
6818
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6819
 
 
6820
#line 6821 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6821
} // closed Puma
 
6822
 
 
6823
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6824
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6825
#include "CCExprResolveH.ah"
 
6826
#endif
 
6827
namespace Puma {
 
6828
 
 
6829
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6830
 
 
6831
#line 6832 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6832
} // closed Puma
 
6833
 
 
6834
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6835
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6836
#include "CExprResolveH.ah"
 
6837
#endif
 
6838
namespace Puma {
 
6839
 
 
6840
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6841
class CT_ImplicitCall : public CT_Call {
 
6842
#line 6843 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6843
  friend class ::CCExprResolve;
 
6844
  friend class ::CExprResolve;
 
6845
  friend class ::WinIfExists;
 
6846
  friend class ::WinImportHandler;
 
6847
  friend class ::WinMacros;
 
6848
  friend class ::WinAsm;
 
6849
  friend class ::WinDeclSpecs;
 
6850
  friend class ::WinMemberExplSpec;
 
6851
  friend class ::WinTypeKeywords;
 
6852
  friend class ::WinFriend;
 
6853
  friend class ::ExtAC;
 
6854
  friend class ::ExtACBuilderCoupling;
 
6855
  friend class ::ExtACSyntaxCoupling;
 
6856
  friend class ::ExtACTree;
 
6857
  friend class ::ExtACKeywords;
 
6858
  friend class ::ExtGnu;
 
6859
  friend class ::PragmaOnceUnitState;
 
6860
  friend class ::PragmaOnce;
 
6861
  friend class ::CMatchSyntax;
 
6862
 
 
6863
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6864
 
 
6865
  CTree *_arg;
 
6866
 
 
6867
public:
 
6868
  /** Constructor.
 
6869
   *  \param arg The call argument. */
 
6870
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
6871
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6872
  static const char *NodeId ();
 
6873
  /** Get the name of the node. Can be compared with NodeId(). */
 
6874
  const char *NodeName () const { return NodeId (); }
 
6875
  /** Get the number of sons. */
 
6876
  int Sons () const { return 1; }
 
6877
  /** Get the n-th son.
 
6878
   *  \param n The index of the son.
 
6879
   *  \return The n-th son or NULL. */
 
6880
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
6881
  /** Replace a son.
 
6882
   *  \param old_son The son to replace.
 
6883
   *  \param new_son The new son. */
 
6884
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
6885
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
6886
   private:
 
6887
  typedef CT_ImplicitCall CCExprResolveExpr;
 
6888
 
 
6889
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6890
 public :
 
6891
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
6892
  typedef CT_ImplicitCall CExprResolveExpr;
 
6893
 
 
6894
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6895
 public :
 
6896
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
6897
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6898
};
 
6899
 
 
6900
/** \class CT_String CTree.h Puma/CTree.h
 
6901
 *  Tree node representing a string literal. */
 
6902
 
 
6903
#line 6904 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6904
} // closed Puma
 
6905
class CCExprResolve;
 
6906
class CExprResolve;
 
6907
class WinIfExists;
 
6908
class WinImportHandler;
 
6909
class WinMacros;
 
6910
class WinAsm;
 
6911
class WinDeclSpecs;
 
6912
class WinMemberExplSpec;
 
6913
class WinTypeKeywords;
 
6914
class WinFriend;
 
6915
class ExtAC;
 
6916
class ExtACBuilderCoupling;
 
6917
class ExtACSyntaxCoupling;
 
6918
class ExtACTree;
 
6919
class ExtACKeywords;
 
6920
class ExtGnu;
 
6921
class PragmaOnceUnitState;
 
6922
class PragmaOnce;
 
6923
class CMatchSyntax;
 
6924
namespace Puma {
 
6925
 
 
6926
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6927
 
 
6928
#line 6929 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6929
} // closed Puma
 
6930
 
 
6931
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6932
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6933
#include "CCExprResolveH.ah"
 
6934
#endif
 
6935
namespace Puma {
 
6936
 
 
6937
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6938
 
 
6939
#line 6940 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6940
} // closed Puma
 
6941
 
 
6942
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6943
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6944
#include "CExprResolveH.ah"
 
6945
#endif
 
6946
namespace Puma {
 
6947
 
 
6948
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6949
class CT_String : public CT_List, public CSemValue {
 
6950
#line 6951 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
6951
  friend class ::CCExprResolve;
 
6952
  friend class ::CExprResolve;
 
6953
  friend class ::WinIfExists;
 
6954
  friend class ::WinImportHandler;
 
6955
  friend class ::WinMacros;
 
6956
  friend class ::WinAsm;
 
6957
  friend class ::WinDeclSpecs;
 
6958
  friend class ::WinMemberExplSpec;
 
6959
  friend class ::WinTypeKeywords;
 
6960
  friend class ::WinFriend;
 
6961
  friend class ::ExtAC;
 
6962
  friend class ::ExtACBuilderCoupling;
 
6963
  friend class ::ExtACSyntaxCoupling;
 
6964
  friend class ::ExtACTree;
 
6965
  friend class ::ExtACKeywords;
 
6966
  friend class ::ExtGnu;
 
6967
  friend class ::PragmaOnceUnitState;
 
6968
  friend class ::PragmaOnce;
 
6969
  friend class ::CMatchSyntax;
 
6970
 
 
6971
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6972
 
 
6973
public:
 
6974
  /** Constructor. 
 
6975
   *  \param size The number of sub-strings. */
 
6976
  CT_String (int size) : CT_List (size, 1) {}
 
6977
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
6978
  static const char *NodeId ();
 
6979
  /** Get the name of the node. Can be compared with NodeId(). */
 
6980
  const char *NodeName () const { return NodeId (); }
 
6981
 
 
6982
  /** Get the type of the string. 
 
6983
   *  \return The type or NULL. */
 
6984
  CTypeInfo *Type () const { return type; }
 
6985
  /** Get the string value.
 
6986
   *  \return The value or NULL. */
 
6987
  CExprValue *Value () const { return value; }
 
6988
  /** Get the semantic value info object.
 
6989
   *  \return The semantic value object or NULL. */
 
6990
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
6991
  /** Get this. */
 
6992
  virtual CT_String *IsString () { return this; }
 
6993
   private:
 
6994
  typedef CT_String CCExprResolveExpr;
 
6995
 
 
6996
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6997
 public :
 
6998
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
6999
  typedef CT_String CExprResolveExpr;
 
7000
 
 
7001
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7002
 public :
 
7003
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7004
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7005
};
 
7006
 
 
7007
/** \class CT_WideString CTree.h Puma/CTree.h
 
7008
 *  Tree node representing a wide string literal. */
 
7009
 
 
7010
#line 7011 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7011
} // closed Puma
 
7012
class CCExprResolve;
 
7013
class CExprResolve;
 
7014
class WinIfExists;
 
7015
class WinImportHandler;
 
7016
class WinMacros;
 
7017
class WinAsm;
 
7018
class WinDeclSpecs;
 
7019
class WinMemberExplSpec;
 
7020
class WinTypeKeywords;
 
7021
class WinFriend;
 
7022
class ExtAC;
 
7023
class ExtACBuilderCoupling;
 
7024
class ExtACSyntaxCoupling;
 
7025
class ExtACTree;
 
7026
class ExtACKeywords;
 
7027
class ExtGnu;
 
7028
class PragmaOnceUnitState;
 
7029
class PragmaOnce;
 
7030
class CMatchSyntax;
 
7031
namespace Puma {
 
7032
 
 
7033
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7034
 
 
7035
#line 7036 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7036
} // closed Puma
 
7037
 
 
7038
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7039
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7040
#include "CCExprResolveH.ah"
 
7041
#endif
 
7042
namespace Puma {
 
7043
 
 
7044
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7045
 
 
7046
#line 7047 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7047
} // closed Puma
 
7048
 
 
7049
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7050
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7051
#include "CExprResolveH.ah"
 
7052
#endif
 
7053
namespace Puma {
 
7054
 
 
7055
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7056
class CT_WideString : public CT_String {
 
7057
#line 7058 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7058
  friend class ::CCExprResolve;
 
7059
  friend class ::CExprResolve;
 
7060
  friend class ::WinIfExists;
 
7061
  friend class ::WinImportHandler;
 
7062
  friend class ::WinMacros;
 
7063
  friend class ::WinAsm;
 
7064
  friend class ::WinDeclSpecs;
 
7065
  friend class ::WinMemberExplSpec;
 
7066
  friend class ::WinTypeKeywords;
 
7067
  friend class ::WinFriend;
 
7068
  friend class ::ExtAC;
 
7069
  friend class ::ExtACBuilderCoupling;
 
7070
  friend class ::ExtACSyntaxCoupling;
 
7071
  friend class ::ExtACTree;
 
7072
  friend class ::ExtACKeywords;
 
7073
  friend class ::ExtGnu;
 
7074
  friend class ::PragmaOnceUnitState;
 
7075
  friend class ::PragmaOnce;
 
7076
  friend class ::CMatchSyntax;
 
7077
 
 
7078
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7079
 
 
7080
public:
 
7081
  /** Constructor.
 
7082
   *  \param size The number of sub-strings. */
 
7083
  CT_WideString (int size) : CT_String (size) {}
 
7084
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
7085
  static const char *NodeId ();
 
7086
  /** Get the name of the node. Can be compared with NodeId(). */
 
7087
  const char *NodeName () const { return NodeId (); }
 
7088
   private:
 
7089
  typedef CT_WideString CCExprResolveExpr;
 
7090
 
 
7091
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7092
 public :
 
7093
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
7094
  typedef CT_WideString CExprResolveExpr;
 
7095
 
 
7096
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7097
 public :
 
7098
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7099
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7100
};
 
7101
 
 
7102
/** \class CT_Integer CTree.h Puma/CTree.h
 
7103
 *  Tree node representing an integer constant. */
 
7104
 
 
7105
#line 7106 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7106
} // closed Puma
 
7107
class CCExprResolve;
 
7108
class CExprResolve;
 
7109
class WinIfExists;
 
7110
class WinImportHandler;
 
7111
class WinMacros;
 
7112
class WinAsm;
 
7113
class WinDeclSpecs;
 
7114
class WinMemberExplSpec;
 
7115
class WinTypeKeywords;
 
7116
class WinFriend;
 
7117
class ExtAC;
 
7118
class ExtACBuilderCoupling;
 
7119
class ExtACSyntaxCoupling;
 
7120
class ExtACTree;
 
7121
class ExtACKeywords;
 
7122
class ExtGnu;
 
7123
class PragmaOnceUnitState;
 
7124
class PragmaOnce;
 
7125
class CMatchSyntax;
 
7126
namespace Puma {
 
7127
 
 
7128
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7129
 
 
7130
#line 7131 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7131
} // closed Puma
 
7132
 
 
7133
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7134
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7135
#include "CCExprResolveH.ah"
 
7136
#endif
 
7137
namespace Puma {
 
7138
 
 
7139
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7140
 
 
7141
#line 7142 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7142
} // closed Puma
 
7143
 
 
7144
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7145
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7146
#include "CExprResolveH.ah"
 
7147
#endif
 
7148
namespace Puma {
 
7149
 
 
7150
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7151
class CT_Integer : public CT_Expression {
 
7152
#line 7153 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7153
  friend class ::CCExprResolve;
 
7154
  friend class ::CExprResolve;
 
7155
  friend class ::WinIfExists;
 
7156
  friend class ::WinImportHandler;
 
7157
  friend class ::WinMacros;
 
7158
  friend class ::WinAsm;
 
7159
  friend class ::WinDeclSpecs;
 
7160
  friend class ::WinMemberExplSpec;
 
7161
  friend class ::WinTypeKeywords;
 
7162
  friend class ::WinFriend;
 
7163
  friend class ::ExtAC;
 
7164
  friend class ::ExtACBuilderCoupling;
 
7165
  friend class ::ExtACSyntaxCoupling;
 
7166
  friend class ::ExtACTree;
 
7167
  friend class ::ExtACKeywords;
 
7168
  friend class ::ExtGnu;
 
7169
  friend class ::PragmaOnceUnitState;
 
7170
  friend class ::PragmaOnce;
 
7171
  friend class ::CMatchSyntax;
 
7172
 
 
7173
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7174
 
 
7175
  CTree *_value;  // CT_Token
 
7176
 
 
7177
public:
 
7178
  /** Constructor.
 
7179
   *  \param token The token containing the integer value. */
 
7180
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
7181
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
7182
  static const char *NodeId ();
 
7183
  /** Get the name of the node. Can be compared with NodeId(). */
 
7184
  const char *NodeName () const { return NodeId (); }
 
7185
  /** Get the number of sons. */
 
7186
  int Sons () const { return _value ? 1 : 0; }
 
7187
  /** Get the n-th son.
 
7188
   *  \param n The index of the son.
 
7189
   *  \return The n-th son or NULL. */
 
7190
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
7191
  /** Replace a son.
 
7192
   *  \param old_son The son to replace.
 
7193
   *  \param new_son The new son. */
 
7194
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
7195
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
7196
   private:
 
7197
  typedef CT_Integer CCExprResolveExpr;
 
7198
 
 
7199
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7200
 public :
 
7201
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
7202
  typedef CT_Integer CExprResolveExpr;
 
7203
 
 
7204
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7205
 public :
 
7206
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7207
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7208
};
 
7209
 
 
7210
/** \class CT_Character CTree.h Puma/CTree.h
 
7211
 *  Tree node representing a single character constant. */
 
7212
 
 
7213
#line 7214 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7214
} // closed Puma
 
7215
class CCExprResolve;
 
7216
class CExprResolve;
 
7217
class WinIfExists;
 
7218
class WinImportHandler;
 
7219
class WinMacros;
 
7220
class WinAsm;
 
7221
class WinDeclSpecs;
 
7222
class WinMemberExplSpec;
 
7223
class WinTypeKeywords;
 
7224
class WinFriend;
 
7225
class ExtAC;
 
7226
class ExtACBuilderCoupling;
 
7227
class ExtACSyntaxCoupling;
 
7228
class ExtACTree;
 
7229
class ExtACKeywords;
 
7230
class ExtGnu;
 
7231
class PragmaOnceUnitState;
 
7232
class PragmaOnce;
 
7233
class CMatchSyntax;
 
7234
namespace Puma {
 
7235
 
 
7236
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7237
 
 
7238
#line 7239 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7239
} // closed Puma
 
7240
 
 
7241
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7242
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7243
#include "CCExprResolveH.ah"
 
7244
#endif
 
7245
namespace Puma {
 
7246
 
 
7247
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7248
 
 
7249
#line 7250 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7250
} // closed Puma
 
7251
 
 
7252
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7253
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7254
#include "CExprResolveH.ah"
 
7255
#endif
 
7256
namespace Puma {
 
7257
 
 
7258
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7259
class CT_Character : public CT_Expression {
 
7260
#line 7261 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7261
  friend class ::CCExprResolve;
 
7262
  friend class ::CExprResolve;
 
7263
  friend class ::WinIfExists;
 
7264
  friend class ::WinImportHandler;
 
7265
  friend class ::WinMacros;
 
7266
  friend class ::WinAsm;
 
7267
  friend class ::WinDeclSpecs;
 
7268
  friend class ::WinMemberExplSpec;
 
7269
  friend class ::WinTypeKeywords;
 
7270
  friend class ::WinFriend;
 
7271
  friend class ::ExtAC;
 
7272
  friend class ::ExtACBuilderCoupling;
 
7273
  friend class ::ExtACSyntaxCoupling;
 
7274
  friend class ::ExtACTree;
 
7275
  friend class ::ExtACKeywords;
 
7276
  friend class ::ExtGnu;
 
7277
  friend class ::PragmaOnceUnitState;
 
7278
  friend class ::PragmaOnce;
 
7279
  friend class ::CMatchSyntax;
 
7280
 
 
7281
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7282
 
 
7283
  CTree *_value;  // CT_Token
 
7284
 
 
7285
public:
 
7286
  /** Constructor.
 
7287
   *  \param token The token containing the character value. */
 
7288
  CT_Character (CTree *token) { AddSon (_value, token); }
 
7289
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
7290
  static const char *NodeId ();
 
7291
  /** Get the name of the node. Can be compared with NodeId(). */
 
7292
  const char *NodeName () const { return NodeId (); }
 
7293
  /** Get the number of sons. */
 
7294
  int Sons () const { return 1; }
 
7295
  /** Get the n-th son.
 
7296
   *  \param n The index of the son.
 
7297
   *  \return The n-th son or NULL. */
 
7298
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
7299
  /** Replace a son.
 
7300
   *  \param old_son The son to replace.
 
7301
   *  \param new_son The new son. */
 
7302
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
7303
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
7304
   private:
 
7305
  typedef CT_Character CCExprResolveExpr;
 
7306
 
 
7307
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7308
 public :
 
7309
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
7310
  typedef CT_Character CExprResolveExpr;
 
7311
 
 
7312
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7313
 public :
 
7314
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7315
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7316
};
 
7317
 
 
7318
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
7319
 *  Tree node representing a wide character constant. */
 
7320
 
 
7321
#line 7322 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7322
} // closed Puma
 
7323
class CCExprResolve;
 
7324
class CExprResolve;
 
7325
class WinIfExists;
 
7326
class WinImportHandler;
 
7327
class WinMacros;
 
7328
class WinAsm;
 
7329
class WinDeclSpecs;
 
7330
class WinMemberExplSpec;
 
7331
class WinTypeKeywords;
 
7332
class WinFriend;
 
7333
class ExtAC;
 
7334
class ExtACBuilderCoupling;
 
7335
class ExtACSyntaxCoupling;
 
7336
class ExtACTree;
 
7337
class ExtACKeywords;
 
7338
class ExtGnu;
 
7339
class PragmaOnceUnitState;
 
7340
class PragmaOnce;
 
7341
class CMatchSyntax;
 
7342
namespace Puma {
 
7343
 
 
7344
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7345
 
 
7346
#line 7347 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7347
} // closed Puma
 
7348
 
 
7349
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7350
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7351
#include "CCExprResolveH.ah"
 
7352
#endif
 
7353
namespace Puma {
 
7354
 
 
7355
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7356
 
 
7357
#line 7358 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7358
} // closed Puma
 
7359
 
 
7360
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7361
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7362
#include "CExprResolveH.ah"
 
7363
#endif
 
7364
namespace Puma {
 
7365
 
 
7366
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7367
class CT_WideCharacter : public CT_Character {
 
7368
#line 7369 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7369
  friend class ::CCExprResolve;
 
7370
  friend class ::CExprResolve;
 
7371
  friend class ::WinIfExists;
 
7372
  friend class ::WinImportHandler;
 
7373
  friend class ::WinMacros;
 
7374
  friend class ::WinAsm;
 
7375
  friend class ::WinDeclSpecs;
 
7376
  friend class ::WinMemberExplSpec;
 
7377
  friend class ::WinTypeKeywords;
 
7378
  friend class ::WinFriend;
 
7379
  friend class ::ExtAC;
 
7380
  friend class ::ExtACBuilderCoupling;
 
7381
  friend class ::ExtACSyntaxCoupling;
 
7382
  friend class ::ExtACTree;
 
7383
  friend class ::ExtACKeywords;
 
7384
  friend class ::ExtGnu;
 
7385
  friend class ::PragmaOnceUnitState;
 
7386
  friend class ::PragmaOnce;
 
7387
  friend class ::CMatchSyntax;
 
7388
 
 
7389
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7390
 
 
7391
public:
 
7392
  /** Constructor.
 
7393
   *  \param token The token containing the wide character value. */
 
7394
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
7395
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
7396
  static const char *NodeId ();
 
7397
  /** Get the name of the node. Can be compared with NodeId(). */
 
7398
  const char *NodeName () const { return NodeId (); }
 
7399
   private:
 
7400
  typedef CT_WideCharacter CCExprResolveExpr;
 
7401
 
 
7402
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7403
 public :
 
7404
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
7405
  typedef CT_WideCharacter CExprResolveExpr;
 
7406
 
 
7407
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7408
 public :
 
7409
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7410
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7411
};
 
7412
 
 
7413
/** \class CT_Float CTree.h Puma/CTree.h
 
7414
 *  Tree node representing a floating point constant. */
 
7415
 
 
7416
#line 7417 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7417
} // closed Puma
 
7418
class CCExprResolve;
 
7419
class CExprResolve;
 
7420
class WinIfExists;
 
7421
class WinImportHandler;
 
7422
class WinMacros;
 
7423
class WinAsm;
 
7424
class WinDeclSpecs;
 
7425
class WinMemberExplSpec;
 
7426
class WinTypeKeywords;
 
7427
class WinFriend;
 
7428
class ExtAC;
 
7429
class ExtACBuilderCoupling;
 
7430
class ExtACSyntaxCoupling;
 
7431
class ExtACTree;
 
7432
class ExtACKeywords;
 
7433
class ExtGnu;
 
7434
class PragmaOnceUnitState;
 
7435
class PragmaOnce;
 
7436
class CMatchSyntax;
 
7437
namespace Puma {
 
7438
 
 
7439
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7440
 
 
7441
#line 7442 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7442
} // closed Puma
 
7443
 
 
7444
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7445
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7446
#include "CCExprResolveH.ah"
 
7447
#endif
 
7448
namespace Puma {
 
7449
 
 
7450
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7451
 
 
7452
#line 7453 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7453
} // closed Puma
 
7454
 
 
7455
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7456
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7457
#include "CExprResolveH.ah"
 
7458
#endif
 
7459
namespace Puma {
 
7460
 
 
7461
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7462
class CT_Float : public CT_Expression {
 
7463
#line 7464 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7464
  friend class ::CCExprResolve;
 
7465
  friend class ::CExprResolve;
 
7466
  friend class ::WinIfExists;
 
7467
  friend class ::WinImportHandler;
 
7468
  friend class ::WinMacros;
 
7469
  friend class ::WinAsm;
 
7470
  friend class ::WinDeclSpecs;
 
7471
  friend class ::WinMemberExplSpec;
 
7472
  friend class ::WinTypeKeywords;
 
7473
  friend class ::WinFriend;
 
7474
  friend class ::ExtAC;
 
7475
  friend class ::ExtACBuilderCoupling;
 
7476
  friend class ::ExtACSyntaxCoupling;
 
7477
  friend class ::ExtACTree;
 
7478
  friend class ::ExtACKeywords;
 
7479
  friend class ::ExtGnu;
 
7480
  friend class ::PragmaOnceUnitState;
 
7481
  friend class ::PragmaOnce;
 
7482
  friend class ::CMatchSyntax;
 
7483
 
 
7484
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7485
 
 
7486
  CTree *_value;  // CT_Token
 
7487
 
 
7488
public:
 
7489
  /** Constructor.
 
7490
   *  \param token The token containing the floating point value. */
 
7491
  CT_Float (CTree *token) { AddSon (_value, token); }
 
7492
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
7493
  static const char *NodeId ();
 
7494
  /** Get the name of the node. Can be compared with NodeId(). */
 
7495
  const char *NodeName () const { return NodeId (); }
 
7496
  /** Get the number of sons. */
 
7497
  int Sons () const { return 1; }
 
7498
  /** Get the n-th son.
 
7499
   *  \param n The index of the son.
 
7500
   *  \return The n-th son or NULL. */
 
7501
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
7502
  /** Replace a son.
 
7503
   *  \param old_son The son to replace.
 
7504
   *  \param new_son The new son. */
 
7505
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
7506
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
7507
   private:
 
7508
  typedef CT_Float CCExprResolveExpr;
 
7509
 
 
7510
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7511
 public :
 
7512
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
7513
  typedef CT_Float CExprResolveExpr;
 
7514
 
 
7515
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7516
 public :
 
7517
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7518
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7519
};
 
7520
 
 
7521
/** \class CT_Bool CTree.h Puma/CTree.h
 
7522
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
 
7523
 
 
7524
#line 7525 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7525
} // closed Puma
 
7526
class CCExprResolve;
 
7527
class CExprResolve;
 
7528
class WinIfExists;
 
7529
class WinImportHandler;
 
7530
class WinMacros;
 
7531
class WinAsm;
 
7532
class WinDeclSpecs;
 
7533
class WinMemberExplSpec;
 
7534
class WinTypeKeywords;
 
7535
class WinFriend;
 
7536
class ExtAC;
 
7537
class ExtACBuilderCoupling;
 
7538
class ExtACSyntaxCoupling;
 
7539
class ExtACTree;
 
7540
class ExtACKeywords;
 
7541
class ExtGnu;
 
7542
class PragmaOnceUnitState;
 
7543
class PragmaOnce;
 
7544
class CMatchSyntax;
 
7545
namespace Puma {
 
7546
 
 
7547
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7548
 
 
7549
#line 7550 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7550
} // closed Puma
 
7551
 
 
7552
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7553
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7554
#include "CCExprResolveH.ah"
 
7555
#endif
 
7556
namespace Puma {
 
7557
 
 
7558
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7559
 
 
7560
#line 7561 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7561
} // closed Puma
 
7562
 
 
7563
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7564
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7565
#include "CExprResolveH.ah"
 
7566
#endif
 
7567
namespace Puma {
 
7568
 
 
7569
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7570
class CT_Bool : public CT_Expression {
 
7571
#line 7572 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7572
  friend class ::CCExprResolve;
 
7573
  friend class ::CExprResolve;
 
7574
  friend class ::WinIfExists;
 
7575
  friend class ::WinImportHandler;
 
7576
  friend class ::WinMacros;
 
7577
  friend class ::WinAsm;
 
7578
  friend class ::WinDeclSpecs;
 
7579
  friend class ::WinMemberExplSpec;
 
7580
  friend class ::WinTypeKeywords;
 
7581
  friend class ::WinFriend;
 
7582
  friend class ::ExtAC;
 
7583
  friend class ::ExtACBuilderCoupling;
 
7584
  friend class ::ExtACSyntaxCoupling;
 
7585
  friend class ::ExtACTree;
 
7586
  friend class ::ExtACKeywords;
 
7587
  friend class ::ExtGnu;
 
7588
  friend class ::PragmaOnceUnitState;
 
7589
  friend class ::PragmaOnce;
 
7590
  friend class ::CMatchSyntax;
 
7591
 
 
7592
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7593
 
 
7594
  CTree *_value;  // CT_Token
 
7595
 
 
7596
public:
 
7597
  /** Constructor.
 
7598
   *  \param token The token containing the boolean value. */
 
7599
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
7600
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
7601
  static const char *NodeId ();
 
7602
  /** Get the name of the node. Can be compared with NodeId(). */
 
7603
  const char *NodeName () const { return NodeId (); }
 
7604
  /** Get the number of sons. */
 
7605
  int Sons () const { return 1; }
 
7606
  /** Get the n-th son.
 
7607
   *  \param n The index of the son.
 
7608
   *  \return The n-th son or NULL. */
 
7609
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
7610
  /** Replace a son.
 
7611
   *  \param old_son The son to replace.
 
7612
   *  \param new_son The new son. */
 
7613
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
7614
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
7615
   private:
 
7616
  typedef CT_Bool CCExprResolveExpr;
 
7617
 
 
7618
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7619
 public :
 
7620
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
7621
  typedef CT_Bool CExprResolveExpr;
 
7622
 
 
7623
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7624
 public :
 
7625
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7626
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7627
};
 
7628
 
 
7629
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
7630
 *  Tree node representing a braced expression, e.g. (a+b). */
 
7631
 
 
7632
#line 7633 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7633
} // closed Puma
 
7634
class CCExprResolve;
 
7635
class CExprResolve;
 
7636
class WinIfExists;
 
7637
class WinImportHandler;
 
7638
class WinMacros;
 
7639
class WinAsm;
 
7640
class WinDeclSpecs;
 
7641
class WinMemberExplSpec;
 
7642
class WinTypeKeywords;
 
7643
class WinFriend;
 
7644
class ExtAC;
 
7645
class ExtACBuilderCoupling;
 
7646
class ExtACSyntaxCoupling;
 
7647
class ExtACTree;
 
7648
class ExtACKeywords;
 
7649
class ExtGnu;
 
7650
class PragmaOnceUnitState;
 
7651
class PragmaOnce;
 
7652
class CMatchSyntax;
 
7653
namespace Puma {
 
7654
 
 
7655
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7656
 
 
7657
#line 7658 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7658
} // closed Puma
 
7659
 
 
7660
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7661
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7662
#include "CCExprResolveH.ah"
 
7663
#endif
 
7664
namespace Puma {
 
7665
 
 
7666
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7667
 
 
7668
#line 7669 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7669
} // closed Puma
 
7670
 
 
7671
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7672
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7673
#include "CExprResolveH.ah"
 
7674
#endif
 
7675
namespace Puma {
 
7676
 
 
7677
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7678
class CT_BracedExpr : public CT_Expression {
 
7679
#line 7680 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7680
  friend class ::CCExprResolve;
 
7681
  friend class ::CExprResolve;
 
7682
  friend class ::WinIfExists;
 
7683
  friend class ::WinImportHandler;
 
7684
  friend class ::WinMacros;
 
7685
  friend class ::WinAsm;
 
7686
  friend class ::WinDeclSpecs;
 
7687
  friend class ::WinMemberExplSpec;
 
7688
  friend class ::WinTypeKeywords;
 
7689
  friend class ::WinFriend;
 
7690
  friend class ::ExtAC;
 
7691
  friend class ::ExtACBuilderCoupling;
 
7692
  friend class ::ExtACSyntaxCoupling;
 
7693
  friend class ::ExtACTree;
 
7694
  friend class ::ExtACKeywords;
 
7695
  friend class ::ExtGnu;
 
7696
  friend class ::PragmaOnceUnitState;
 
7697
  friend class ::PragmaOnce;
 
7698
  friend class ::CMatchSyntax;
 
7699
 
 
7700
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7701
 
 
7702
  CTree *sons[3]; // open, expr, close
 
7703
 
 
7704
public:
 
7705
  /** Constructor.
 
7706
   *  \param o The opening brace.
 
7707
   *  \param e The enclosed expression.
 
7708
   *  \param c The closing brace. */
 
7709
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
 
7710
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
 
7711
  }
 
7712
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
7713
  static const char *NodeId ();
 
7714
  /** Get the name of the node. Can be compared with NodeId(). */
 
7715
  const char *NodeName () const { return NodeId (); }
 
7716
  /** Get the number of sons. */
 
7717
  int Sons () const { return 3; }
 
7718
  /** Get the n-th son.
 
7719
   *  \param n The index of the son.
 
7720
   *  \return The n-th son or NULL. */
 
7721
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
7722
  /** Get the enclosed expression. */
 
7723
  CTree *Expr () const { return sons[1]; }
 
7724
  /** Get the type of the enclosed expression. */
 
7725
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
7726
  /** Get the value of the enclosed expression. */
 
7727
  CExprValue *Value () const { return Expr ()->Value (); }
 
7728
  /** Get the semantic value object. */
 
7729
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
7730
  /** Replace a son.
 
7731
   *  \param old_son The son to replace.
 
7732
   *  \param new_son The new son. */
 
7733
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
7734
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
7735
  }
 
7736
   private:
 
7737
  typedef CT_BracedExpr CCExprResolveExpr;
 
7738
 
 
7739
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7740
 public :
 
7741
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
7742
  typedef CT_BracedExpr CExprResolveExpr;
 
7743
 
 
7744
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7745
 public :
 
7746
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7747
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7748
};
 
7749
 
 
7750
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
7751
 *  Base class for all tree nodes representing a name. */
 
7752
 
 
7753
#line 7754 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7754
} // closed Puma
 
7755
class CCExprResolve;
 
7756
class CExprResolve;
 
7757
class WinIfExists;
 
7758
class WinImportHandler;
 
7759
class WinMacros;
 
7760
class WinAsm;
 
7761
class WinDeclSpecs;
 
7762
class WinMemberExplSpec;
 
7763
class WinTypeKeywords;
 
7764
class WinFriend;
 
7765
class ExtAC;
 
7766
class ExtACBuilderCoupling;
 
7767
class ExtACSyntaxCoupling;
 
7768
class ExtACTree;
 
7769
class ExtACKeywords;
 
7770
class ExtGnu;
 
7771
class PragmaOnceUnitState;
 
7772
class PragmaOnce;
 
7773
class CMatchSyntax;
 
7774
namespace Puma {
 
7775
 
 
7776
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7777
 
 
7778
#line 7779 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7779
} // closed Puma
 
7780
 
 
7781
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7782
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7783
#include "CCExprResolveH.ah"
 
7784
#endif
 
7785
namespace Puma {
 
7786
 
 
7787
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7788
 
 
7789
#line 7790 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7790
} // closed Puma
 
7791
 
 
7792
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7793
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7794
#include "CExprResolveH.ah"
 
7795
#endif
 
7796
namespace Puma {
 
7797
 
 
7798
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7799
class CT_SimpleName : public CT_List, public Printable, 
 
7800
                      public CSemValue, public CSemObject {
 
7801
#line 7802 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7802
  friend class ::CCExprResolve;
 
7803
  friend class ::CExprResolve;
 
7804
  friend class ::WinIfExists;
 
7805
  friend class ::WinImportHandler;
 
7806
  friend class ::WinMacros;
 
7807
  friend class ::WinAsm;
 
7808
  friend class ::WinDeclSpecs;
 
7809
  friend class ::WinMemberExplSpec;
 
7810
  friend class ::WinTypeKeywords;
 
7811
  friend class ::WinFriend;
 
7812
  friend class ::ExtAC;
 
7813
  friend class ::ExtACBuilderCoupling;
 
7814
  friend class ::ExtACSyntaxCoupling;
 
7815
  friend class ::ExtACTree;
 
7816
  friend class ::ExtACKeywords;
 
7817
  friend class ::ExtGnu;
 
7818
  friend class ::PragmaOnceUnitState;
 
7819
  friend class ::PragmaOnce;
 
7820
  friend class ::CMatchSyntax;
 
7821
 
 
7822
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7823
 
 
7824
protected:
 
7825
  /** Constructor.
 
7826
   *  \param size The number of sub-names (for qualified names). */
 
7827
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
7828
  /** Constructor.
 
7829
   *  \param size The number of sub-names (for qualified names). 
 
7830
   *  \param properties Additional name list properties (for root qualified names). */
 
7831
  CT_SimpleName (int size, int properties) : 
 
7832
    CT_List (size, 2, properties) {}
 
7833
  
 
7834
public:
 
7835
  /** Constructor.
 
7836
   *  \param n The sub-tree containing the name. */
 
7837
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
7838
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
7839
  static const char *NodeId ();
 
7840
  /** Get the name of the node. Can be compared with NodeId(). */
 
7841
  const char *NodeName () const { return NodeId (); }
 
7842
  /** Get the string containing the name. */
 
7843
  virtual const char *Text () const 
 
7844
   { return Son (Sons ()-1)->token ()->text (); }
 
7845
  /** Print the name on the given stream. 
 
7846
   *  \param os The output stream. */
 
7847
  virtual void print (ostream &os) const { os << Text (); }
 
7848
  /** Get this. */
 
7849
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
7850
  /** Get the type of the entity represented by the name. */
 
7851
  CTypeInfo *Type () const { return type; }
 
7852
  /** Get the value of the entity represented by the name. */ 
 
7853
  CExprValue *Value () const { return value; }
 
7854
  /** Get the sematic value information object. */
 
7855
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
7856
  /** Get the sematic information object. */
 
7857
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
7858
  /** Get this. */
 
7859
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
7860
 
 
7861
public:
 
7862
  /** Own new operator reusing memory. */
 
7863
  void *operator new (size_t);
 
7864
  /** Own delete operator. */
 
7865
  void operator delete (void *);
 
7866
   private:
 
7867
  typedef CT_SimpleName CCExprResolveExpr;
 
7868
 
 
7869
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7870
 public :
 
7871
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
7872
  typedef CT_SimpleName CExprResolveExpr;
 
7873
 
 
7874
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7875
 public :
 
7876
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7877
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7878
};
 
7879
 
 
7880
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
7881
 *  Base class for tree nodes representing a special name, like destructor names. */
 
7882
 
 
7883
#line 7884 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7884
} // closed Puma
 
7885
class CCExprResolve;
 
7886
class CExprResolve;
 
7887
class WinIfExists;
 
7888
class WinImportHandler;
 
7889
class WinMacros;
 
7890
class WinAsm;
 
7891
class WinDeclSpecs;
 
7892
class WinMemberExplSpec;
 
7893
class WinTypeKeywords;
 
7894
class WinFriend;
 
7895
class ExtAC;
 
7896
class ExtACBuilderCoupling;
 
7897
class ExtACSyntaxCoupling;
 
7898
class ExtACTree;
 
7899
class ExtACKeywords;
 
7900
class ExtGnu;
 
7901
class PragmaOnceUnitState;
 
7902
class PragmaOnce;
 
7903
class CMatchSyntax;
 
7904
namespace Puma {
 
7905
 
 
7906
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7907
 
 
7908
#line 7909 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7909
} // closed Puma
 
7910
 
 
7911
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7912
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
7913
#include "CCExprResolveH.ah"
 
7914
#endif
 
7915
namespace Puma {
 
7916
 
 
7917
#line 887 "/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/CSemDeclSpecs.cc"
 
7920
} // closed Puma
 
7921
 
 
7922
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7923
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
7924
#include "CExprResolveH.ah"
 
7925
#endif
 
7926
namespace Puma {
 
7927
 
 
7928
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7929
class CT_SpecialName : public CT_SimpleName {
 
7930
#line 7931 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7931
  friend class ::CCExprResolve;
 
7932
  friend class ::CExprResolve;
 
7933
  friend class ::WinIfExists;
 
7934
  friend class ::WinImportHandler;
 
7935
  friend class ::WinMacros;
 
7936
  friend class ::WinAsm;
 
7937
  friend class ::WinDeclSpecs;
 
7938
  friend class ::WinMemberExplSpec;
 
7939
  friend class ::WinTypeKeywords;
 
7940
  friend class ::WinFriend;
 
7941
  friend class ::ExtAC;
 
7942
  friend class ::ExtACBuilderCoupling;
 
7943
  friend class ::ExtACSyntaxCoupling;
 
7944
  friend class ::ExtACTree;
 
7945
  friend class ::ExtACKeywords;
 
7946
  friend class ::ExtGnu;
 
7947
  friend class ::PragmaOnceUnitState;
 
7948
  friend class ::PragmaOnce;
 
7949
  friend class ::CMatchSyntax;
 
7950
 
 
7951
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7952
 
 
7953
  char *_name;
 
7954
  
 
7955
protected:
 
7956
  /** Constructor.
 
7957
   *  \param size The number of sub-names (for qualified names). */
 
7958
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
 
7959
  
 
7960
public:
 
7961
  /** Destructor. Deletes the name string. */
 
7962
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
7963
  /** Get the string containing the name. */
 
7964
  const char *Text () const { return _name; }
 
7965
  /** Set the name. The name is copied.
 
7966
   *  \param n The name. */
 
7967
  void Name (const char *n) { 
 
7968
    if (n) { 
 
7969
      _name = new char[strlen(n) + 1];
 
7970
      strcpy (_name,n);
 
7971
    }
 
7972
  }
 
7973
 
 
7974
public:
 
7975
  /** Own new operator reusing memory. */
 
7976
  void *operator new (size_t);
 
7977
  /** Own delete operator. */
 
7978
  void operator delete (void *);
 
7979
   private:
 
7980
  typedef CT_SpecialName CCExprResolveExpr;
 
7981
 
 
7982
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7983
 public :
 
7984
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
7985
  typedef CT_SpecialName CExprResolveExpr;
 
7986
 
 
7987
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7988
 public :
 
7989
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7990
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7991
};
 
7992
 
 
7993
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
7994
 *  Tree node representing a private name. Private names 
 
7995
 *  are generated names for abstract declarators etc. */
 
7996
 
 
7997
#line 7998 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
7998
} // closed Puma
 
7999
class CCExprResolve;
 
8000
class CExprResolve;
 
8001
class WinIfExists;
 
8002
class WinImportHandler;
 
8003
class WinMacros;
 
8004
class WinAsm;
 
8005
class WinDeclSpecs;
 
8006
class WinMemberExplSpec;
 
8007
class WinTypeKeywords;
 
8008
class WinFriend;
 
8009
class ExtAC;
 
8010
class ExtACBuilderCoupling;
 
8011
class ExtACSyntaxCoupling;
 
8012
class ExtACTree;
 
8013
class ExtACKeywords;
 
8014
class ExtGnu;
 
8015
class PragmaOnceUnitState;
 
8016
class PragmaOnce;
 
8017
class CMatchSyntax;
 
8018
namespace Puma {
 
8019
 
 
8020
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8021
 
 
8022
#line 8023 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8023
} // closed Puma
 
8024
 
 
8025
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8026
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8027
#include "CCExprResolveH.ah"
 
8028
#endif
 
8029
namespace Puma {
 
8030
 
 
8031
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8032
 
 
8033
#line 8034 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8034
} // closed Puma
 
8035
 
 
8036
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8037
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8038
#include "CExprResolveH.ah"
 
8039
#endif
 
8040
namespace Puma {
 
8041
 
 
8042
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8043
class CT_PrivateName : public CT_SpecialName {
 
8044
#line 8045 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8045
  friend class ::CCExprResolve;
 
8046
  friend class ::CExprResolve;
 
8047
  friend class ::WinIfExists;
 
8048
  friend class ::WinImportHandler;
 
8049
  friend class ::WinMacros;
 
8050
  friend class ::WinAsm;
 
8051
  friend class ::WinDeclSpecs;
 
8052
  friend class ::WinMemberExplSpec;
 
8053
  friend class ::WinTypeKeywords;
 
8054
  friend class ::WinFriend;
 
8055
  friend class ::ExtAC;
 
8056
  friend class ::ExtACBuilderCoupling;
 
8057
  friend class ::ExtACSyntaxCoupling;
 
8058
  friend class ::ExtACTree;
 
8059
  friend class ::ExtACKeywords;
 
8060
  friend class ::ExtGnu;
 
8061
  friend class ::PragmaOnceUnitState;
 
8062
  friend class ::PragmaOnce;
 
8063
  friend class ::CMatchSyntax;
 
8064
 
 
8065
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8066
 
 
8067
public:
 
8068
  /** Constructor.
 
8069
   *  \param n The private (generated) name. */
 
8070
  CT_PrivateName (const char *n) { Name (n); }
 
8071
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
8072
  static const char *NodeId ();
 
8073
  /** Get the name of the node. Can be compared with NodeId(). */
 
8074
  const char *NodeName () const { return NodeId (); }
 
8075
  /** Get the number of sons. */
 
8076
  int Sons () const { return 0; }
 
8077
  /** Get the n-th son.
 
8078
   *  \param n The index of the son.
 
8079
   *  \return The n-th son or NULL. */
 
8080
  CTree *Son (int n) const { return (CTree*)0; }
 
8081
 
 
8082
public:
 
8083
  /** Own new operator reusing memory. */
 
8084
  void *operator new (size_t);
 
8085
  /** Own delete operator. */
 
8086
  void operator delete (void *);
 
8087
   private:
 
8088
  typedef CT_PrivateName CCExprResolveExpr;
 
8089
 
 
8090
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8091
 public :
 
8092
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
8093
  typedef CT_PrivateName CExprResolveExpr;
 
8094
 
 
8095
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8096
 public :
 
8097
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8098
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8099
};
 
8100
 
 
8101
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
8102
 *  Tree node representing a destructor name. */
 
8103
 
 
8104
#line 8105 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8105
} // closed Puma
 
8106
class CCExprResolve;
 
8107
class CExprResolve;
 
8108
class WinIfExists;
 
8109
class WinImportHandler;
 
8110
class WinMacros;
 
8111
class WinAsm;
 
8112
class WinDeclSpecs;
 
8113
class WinMemberExplSpec;
 
8114
class WinTypeKeywords;
 
8115
class WinFriend;
 
8116
class ExtAC;
 
8117
class ExtACBuilderCoupling;
 
8118
class ExtACSyntaxCoupling;
 
8119
class ExtACTree;
 
8120
class ExtACKeywords;
 
8121
class ExtGnu;
 
8122
class PragmaOnceUnitState;
 
8123
class PragmaOnce;
 
8124
class CMatchSyntax;
 
8125
namespace Puma {
 
8126
 
 
8127
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8128
 
 
8129
#line 8130 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8130
} // closed Puma
 
8131
 
 
8132
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8133
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8134
#include "CCExprResolveH.ah"
 
8135
#endif
 
8136
namespace Puma {
 
8137
 
 
8138
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8139
 
 
8140
#line 8141 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8141
} // closed Puma
 
8142
 
 
8143
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8144
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8145
#include "CExprResolveH.ah"
 
8146
#endif
 
8147
namespace Puma {
 
8148
 
 
8149
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8150
class CT_DestructorName : public CT_SpecialName {
 
8151
#line 8152 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8152
  friend class ::CCExprResolve;
 
8153
  friend class ::CExprResolve;
 
8154
  friend class ::WinIfExists;
 
8155
  friend class ::WinImportHandler;
 
8156
  friend class ::WinMacros;
 
8157
  friend class ::WinAsm;
 
8158
  friend class ::WinDeclSpecs;
 
8159
  friend class ::WinMemberExplSpec;
 
8160
  friend class ::WinTypeKeywords;
 
8161
  friend class ::WinFriend;
 
8162
  friend class ::ExtAC;
 
8163
  friend class ::ExtACBuilderCoupling;
 
8164
  friend class ::ExtACSyntaxCoupling;
 
8165
  friend class ::ExtACTree;
 
8166
  friend class ::ExtACKeywords;
 
8167
  friend class ::ExtGnu;
 
8168
  friend class ::PragmaOnceUnitState;
 
8169
  friend class ::PragmaOnce;
 
8170
  friend class ::CMatchSyntax;
 
8171
 
 
8172
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8173
 
 
8174
public:
 
8175
  /** Constructor.
 
8176
   *  \param t The tilde operator.
 
8177
   *  \param n The class name. */
 
8178
  CT_DestructorName (CTree *t, CTree *n);
 
8179
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
8180
  static const char *NodeId ();
 
8181
  /** Get the name of the node. Can be compared with NodeId(). */
 
8182
  const char *NodeName () const { return NodeId (); }
 
8183
 
 
8184
public:
 
8185
  /** Own new operator reusing memory. */
 
8186
  void *operator new (size_t);
 
8187
  /** Own delete operator. */
 
8188
  void operator delete (void *);
 
8189
   private:
 
8190
  typedef CT_DestructorName CCExprResolveExpr;
 
8191
 
 
8192
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8193
 public :
 
8194
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
8195
  typedef CT_DestructorName CExprResolveExpr;
 
8196
 
 
8197
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8198
 public :
 
8199
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8200
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8201
};
 
8202
 
 
8203
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
8204
 *  Tree node representing a template name. */
 
8205
 
 
8206
#line 8207 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8207
} // closed Puma
 
8208
class CCExprResolve;
 
8209
class CExprResolve;
 
8210
class WinIfExists;
 
8211
class WinImportHandler;
 
8212
class WinMacros;
 
8213
class WinAsm;
 
8214
class WinDeclSpecs;
 
8215
class WinMemberExplSpec;
 
8216
class WinTypeKeywords;
 
8217
class WinFriend;
 
8218
class ExtAC;
 
8219
class ExtACBuilderCoupling;
 
8220
class ExtACSyntaxCoupling;
 
8221
class ExtACTree;
 
8222
class ExtACKeywords;
 
8223
class ExtGnu;
 
8224
class PragmaOnceUnitState;
 
8225
class PragmaOnce;
 
8226
class CMatchSyntax;
 
8227
namespace Puma {
 
8228
 
 
8229
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8230
 
 
8231
#line 8232 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8232
} // closed Puma
 
8233
 
 
8234
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8235
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8236
#include "CCExprResolveH.ah"
 
8237
#endif
 
8238
namespace Puma {
 
8239
 
 
8240
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8241
 
 
8242
#line 8243 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8243
} // closed Puma
 
8244
 
 
8245
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8246
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8247
#include "CExprResolveH.ah"
 
8248
#endif
 
8249
namespace Puma {
 
8250
 
 
8251
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8252
class CT_TemplateName : public CT_SpecialName {
 
8253
#line 8254 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8254
  friend class ::CCExprResolve;
 
8255
  friend class ::CExprResolve;
 
8256
  friend class ::WinIfExists;
 
8257
  friend class ::WinImportHandler;
 
8258
  friend class ::WinMacros;
 
8259
  friend class ::WinAsm;
 
8260
  friend class ::WinDeclSpecs;
 
8261
  friend class ::WinMemberExplSpec;
 
8262
  friend class ::WinTypeKeywords;
 
8263
  friend class ::WinFriend;
 
8264
  friend class ::ExtAC;
 
8265
  friend class ::ExtACBuilderCoupling;
 
8266
  friend class ::ExtACSyntaxCoupling;
 
8267
  friend class ::ExtACTree;
 
8268
  friend class ::ExtACKeywords;
 
8269
  friend class ::ExtGnu;
 
8270
  friend class ::PragmaOnceUnitState;
 
8271
  friend class ::PragmaOnce;
 
8272
  friend class ::CMatchSyntax;
 
8273
 
 
8274
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8275
 
 
8276
public:
 
8277
  /** Constructor.
 
8278
   *  \param n The template class or function name.
 
8279
   *  \param a The template argument list. */
 
8280
  CT_TemplateName (CTree *n, CTree *a) 
 
8281
   { AddSon (n); AddSon (a); }
 
8282
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
8283
  static const char *NodeId ();
 
8284
  /** Get the name of the node. Can be compared with NodeId(). */
 
8285
  const char *NodeName () const { return NodeId (); }
 
8286
  /** Get the template argument list. */
 
8287
  CT_TemplateArgList *Arguments () const 
 
8288
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
8289
  /** Get the template class or function name. */
 
8290
  CT_SimpleName *TemplateName () const 
 
8291
   { return (CT_SimpleName*)Son (Sons ()-2); }
 
8292
  // may change in the future
 
8293
  const char *Text () const { return TemplateName ()->Text (); }
 
8294
 
 
8295
public:
 
8296
  /** Own new operator reusing memory. */
 
8297
  void *operator new (size_t);
 
8298
  /** Own delete operator. */
 
8299
  void operator delete (void *);
 
8300
   private:
 
8301
  typedef CT_TemplateName CCExprResolveExpr;
 
8302
 
 
8303
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8304
 public :
 
8305
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
8306
  typedef CT_TemplateName CExprResolveExpr;
 
8307
 
 
8308
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8309
 public :
 
8310
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8311
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8312
};
 
8313
 
 
8314
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
8315
 *  Tree node representing the name of an overloaded operator. */
 
8316
 
 
8317
#line 8318 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8318
} // closed Puma
 
8319
class CCExprResolve;
 
8320
class CExprResolve;
 
8321
class WinIfExists;
 
8322
class WinImportHandler;
 
8323
class WinMacros;
 
8324
class WinAsm;
 
8325
class WinDeclSpecs;
 
8326
class WinMemberExplSpec;
 
8327
class WinTypeKeywords;
 
8328
class WinFriend;
 
8329
class ExtAC;
 
8330
class ExtACBuilderCoupling;
 
8331
class ExtACSyntaxCoupling;
 
8332
class ExtACTree;
 
8333
class ExtACKeywords;
 
8334
class ExtGnu;
 
8335
class PragmaOnceUnitState;
 
8336
class PragmaOnce;
 
8337
class CMatchSyntax;
 
8338
namespace Puma {
 
8339
 
 
8340
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8341
 
 
8342
#line 8343 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8343
} // closed Puma
 
8344
 
 
8345
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8346
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8347
#include "CCExprResolveH.ah"
 
8348
#endif
 
8349
namespace Puma {
 
8350
 
 
8351
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8352
 
 
8353
#line 8354 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8354
} // closed Puma
 
8355
 
 
8356
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8357
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8358
#include "CExprResolveH.ah"
 
8359
#endif
 
8360
namespace Puma {
 
8361
 
 
8362
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8363
class CT_OperatorName : public CT_SpecialName {
 
8364
#line 8365 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8365
  friend class ::CCExprResolve;
 
8366
  friend class ::CExprResolve;
 
8367
  friend class ::WinIfExists;
 
8368
  friend class ::WinImportHandler;
 
8369
  friend class ::WinMacros;
 
8370
  friend class ::WinAsm;
 
8371
  friend class ::WinDeclSpecs;
 
8372
  friend class ::WinMemberExplSpec;
 
8373
  friend class ::WinTypeKeywords;
 
8374
  friend class ::WinFriend;
 
8375
  friend class ::ExtAC;
 
8376
  friend class ::ExtACBuilderCoupling;
 
8377
  friend class ::ExtACSyntaxCoupling;
 
8378
  friend class ::ExtACTree;
 
8379
  friend class ::ExtACKeywords;
 
8380
  friend class ::ExtGnu;
 
8381
  friend class ::PragmaOnceUnitState;
 
8382
  friend class ::PragmaOnce;
 
8383
  friend class ::CMatchSyntax;
 
8384
 
 
8385
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8386
 
 
8387
  int _oper;
 
8388
 
 
8389
public:
 
8390
  /** Complex operator types. */
 
8391
  enum { 
 
8392
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
8393
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
8394
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
8395
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
 
8396
  };
 
8397
 
 
8398
public:
 
8399
  /** Constructor.
 
8400
   *  \param op The token containing the operator. */
 
8401
  CT_OperatorName (CTree *op);
 
8402
  /** Constructor.
 
8403
   *  \param f The operator function keyword 'operator'.
 
8404
   *  \param op The token containing the operator. 
 
8405
   *  \param o The token of '[' or '('.
 
8406
   *  \param c The token of ']' or ')'. */
 
8407
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
8408
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
8409
  static const char *NodeId ();
 
8410
  /** Get the name of the node. Can be compared with NodeId(). */
 
8411
  const char *NodeName () const { return NodeId (); }
 
8412
  /** Get the operator type (either the token type or one of 
 
8413
   *  the complex operator types). */
 
8414
  int Operator () const { return _oper; }
 
8415
 
 
8416
public:
 
8417
  /** Own new operator reusing memory. */
 
8418
  void *operator new (size_t);
 
8419
  /** Own delete operator. */
 
8420
  void operator delete (void *);
 
8421
   private:
 
8422
  typedef CT_OperatorName CCExprResolveExpr;
 
8423
 
 
8424
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8425
 public :
 
8426
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
8427
  typedef CT_OperatorName CExprResolveExpr;
 
8428
 
 
8429
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8430
 public :
 
8431
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8432
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8433
};
 
8434
 
 
8435
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
8436
 *  Tree node representing the name of a conversion function. */
 
8437
 
 
8438
#line 8439 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8439
} // closed Puma
 
8440
class CCExprResolve;
 
8441
class CExprResolve;
 
8442
class WinIfExists;
 
8443
class WinImportHandler;
 
8444
class WinMacros;
 
8445
class WinAsm;
 
8446
class WinDeclSpecs;
 
8447
class WinMemberExplSpec;
 
8448
class WinTypeKeywords;
 
8449
class WinFriend;
 
8450
class ExtAC;
 
8451
class ExtACBuilderCoupling;
 
8452
class ExtACSyntaxCoupling;
 
8453
class ExtACTree;
 
8454
class ExtACKeywords;
 
8455
class ExtGnu;
 
8456
class PragmaOnceUnitState;
 
8457
class PragmaOnce;
 
8458
class CMatchSyntax;
 
8459
namespace Puma {
 
8460
 
 
8461
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8462
 
 
8463
#line 8464 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8464
} // closed Puma
 
8465
 
 
8466
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8467
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8468
#include "CCExprResolveH.ah"
 
8469
#endif
 
8470
namespace Puma {
 
8471
 
 
8472
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8473
 
 
8474
#line 8475 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8475
} // closed Puma
 
8476
 
 
8477
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8478
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8479
#include "CExprResolveH.ah"
 
8480
#endif
 
8481
namespace Puma {
 
8482
 
 
8483
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8484
class CT_ConversionName : public CT_SpecialName {
 
8485
#line 8486 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8486
  friend class ::CCExprResolve;
 
8487
  friend class ::CExprResolve;
 
8488
  friend class ::WinIfExists;
 
8489
  friend class ::WinImportHandler;
 
8490
  friend class ::WinMacros;
 
8491
  friend class ::WinAsm;
 
8492
  friend class ::WinDeclSpecs;
 
8493
  friend class ::WinMemberExplSpec;
 
8494
  friend class ::WinTypeKeywords;
 
8495
  friend class ::WinFriend;
 
8496
  friend class ::ExtAC;
 
8497
  friend class ::ExtACBuilderCoupling;
 
8498
  friend class ::ExtACSyntaxCoupling;
 
8499
  friend class ::ExtACTree;
 
8500
  friend class ::ExtACKeywords;
 
8501
  friend class ::ExtGnu;
 
8502
  friend class ::PragmaOnceUnitState;
 
8503
  friend class ::PragmaOnce;
 
8504
  friend class ::CMatchSyntax;
 
8505
 
 
8506
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8507
 
 
8508
public:
 
8509
  /** Constructor.
 
8510
   *  \param f The operator function keyword 'operator'.
 
8511
   *  \param t The sub-tree containing the conversion type. */
 
8512
  CT_ConversionName (CTree *f, CTree *t);
 
8513
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
8514
  static const char *NodeId ();
 
8515
  /** Get the name of the node. Can be compared with NodeId(). */
 
8516
  const char *NodeName () const { return NodeId (); }
 
8517
  /** Get the conversion type. */
 
8518
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
 
8519
 
 
8520
public:
 
8521
  /** Own new operator reusing memory. */
 
8522
  void *operator new (size_t);
 
8523
  /** Own delete operator. */
 
8524
  void operator delete (void *);
 
8525
   private:
 
8526
  typedef CT_ConversionName CCExprResolveExpr;
 
8527
 
 
8528
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8529
 public :
 
8530
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
8531
  typedef CT_ConversionName CExprResolveExpr;
 
8532
 
 
8533
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8534
 public :
 
8535
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8536
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8537
};
 
8538
 
 
8539
/** \class CT_QualName CTree.h Puma/CTree.h
 
8540
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
 
8541
 
 
8542
#line 8543 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8543
} // closed Puma
 
8544
class CCExprResolve;
 
8545
class CExprResolve;
 
8546
class WinIfExists;
 
8547
class WinImportHandler;
 
8548
class WinMacros;
 
8549
class WinAsm;
 
8550
class WinDeclSpecs;
 
8551
class WinMemberExplSpec;
 
8552
class WinTypeKeywords;
 
8553
class WinFriend;
 
8554
class ExtAC;
 
8555
class ExtACBuilderCoupling;
 
8556
class ExtACSyntaxCoupling;
 
8557
class ExtACTree;
 
8558
class ExtACKeywords;
 
8559
class ExtGnu;
 
8560
class PragmaOnceUnitState;
 
8561
class PragmaOnce;
 
8562
class CMatchSyntax;
 
8563
namespace Puma {
 
8564
 
 
8565
#line 1054 "/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/CSemDeclSpecs.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 1054 "/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/CSemDeclSpecs.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 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8588
class CT_QualName : public CT_SimpleName {
 
8589
#line 8590 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8590
  friend class ::CCExprResolve;
 
8591
  friend class ::CExprResolve;
 
8592
  friend class ::WinIfExists;
 
8593
  friend class ::WinImportHandler;
 
8594
  friend class ::WinMacros;
 
8595
  friend class ::WinAsm;
 
8596
  friend class ::WinDeclSpecs;
 
8597
  friend class ::WinMemberExplSpec;
 
8598
  friend class ::WinTypeKeywords;
 
8599
  friend class ::WinFriend;
 
8600
  friend class ::ExtAC;
 
8601
  friend class ::ExtACBuilderCoupling;
 
8602
  friend class ::ExtACSyntaxCoupling;
 
8603
  friend class ::ExtACTree;
 
8604
  friend class ::ExtACKeywords;
 
8605
  friend class ::ExtGnu;
 
8606
  friend class ::PragmaOnceUnitState;
 
8607
  friend class ::PragmaOnce;
 
8608
  friend class ::CMatchSyntax;
 
8609
 
 
8610
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8611
 
 
8612
public:
 
8613
  /** Constructor.
 
8614
   *  \param size The initial number sub-names plus separators. */
 
8615
  CT_QualName (int size = 3) : 
 
8616
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
8617
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
8618
  static const char *NodeId ();
 
8619
  /** Get the name of the node. Can be compared with NodeId(). */
 
8620
  const char *NodeName () const { return NodeId (); }
 
8621
  /** Print the qualified name on the given stream. 
 
8622
   *  \param os The output stream. */
 
8623
  void print (ostream &os) const;
 
8624
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
 
8625
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
8626
  /** Get the string containing the last name of the qualified name. */
 
8627
  const char *Text () const { return Name ()->Text (); }
 
8628
  /** Get the type of the last name. */
 
8629
  CTypeInfo *Type () const { return Name ()->Type (); }
 
8630
  /** Get the value of the last name. */
 
8631
  CExprValue *Value () const { return Name ()->Value (); }
 
8632
  /** Get the semantic value object of the last name. */
 
8633
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
8634
  /** Get the semantic information object of the last name. */
 
8635
  CSemObject *SemObject () const { return Name ()->SemObject (); }
 
8636
 
 
8637
public:
 
8638
  /** Own new operator reusing memory. */
 
8639
  void *operator new (size_t);
 
8640
  /** Own delete operator. */
 
8641
  void operator delete (void *);
 
8642
   private:
 
8643
  typedef CT_QualName CCExprResolveExpr;
 
8644
 
 
8645
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8646
 public :
 
8647
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
8648
  typedef CT_QualName CExprResolveExpr;
 
8649
 
 
8650
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8651
 public :
 
8652
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8653
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8654
};
 
8655
 
 
8656
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
8657
 *  Tree node representing a qualified name with introducing name separator,
 
8658
 *  e.g. ::X::Y::Z. */
 
8659
 
 
8660
#line 8661 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8661
} // closed Puma
 
8662
class CCExprResolve;
 
8663
class CExprResolve;
 
8664
class WinIfExists;
 
8665
class WinImportHandler;
 
8666
class WinMacros;
 
8667
class WinAsm;
 
8668
class WinDeclSpecs;
 
8669
class WinMemberExplSpec;
 
8670
class WinTypeKeywords;
 
8671
class WinFriend;
 
8672
class ExtAC;
 
8673
class ExtACBuilderCoupling;
 
8674
class ExtACSyntaxCoupling;
 
8675
class ExtACTree;
 
8676
class ExtACKeywords;
 
8677
class ExtGnu;
 
8678
class PragmaOnceUnitState;
 
8679
class PragmaOnce;
 
8680
class CMatchSyntax;
 
8681
namespace Puma {
 
8682
 
 
8683
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8684
 
 
8685
#line 8686 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8686
} // closed Puma
 
8687
 
 
8688
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8689
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8690
#include "CCExprResolveH.ah"
 
8691
#endif
 
8692
namespace Puma {
 
8693
 
 
8694
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8695
 
 
8696
#line 8697 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8697
} // closed Puma
 
8698
 
 
8699
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8700
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8701
#include "CExprResolveH.ah"
 
8702
#endif
 
8703
namespace Puma {
 
8704
 
 
8705
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8706
class CT_RootQualName : public CT_QualName {
 
8707
#line 8708 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8708
  friend class ::CCExprResolve;
 
8709
  friend class ::CExprResolve;
 
8710
  friend class ::WinIfExists;
 
8711
  friend class ::WinImportHandler;
 
8712
  friend class ::WinMacros;
 
8713
  friend class ::WinAsm;
 
8714
  friend class ::WinDeclSpecs;
 
8715
  friend class ::WinMemberExplSpec;
 
8716
  friend class ::WinTypeKeywords;
 
8717
  friend class ::WinFriend;
 
8718
  friend class ::ExtAC;
 
8719
  friend class ::ExtACBuilderCoupling;
 
8720
  friend class ::ExtACSyntaxCoupling;
 
8721
  friend class ::ExtACTree;
 
8722
  friend class ::ExtACKeywords;
 
8723
  friend class ::ExtGnu;
 
8724
  friend class ::PragmaOnceUnitState;
 
8725
  friend class ::PragmaOnce;
 
8726
  friend class ::CMatchSyntax;
 
8727
 
 
8728
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8729
 
 
8730
public:
 
8731
  /** Constructor.
 
8732
   *  \param size Initial number of sub-name plus separator. */
 
8733
  CT_RootQualName (int size = 2) : 
 
8734
    CT_QualName (size) { AddProperties (INTRO); }
 
8735
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
8736
  static const char *NodeId ();
 
8737
  /** Get the name of the node. Can be compared with NodeId(). */
 
8738
  const char *NodeName () const { return NodeId (); }
 
8739
 
 
8740
public:
 
8741
  /** Own new operator reusing memory. */
 
8742
  void *operator new (size_t);
 
8743
  /** Own delete operator. */
 
8744
  void operator delete (void *);
 
8745
   private:
 
8746
  typedef CT_RootQualName CCExprResolveExpr;
 
8747
 
 
8748
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8749
 public :
 
8750
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
8751
  typedef CT_RootQualName CExprResolveExpr;
 
8752
 
 
8753
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8754
 public :
 
8755
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8756
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8757
};
 
8758
 
 
8759
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
8760
 *  Tree node representing a binary expression, e.g. a+b. */
 
8761
 
 
8762
#line 8763 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8763
} // closed Puma
 
8764
class CCExprResolve;
 
8765
class CExprResolve;
 
8766
class WinIfExists;
 
8767
class WinImportHandler;
 
8768
class WinMacros;
 
8769
class WinAsm;
 
8770
class WinDeclSpecs;
 
8771
class WinMemberExplSpec;
 
8772
class WinTypeKeywords;
 
8773
class WinFriend;
 
8774
class ExtAC;
 
8775
class ExtACBuilderCoupling;
 
8776
class ExtACSyntaxCoupling;
 
8777
class ExtACTree;
 
8778
class ExtACKeywords;
 
8779
class ExtGnu;
 
8780
class PragmaOnceUnitState;
 
8781
class PragmaOnce;
 
8782
class CMatchSyntax;
 
8783
namespace Puma {
 
8784
 
 
8785
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8786
 
 
8787
#line 8788 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8788
} // closed Puma
 
8789
 
 
8790
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8791
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8792
#include "CCExprResolveH.ah"
 
8793
#endif
 
8794
namespace Puma {
 
8795
 
 
8796
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8797
 
 
8798
#line 8799 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8799
} // closed Puma
 
8800
 
 
8801
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8802
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8803
#include "CExprResolveH.ah"
 
8804
#endif
 
8805
namespace Puma {
 
8806
 
 
8807
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8808
class CT_BinaryExpr : public CT_Call {
 
8809
#line 8810 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8810
  friend class ::CCExprResolve;
 
8811
  friend class ::CExprResolve;
 
8812
  friend class ::WinIfExists;
 
8813
  friend class ::WinImportHandler;
 
8814
  friend class ::WinMacros;
 
8815
  friend class ::WinAsm;
 
8816
  friend class ::WinDeclSpecs;
 
8817
  friend class ::WinMemberExplSpec;
 
8818
  friend class ::WinTypeKeywords;
 
8819
  friend class ::WinFriend;
 
8820
  friend class ::ExtAC;
 
8821
  friend class ::ExtACBuilderCoupling;
 
8822
  friend class ::ExtACSyntaxCoupling;
 
8823
  friend class ::ExtACTree;
 
8824
  friend class ::ExtACKeywords;
 
8825
  friend class ::ExtGnu;
 
8826
  friend class ::PragmaOnceUnitState;
 
8827
  friend class ::PragmaOnce;
 
8828
  friend class ::CMatchSyntax;
 
8829
 
 
8830
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8831
 
 
8832
  CTree *sons[3]; // expr, oper, expr
 
8833
 
 
8834
public:
 
8835
  /** Constructor. 
 
8836
   *  \param l Left hand side of the expression. 
 
8837
   *  \param o The operator token. 
 
8838
   *  \param r Right hand side of the expression. */
 
8839
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
 
8840
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
 
8841
  }
 
8842
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
8843
  static const char *NodeId ();
 
8844
  /** Get the name of the node. Can be compared with NodeId(). */
 
8845
  const char *NodeName () const { return NodeId (); }
 
8846
  /** Get the number of sons. */
 
8847
  int Sons () const { return 3; }
 
8848
  /** Get the n-th son.
 
8849
   *  \param n The index of the son.
 
8850
   *  \return The n-th son or NULL. */
 
8851
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
8852
  /** Replace a son.
 
8853
   *  \param old_son The son to replace.
 
8854
   *  \param new_son The new son. */
 
8855
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
8856
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
8857
  }
 
8858
   private:
 
8859
  typedef CT_BinaryExpr CCExprResolveExpr;
 
8860
 
 
8861
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8862
 public :
 
8863
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
8864
  typedef CT_BinaryExpr CExprResolveExpr;
 
8865
 
 
8866
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8867
 public :
 
8868
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8869
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8870
};
 
8871
 
 
8872
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
8873
 *  Tree node representing a member pointer expression, e.g. a->b. */
 
8874
 
 
8875
#line 8876 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8876
} // closed Puma
 
8877
class CCExprResolve;
 
8878
class CExprResolve;
 
8879
class WinIfExists;
 
8880
class WinImportHandler;
 
8881
class WinMacros;
 
8882
class WinAsm;
 
8883
class WinDeclSpecs;
 
8884
class WinMemberExplSpec;
 
8885
class WinTypeKeywords;
 
8886
class WinFriend;
 
8887
class ExtAC;
 
8888
class ExtACBuilderCoupling;
 
8889
class ExtACSyntaxCoupling;
 
8890
class ExtACTree;
 
8891
class ExtACKeywords;
 
8892
class ExtGnu;
 
8893
class PragmaOnceUnitState;
 
8894
class PragmaOnce;
 
8895
class CMatchSyntax;
 
8896
namespace Puma {
 
8897
 
 
8898
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8899
 
 
8900
#line 8901 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8901
} // closed Puma
 
8902
 
 
8903
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8904
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8905
#include "CCExprResolveH.ah"
 
8906
#endif
 
8907
namespace Puma {
 
8908
 
 
8909
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8910
 
 
8911
#line 8912 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8912
} // closed Puma
 
8913
 
 
8914
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8915
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8916
#include "CExprResolveH.ah"
 
8917
#endif
 
8918
namespace Puma {
 
8919
 
 
8920
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8921
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
8922
#line 8923 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8923
  friend class ::CCExprResolve;
 
8924
  friend class ::CExprResolve;
 
8925
  friend class ::WinIfExists;
 
8926
  friend class ::WinImportHandler;
 
8927
  friend class ::WinMacros;
 
8928
  friend class ::WinAsm;
 
8929
  friend class ::WinDeclSpecs;
 
8930
  friend class ::WinMemberExplSpec;
 
8931
  friend class ::WinTypeKeywords;
 
8932
  friend class ::WinFriend;
 
8933
  friend class ::ExtAC;
 
8934
  friend class ::ExtACBuilderCoupling;
 
8935
  friend class ::ExtACSyntaxCoupling;
 
8936
  friend class ::ExtACTree;
 
8937
  friend class ::ExtACKeywords;
 
8938
  friend class ::ExtGnu;
 
8939
  friend class ::PragmaOnceUnitState;
 
8940
  friend class ::PragmaOnce;
 
8941
  friend class ::CMatchSyntax;
 
8942
 
 
8943
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8944
 
 
8945
  CTree *sons[3]; // expr, oper, expr
 
8946
  
 
8947
public:
 
8948
  /** Constructor.
 
8949
   *  \param e Expression on which to call the member.
 
8950
   *  \param o The arrow operator token.
 
8951
   *  \param i The member name. */
 
8952
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
8953
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
8954
  }
 
8955
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
8956
  static const char *NodeId ();
 
8957
  /** Get the name of the node. Can be compared with NodeId(). */
 
8958
  const char *NodeName () const { return NodeId (); }
 
8959
  /** Get the number of sons. */
 
8960
  int Sons () const { return 3; }
 
8961
  /** Get the n-th son.
 
8962
   *  \param n The index of the son.
 
8963
   *  \return The n-th son or NULL. */
 
8964
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
8965
  /** Replace a son.
 
8966
   *  \param old_son The son to replace.
 
8967
   *  \param new_son The new son. */
 
8968
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
8969
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
8970
  }
 
8971
   private:
 
8972
  typedef CT_MembPtrExpr CCExprResolveExpr;
 
8973
 
 
8974
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8975
 public :
 
8976
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
8977
  typedef CT_MembPtrExpr CExprResolveExpr;
 
8978
 
 
8979
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8980
 public :
 
8981
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8982
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8983
};
 
8984
 
 
8985
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
8986
 *  Tree node representing a member reference expression, e.g. a.b. */
 
8987
 
 
8988
#line 8989 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
8989
} // closed Puma
 
8990
class CCExprResolve;
 
8991
class CExprResolve;
 
8992
class WinIfExists;
 
8993
class WinImportHandler;
 
8994
class WinMacros;
 
8995
class WinAsm;
 
8996
class WinDeclSpecs;
 
8997
class WinMemberExplSpec;
 
8998
class WinTypeKeywords;
 
8999
class WinFriend;
 
9000
class ExtAC;
 
9001
class ExtACBuilderCoupling;
 
9002
class ExtACSyntaxCoupling;
 
9003
class ExtACTree;
 
9004
class ExtACKeywords;
 
9005
class ExtGnu;
 
9006
class PragmaOnceUnitState;
 
9007
class PragmaOnce;
 
9008
class CMatchSyntax;
 
9009
namespace Puma {
 
9010
 
 
9011
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9012
 
 
9013
#line 9014 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9014
} // closed Puma
 
9015
 
 
9016
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9017
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9018
#include "CCExprResolveH.ah"
 
9019
#endif
 
9020
namespace Puma {
 
9021
 
 
9022
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9023
 
 
9024
#line 9025 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9025
} // closed Puma
 
9026
 
 
9027
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9028
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9029
#include "CExprResolveH.ah"
 
9030
#endif
 
9031
namespace Puma {
 
9032
 
 
9033
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9034
class CT_MembRefExpr : public CT_MembPtrExpr {
 
9035
#line 9036 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9036
  friend class ::CCExprResolve;
 
9037
  friend class ::CExprResolve;
 
9038
  friend class ::WinIfExists;
 
9039
  friend class ::WinImportHandler;
 
9040
  friend class ::WinMacros;
 
9041
  friend class ::WinAsm;
 
9042
  friend class ::WinDeclSpecs;
 
9043
  friend class ::WinMemberExplSpec;
 
9044
  friend class ::WinTypeKeywords;
 
9045
  friend class ::WinFriend;
 
9046
  friend class ::ExtAC;
 
9047
  friend class ::ExtACBuilderCoupling;
 
9048
  friend class ::ExtACSyntaxCoupling;
 
9049
  friend class ::ExtACTree;
 
9050
  friend class ::ExtACKeywords;
 
9051
  friend class ::ExtGnu;
 
9052
  friend class ::PragmaOnceUnitState;
 
9053
  friend class ::PragmaOnce;
 
9054
  friend class ::CMatchSyntax;
 
9055
 
 
9056
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9057
 
 
9058
public:
 
9059
  /** Constructor.
 
9060
   *  \param e Expression on which to call the member.
 
9061
   *  \param o The dot operator.
 
9062
   *  \param i The member name. */
 
9063
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
 
9064
    CT_MembPtrExpr (e, o, i) {}
 
9065
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
9066
  static const char *NodeId ();
 
9067
  /** Get the name of the node. Can be compared with NodeId(). */
 
9068
  const char *NodeName () const { return NodeId (); }
 
9069
   private:
 
9070
  typedef CT_MembRefExpr CCExprResolveExpr;
 
9071
 
 
9072
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9073
 public :
 
9074
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
9075
  typedef CT_MembRefExpr CExprResolveExpr;
 
9076
 
 
9077
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9078
 public :
 
9079
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9080
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9081
};
 
9082
 
 
9083
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
9084
 *  Base class for tree nodes representing unary expressions. */
 
9085
 
 
9086
#line 9087 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9087
} // closed Puma
 
9088
class CCExprResolve;
 
9089
class CExprResolve;
 
9090
class WinIfExists;
 
9091
class WinImportHandler;
 
9092
class WinMacros;
 
9093
class WinAsm;
 
9094
class WinDeclSpecs;
 
9095
class WinMemberExplSpec;
 
9096
class WinTypeKeywords;
 
9097
class WinFriend;
 
9098
class ExtAC;
 
9099
class ExtACBuilderCoupling;
 
9100
class ExtACSyntaxCoupling;
 
9101
class ExtACTree;
 
9102
class ExtACKeywords;
 
9103
class ExtGnu;
 
9104
class PragmaOnceUnitState;
 
9105
class PragmaOnce;
 
9106
class CMatchSyntax;
 
9107
namespace Puma {
 
9108
 
 
9109
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9110
 
 
9111
#line 9112 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9112
} // closed Puma
 
9113
 
 
9114
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9115
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9116
#include "CCExprResolveH.ah"
 
9117
#endif
 
9118
namespace Puma {
 
9119
 
 
9120
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9121
 
 
9122
#line 9123 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9123
} // closed Puma
 
9124
 
 
9125
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9126
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9127
#include "CExprResolveH.ah"
 
9128
#endif
 
9129
namespace Puma {
 
9130
 
 
9131
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9132
class CT_UnaryExpr : public CT_Call {
 
9133
#line 9134 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9134
  friend class ::CCExprResolve;
 
9135
  friend class ::CExprResolve;
 
9136
  friend class ::WinIfExists;
 
9137
  friend class ::WinImportHandler;
 
9138
  friend class ::WinMacros;
 
9139
  friend class ::WinAsm;
 
9140
  friend class ::WinDeclSpecs;
 
9141
  friend class ::WinMemberExplSpec;
 
9142
  friend class ::WinTypeKeywords;
 
9143
  friend class ::WinFriend;
 
9144
  friend class ::ExtAC;
 
9145
  friend class ::ExtACBuilderCoupling;
 
9146
  friend class ::ExtACSyntaxCoupling;
 
9147
  friend class ::ExtACTree;
 
9148
  friend class ::ExtACKeywords;
 
9149
  friend class ::ExtGnu;
 
9150
  friend class ::PragmaOnceUnitState;
 
9151
  friend class ::PragmaOnce;
 
9152
  friend class ::CMatchSyntax;
 
9153
 
 
9154
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9155
 
 
9156
  CTree *sons[2]; // oper, expr
 
9157
 
 
9158
public:
 
9159
  /** Constructor.
 
9160
   *  \param o The unary operator.
 
9161
   *  \param e The expression on which the operator is invoked. */
 
9162
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
9163
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
9164
  static const char *NodeId ();
 
9165
  /** Get the name of the node. Can be compared with NodeId(). */
 
9166
  const char *NodeName () const { return NodeId (); }
 
9167
  /** Get the number of sons. */
 
9168
  int Sons () const { return 2; }
 
9169
  /** Get the n-th son.
 
9170
   *  \param n The index of the son.
 
9171
   *  \return The n-th son or NULL. */
 
9172
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
9173
  /** Replace a son.
 
9174
   *  \param old_son The son to replace.
 
9175
   *  \param new_son The new son. */
 
9176
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
9177
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
9178
  }
 
9179
  /** Get the expression node. */
 
9180
  CTree *Expr () const { return sons[1]; }
 
9181
   private:
 
9182
  typedef CT_UnaryExpr CCExprResolveExpr;
 
9183
 
 
9184
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9185
 public :
 
9186
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
9187
  typedef CT_UnaryExpr CExprResolveExpr;
 
9188
 
 
9189
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9190
 public :
 
9191
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9192
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9193
};
 
9194
 
 
9195
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
9196
 *  Tree node representing a postfix expression, e.g. a++. */
 
9197
 
 
9198
#line 9199 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9199
} // closed Puma
 
9200
class CCExprResolve;
 
9201
class CExprResolve;
 
9202
class WinIfExists;
 
9203
class WinImportHandler;
 
9204
class WinMacros;
 
9205
class WinAsm;
 
9206
class WinDeclSpecs;
 
9207
class WinMemberExplSpec;
 
9208
class WinTypeKeywords;
 
9209
class WinFriend;
 
9210
class ExtAC;
 
9211
class ExtACBuilderCoupling;
 
9212
class ExtACSyntaxCoupling;
 
9213
class ExtACTree;
 
9214
class ExtACKeywords;
 
9215
class ExtGnu;
 
9216
class PragmaOnceUnitState;
 
9217
class PragmaOnce;
 
9218
class CMatchSyntax;
 
9219
namespace Puma {
 
9220
 
 
9221
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9222
 
 
9223
#line 9224 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9224
} // closed Puma
 
9225
 
 
9226
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9227
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9228
#include "CCExprResolveH.ah"
 
9229
#endif
 
9230
namespace Puma {
 
9231
 
 
9232
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9233
 
 
9234
#line 9235 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9235
} // closed Puma
 
9236
 
 
9237
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9238
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9239
#include "CExprResolveH.ah"
 
9240
#endif
 
9241
namespace Puma {
 
9242
 
 
9243
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9244
class CT_PostfixExpr : public CT_UnaryExpr {
 
9245
#line 9246 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9246
  friend class ::CCExprResolve;
 
9247
  friend class ::CExprResolve;
 
9248
  friend class ::WinIfExists;
 
9249
  friend class ::WinImportHandler;
 
9250
  friend class ::WinMacros;
 
9251
  friend class ::WinAsm;
 
9252
  friend class ::WinDeclSpecs;
 
9253
  friend class ::WinMemberExplSpec;
 
9254
  friend class ::WinTypeKeywords;
 
9255
  friend class ::WinFriend;
 
9256
  friend class ::ExtAC;
 
9257
  friend class ::ExtACBuilderCoupling;
 
9258
  friend class ::ExtACSyntaxCoupling;
 
9259
  friend class ::ExtACTree;
 
9260
  friend class ::ExtACKeywords;
 
9261
  friend class ::ExtGnu;
 
9262
  friend class ::PragmaOnceUnitState;
 
9263
  friend class ::PragmaOnce;
 
9264
  friend class ::CMatchSyntax;
 
9265
 
 
9266
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9267
 
 
9268
public:
 
9269
  /** Constructor.
 
9270
   *  \param e The expression on which to invoke the operator. 
 
9271
   *  \param o The postfix operator. */
 
9272
  CT_PostfixExpr (CTree *e, CTree *o) :
 
9273
    CT_UnaryExpr (e, o) {}
 
9274
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
9275
  static const char *NodeId ();
 
9276
  /** Get the name of the node. Can be compared with NodeId(). */
 
9277
  const char *NodeName () const { return NodeId (); }
 
9278
   private:
 
9279
  typedef CT_PostfixExpr CCExprResolveExpr;
 
9280
 
 
9281
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9282
 public :
 
9283
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
9284
  typedef CT_PostfixExpr CExprResolveExpr;
 
9285
 
 
9286
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9287
 public :
 
9288
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9289
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9290
};
 
9291
 
 
9292
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
9293
 *  Tree node representing an address expression, e.g. &a. */
 
9294
 
 
9295
#line 9296 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9296
} // closed Puma
 
9297
class CCExprResolve;
 
9298
class CExprResolve;
 
9299
class WinIfExists;
 
9300
class WinImportHandler;
 
9301
class WinMacros;
 
9302
class WinAsm;
 
9303
class WinDeclSpecs;
 
9304
class WinMemberExplSpec;
 
9305
class WinTypeKeywords;
 
9306
class WinFriend;
 
9307
class ExtAC;
 
9308
class ExtACBuilderCoupling;
 
9309
class ExtACSyntaxCoupling;
 
9310
class ExtACTree;
 
9311
class ExtACKeywords;
 
9312
class ExtGnu;
 
9313
class PragmaOnceUnitState;
 
9314
class PragmaOnce;
 
9315
class CMatchSyntax;
 
9316
namespace Puma {
 
9317
 
 
9318
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9319
 
 
9320
#line 9321 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9321
} // closed Puma
 
9322
 
 
9323
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9324
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9325
#include "CCExprResolveH.ah"
 
9326
#endif
 
9327
namespace Puma {
 
9328
 
 
9329
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9330
 
 
9331
#line 9332 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9332
} // closed Puma
 
9333
 
 
9334
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9335
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9336
#include "CExprResolveH.ah"
 
9337
#endif
 
9338
namespace Puma {
 
9339
 
 
9340
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9341
class CT_AddrExpr : public CT_UnaryExpr {
 
9342
#line 9343 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9343
  friend class ::CCExprResolve;
 
9344
  friend class ::CExprResolve;
 
9345
  friend class ::WinIfExists;
 
9346
  friend class ::WinImportHandler;
 
9347
  friend class ::WinMacros;
 
9348
  friend class ::WinAsm;
 
9349
  friend class ::WinDeclSpecs;
 
9350
  friend class ::WinMemberExplSpec;
 
9351
  friend class ::WinTypeKeywords;
 
9352
  friend class ::WinFriend;
 
9353
  friend class ::ExtAC;
 
9354
  friend class ::ExtACBuilderCoupling;
 
9355
  friend class ::ExtACSyntaxCoupling;
 
9356
  friend class ::ExtACTree;
 
9357
  friend class ::ExtACKeywords;
 
9358
  friend class ::ExtGnu;
 
9359
  friend class ::PragmaOnceUnitState;
 
9360
  friend class ::PragmaOnce;
 
9361
  friend class ::CMatchSyntax;
 
9362
 
 
9363
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9364
 
 
9365
public:
 
9366
  /** Constructor.
 
9367
   *  \param o The address operator, i.e. '&'.
 
9368
   *  \param e The expression from which to take the address. */
 
9369
  CT_AddrExpr (CTree *o, CTree *e) :
 
9370
    CT_UnaryExpr (o, e) {}
 
9371
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
9372
  static const char *NodeId ();
 
9373
  /** Get the name of the node. Can be compared with NodeId(). */
 
9374
  const char *NodeName () const { return NodeId (); }
 
9375
   private:
 
9376
  typedef CT_AddrExpr CCExprResolveExpr;
 
9377
 
 
9378
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9379
 public :
 
9380
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
9381
  typedef CT_AddrExpr CExprResolveExpr;
 
9382
 
 
9383
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9384
 public :
 
9385
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9386
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9387
};
 
9388
 
 
9389
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
9390
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
 
9391
 
 
9392
#line 9393 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9393
} // closed Puma
 
9394
class CCExprResolve;
 
9395
class CExprResolve;
 
9396
class WinIfExists;
 
9397
class WinImportHandler;
 
9398
class WinMacros;
 
9399
class WinAsm;
 
9400
class WinDeclSpecs;
 
9401
class WinMemberExplSpec;
 
9402
class WinTypeKeywords;
 
9403
class WinFriend;
 
9404
class ExtAC;
 
9405
class ExtACBuilderCoupling;
 
9406
class ExtACSyntaxCoupling;
 
9407
class ExtACTree;
 
9408
class ExtACKeywords;
 
9409
class ExtGnu;
 
9410
class PragmaOnceUnitState;
 
9411
class PragmaOnce;
 
9412
class CMatchSyntax;
 
9413
namespace Puma {
 
9414
 
 
9415
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9416
 
 
9417
#line 9418 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9418
} // closed Puma
 
9419
 
 
9420
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9421
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9422
#include "CCExprResolveH.ah"
 
9423
#endif
 
9424
namespace Puma {
 
9425
 
 
9426
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9427
 
 
9428
#line 9429 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9429
} // closed Puma
 
9430
 
 
9431
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9432
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9433
#include "CExprResolveH.ah"
 
9434
#endif
 
9435
namespace Puma {
 
9436
 
 
9437
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9438
class CT_DerefExpr : public CT_UnaryExpr {
 
9439
#line 9440 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9440
  friend class ::CCExprResolve;
 
9441
  friend class ::CExprResolve;
 
9442
  friend class ::WinIfExists;
 
9443
  friend class ::WinImportHandler;
 
9444
  friend class ::WinMacros;
 
9445
  friend class ::WinAsm;
 
9446
  friend class ::WinDeclSpecs;
 
9447
  friend class ::WinMemberExplSpec;
 
9448
  friend class ::WinTypeKeywords;
 
9449
  friend class ::WinFriend;
 
9450
  friend class ::ExtAC;
 
9451
  friend class ::ExtACBuilderCoupling;
 
9452
  friend class ::ExtACSyntaxCoupling;
 
9453
  friend class ::ExtACTree;
 
9454
  friend class ::ExtACKeywords;
 
9455
  friend class ::ExtGnu;
 
9456
  friend class ::PragmaOnceUnitState;
 
9457
  friend class ::PragmaOnce;
 
9458
  friend class ::CMatchSyntax;
 
9459
 
 
9460
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9461
 
 
9462
public:
 
9463
  /** Constructor.
 
9464
   *  \param o The dereferencing operator, i.e. '*'.
 
9465
   *  \param e The expression to dereference. */
 
9466
  CT_DerefExpr (CTree *o, CTree *e) :
 
9467
    CT_UnaryExpr (o, e) {}
 
9468
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
9469
  static const char *NodeId ();
 
9470
  /** Get the name of the node. Can be compared with NodeId(). */
 
9471
  const char *NodeName () const { return NodeId (); }
 
9472
   private:
 
9473
  typedef CT_DerefExpr CCExprResolveExpr;
 
9474
 
 
9475
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9476
 public :
 
9477
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
9478
  typedef CT_DerefExpr CExprResolveExpr;
 
9479
 
 
9480
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9481
 public :
 
9482
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9483
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9484
};
 
9485
 
 
9486
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
9487
 *  Tree node representing a delete expression, e.g. delete a. */
 
9488
 
 
9489
#line 9490 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9490
} // closed Puma
 
9491
class CCExprResolve;
 
9492
class CExprResolve;
 
9493
class WinIfExists;
 
9494
class WinImportHandler;
 
9495
class WinMacros;
 
9496
class WinAsm;
 
9497
class WinDeclSpecs;
 
9498
class WinMemberExplSpec;
 
9499
class WinTypeKeywords;
 
9500
class WinFriend;
 
9501
class ExtAC;
 
9502
class ExtACBuilderCoupling;
 
9503
class ExtACSyntaxCoupling;
 
9504
class ExtACTree;
 
9505
class ExtACKeywords;
 
9506
class ExtGnu;
 
9507
class PragmaOnceUnitState;
 
9508
class PragmaOnce;
 
9509
class CMatchSyntax;
 
9510
namespace Puma {
 
9511
 
 
9512
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9513
 
 
9514
#line 9515 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9515
} // closed Puma
 
9516
 
 
9517
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9518
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9519
#include "CCExprResolveH.ah"
 
9520
#endif
 
9521
namespace Puma {
 
9522
 
 
9523
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9524
 
 
9525
#line 9526 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9526
} // closed Puma
 
9527
 
 
9528
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9529
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9530
#include "CExprResolveH.ah"
 
9531
#endif
 
9532
namespace Puma {
 
9533
 
 
9534
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9535
class CT_DeleteExpr : public CT_Expression, public CSemObject {
 
9536
#line 9537 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9537
  friend class ::CCExprResolve;
 
9538
  friend class ::CExprResolve;
 
9539
  friend class ::WinIfExists;
 
9540
  friend class ::WinImportHandler;
 
9541
  friend class ::WinMacros;
 
9542
  friend class ::WinAsm;
 
9543
  friend class ::WinDeclSpecs;
 
9544
  friend class ::WinMemberExplSpec;
 
9545
  friend class ::WinTypeKeywords;
 
9546
  friend class ::WinFriend;
 
9547
  friend class ::ExtAC;
 
9548
  friend class ::ExtACBuilderCoupling;
 
9549
  friend class ::ExtACSyntaxCoupling;
 
9550
  friend class ::ExtACTree;
 
9551
  friend class ::ExtACKeywords;
 
9552
  friend class ::ExtGnu;
 
9553
  friend class ::PragmaOnceUnitState;
 
9554
  friend class ::PragmaOnce;
 
9555
  friend class ::CMatchSyntax;
 
9556
 
 
9557
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9558
 
 
9559
  CTree *sons[2]; // oper, expr
 
9560
 
 
9561
public:
 
9562
  /** Constructor.
 
9563
   *  \param op The delete operator.
 
9564
   *  \param e The expression representing the object to delete. */
 
9565
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
9566
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
9567
  static const char *NodeId ();
 
9568
  /** Get the name of the node. Can be compared with NodeId(). */
 
9569
  const char *NodeName () const { return NodeId (); }
 
9570
  /** Get the number of sons. */
 
9571
  int Sons () const { return 2; }
 
9572
  /** Get the n-th son.
 
9573
   *  \param n The index of the son.
 
9574
   *  \return The n-th son or NULL. */
 
9575
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
9576
  /** Replace a son.
 
9577
   *  \param old_son The son to replace.
 
9578
   *  \param new_son The new son. */
 
9579
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
9580
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
9581
  }
 
9582
  /** Get the expression. */
 
9583
  CTree *Expr () const { return sons[1]; }
 
9584
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
 
9585
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
9586
  /** Get the semantic information object. */
 
9587
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
9588
   private:
 
9589
  typedef CT_DeleteExpr CCExprResolveExpr;
 
9590
 
 
9591
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9592
 public :
 
9593
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
9594
  typedef CT_DeleteExpr CExprResolveExpr;
 
9595
 
 
9596
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9597
 public :
 
9598
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9599
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9600
};
 
9601
 
 
9602
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
9603
 *  Tree node representing a new expression, e.g. new A(). */
 
9604
 
 
9605
#line 9606 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9606
} // closed Puma
 
9607
class CCExprResolve;
 
9608
class CExprResolve;
 
9609
class WinIfExists;
 
9610
class WinImportHandler;
 
9611
class WinMacros;
 
9612
class WinAsm;
 
9613
class WinDeclSpecs;
 
9614
class WinMemberExplSpec;
 
9615
class WinTypeKeywords;
 
9616
class WinFriend;
 
9617
class ExtAC;
 
9618
class ExtACBuilderCoupling;
 
9619
class ExtACSyntaxCoupling;
 
9620
class ExtACTree;
 
9621
class ExtACKeywords;
 
9622
class ExtGnu;
 
9623
class PragmaOnceUnitState;
 
9624
class PragmaOnce;
 
9625
class CMatchSyntax;
 
9626
namespace Puma {
 
9627
 
 
9628
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9629
 
 
9630
#line 9631 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9631
} // closed Puma
 
9632
 
 
9633
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9634
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9635
#include "CCExprResolveH.ah"
 
9636
#endif
 
9637
namespace Puma {
 
9638
 
 
9639
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9640
 
 
9641
#line 9642 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9642
} // closed Puma
 
9643
 
 
9644
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9645
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9646
#include "CExprResolveH.ah"
 
9647
#endif
 
9648
namespace Puma {
 
9649
 
 
9650
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9651
class CT_NewExpr : public CT_Expression, public CSemObject {
 
9652
#line 9653 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9653
  friend class ::CCExprResolve;
 
9654
  friend class ::CExprResolve;
 
9655
  friend class ::WinIfExists;
 
9656
  friend class ::WinImportHandler;
 
9657
  friend class ::WinMacros;
 
9658
  friend class ::WinAsm;
 
9659
  friend class ::WinDeclSpecs;
 
9660
  friend class ::WinMemberExplSpec;
 
9661
  friend class ::WinTypeKeywords;
 
9662
  friend class ::WinFriend;
 
9663
  friend class ::ExtAC;
 
9664
  friend class ::ExtACBuilderCoupling;
 
9665
  friend class ::ExtACSyntaxCoupling;
 
9666
  friend class ::ExtACTree;
 
9667
  friend class ::ExtACKeywords;
 
9668
  friend class ::ExtGnu;
 
9669
  friend class ::PragmaOnceUnitState;
 
9670
  friend class ::PragmaOnce;
 
9671
  friend class ::CMatchSyntax;
 
9672
 
 
9673
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9674
 
 
9675
  CTree *sons[6]; // oper, placement, open, type, close, init
 
9676
 
 
9677
public:
 
9678
  /** Constructor.
 
9679
   *  \param op The new operator.
 
9680
   *  \param p The optional placement expression.
 
9681
   *  \param o The optional left parenthesis around the type identifier.
 
9682
   *  \param t The type identifier specifying the type of the object to create.
 
9683
   *  \param c The optional right parenthesis around the type identifier.
 
9684
   *  \param i The optional initializer. */
 
9685
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
 
9686
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
9687
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
 
9688
  }
 
9689
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
9690
  static const char *NodeId ();
 
9691
  /** Get the name of the node. Can be compared with NodeId(). */
 
9692
  const char *NodeName () const { return NodeId (); }
 
9693
  /** Get the number of sons. */
 
9694
  int Sons () const { return CTree::Sons (sons, 6); }
 
9695
  /** Get the n-th son.
 
9696
   *  \param n The index of the son.
 
9697
   *  \return The n-th son or NULL. */
 
9698
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
9699
  /** Replace a son.
 
9700
   *  \param old_son The son to replace.
 
9701
   *  \param new_son The new son. */
 
9702
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
9703
    CTree::ReplaceSon (sons, 6, old_son, new_son);
 
9704
  }
 
9705
  /** Get the operator name. */
 
9706
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
9707
  /** Get the placement expression. */
 
9708
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
9709
  /** Get the initializer. */
 
9710
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
9711
  /** Get the type of the object to create. */
 
9712
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
9713
  /** Get the semantic information object. */
 
9714
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
9715
   private:
 
9716
  typedef CT_NewExpr CCExprResolveExpr;
 
9717
 
 
9718
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9719
 public :
 
9720
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
9721
  typedef CT_NewExpr CExprResolveExpr;
 
9722
 
 
9723
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9724
 public :
 
9725
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9726
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9727
};
 
9728
 
 
9729
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
9730
 *  Tree node representing an if-then expression, 
 
9731
 *  e.g. a>0?a:b or a?:b. */
 
9732
 
 
9733
#line 9734 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9734
} // closed Puma
 
9735
class CCExprResolve;
 
9736
class CExprResolve;
 
9737
class WinIfExists;
 
9738
class WinImportHandler;
 
9739
class WinMacros;
 
9740
class WinAsm;
 
9741
class WinDeclSpecs;
 
9742
class WinMemberExplSpec;
 
9743
class WinTypeKeywords;
 
9744
class WinFriend;
 
9745
class ExtAC;
 
9746
class ExtACBuilderCoupling;
 
9747
class ExtACSyntaxCoupling;
 
9748
class ExtACTree;
 
9749
class ExtACKeywords;
 
9750
class ExtGnu;
 
9751
class PragmaOnceUnitState;
 
9752
class PragmaOnce;
 
9753
class CMatchSyntax;
 
9754
namespace Puma {
 
9755
 
 
9756
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9757
 
 
9758
#line 9759 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9759
} // closed Puma
 
9760
 
 
9761
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9762
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9763
#include "CCExprResolveH.ah"
 
9764
#endif
 
9765
namespace Puma {
 
9766
 
 
9767
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9768
 
 
9769
#line 9770 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9770
} // closed Puma
 
9771
 
 
9772
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9773
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9774
#include "CExprResolveH.ah"
 
9775
#endif
 
9776
namespace Puma {
 
9777
 
 
9778
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9779
class CT_IfThenExpr : public CT_Expression {
 
9780
#line 9781 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9781
  friend class ::CCExprResolve;
 
9782
  friend class ::CExprResolve;
 
9783
  friend class ::WinIfExists;
 
9784
  friend class ::WinImportHandler;
 
9785
  friend class ::WinMacros;
 
9786
  friend class ::WinAsm;
 
9787
  friend class ::WinDeclSpecs;
 
9788
  friend class ::WinMemberExplSpec;
 
9789
  friend class ::WinTypeKeywords;
 
9790
  friend class ::WinFriend;
 
9791
  friend class ::ExtAC;
 
9792
  friend class ::ExtACBuilderCoupling;
 
9793
  friend class ::ExtACSyntaxCoupling;
 
9794
  friend class ::ExtACTree;
 
9795
  friend class ::ExtACKeywords;
 
9796
  friend class ::ExtGnu;
 
9797
  friend class ::PragmaOnceUnitState;
 
9798
  friend class ::PragmaOnce;
 
9799
  friend class ::CMatchSyntax;
 
9800
 
 
9801
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9802
 
 
9803
  CTree *sons[5]; // cond, oper, left, colon, right
 
9804
 
 
9805
public:
 
9806
  /** Constructor.
 
9807
   *  \param c1 The condition expression.
 
9808
   *  \param o The question mark operator. 
 
9809
   *  \param l The expression to the left of the colon.
 
9810
   *  \param c2 The colon operator.
 
9811
   *  \param r The expression to the right of the colon. */ 
 
9812
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
 
9813
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
9814
    AddSon (sons[3], c2); AddSon (sons[4], r);
 
9815
  }
 
9816
  /** Constructor.
 
9817
   *  \param c1 The condition expression.
 
9818
   *  \param o The question mark operator. 
 
9819
   *  \param c2 The colon operator.
 
9820
   *  \param r The expression to the right of the colon. */ 
 
9821
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
 
9822
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
9823
    AddSon (sons[3], c2); AddSon (sons[4], r);
 
9824
  }
 
9825
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
9826
  static const char *NodeId ();
 
9827
  /** Get the name of the node. Can be compared with NodeId(). */
 
9828
  const char *NodeName () const { return NodeId (); }
 
9829
  /** Get the number of sons. */
 
9830
  int Sons () const { return CTree::Sons (sons, 5); }
 
9831
  /** Get the n-th son.
 
9832
   *  \param n The index of the son.
 
9833
   *  \return The n-th son or NULL. */
 
9834
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
9835
  /** Get the condition expression. */
 
9836
  CTree *Condition () const { return sons[0]; }
 
9837
  /** Get the left expression (condition=true). */
 
9838
  CTree *LeftOperand () const { return sons[2]; }
 
9839
  /** Get the right expression (condition=false). */
 
9840
  CTree *RightOperand () const { return sons[4]; }
 
9841
  /** Replace a son.
 
9842
   *  \param old_son The son to replace.
 
9843
   *  \param new_son The new son. */
 
9844
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
9845
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
9846
  }
 
9847
   private:
 
9848
  typedef CT_IfThenExpr CCExprResolveExpr;
 
9849
 
 
9850
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9851
 public :
 
9852
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
9853
  typedef CT_IfThenExpr CExprResolveExpr;
 
9854
 
 
9855
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9856
 public :
 
9857
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9858
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9859
};
 
9860
 
 
9861
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
9862
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
 
9863
 
 
9864
#line 9865 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9865
} // closed Puma
 
9866
class CCExprResolve;
 
9867
class CExprResolve;
 
9868
class WinIfExists;
 
9869
class WinImportHandler;
 
9870
class WinMacros;
 
9871
class WinAsm;
 
9872
class WinDeclSpecs;
 
9873
class WinMemberExplSpec;
 
9874
class WinTypeKeywords;
 
9875
class WinFriend;
 
9876
class ExtAC;
 
9877
class ExtACBuilderCoupling;
 
9878
class ExtACSyntaxCoupling;
 
9879
class ExtACTree;
 
9880
class ExtACKeywords;
 
9881
class ExtGnu;
 
9882
class PragmaOnceUnitState;
 
9883
class PragmaOnce;
 
9884
class CMatchSyntax;
 
9885
namespace Puma {
 
9886
 
 
9887
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9888
 
 
9889
#line 9890 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9890
} // closed Puma
 
9891
 
 
9892
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9893
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9894
#include "CCExprResolveH.ah"
 
9895
#endif
 
9896
namespace Puma {
 
9897
 
 
9898
#line 1392 "/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/CSemDeclSpecs.cc"
 
9901
} // closed Puma
 
9902
 
 
9903
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9904
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9905
#include "CExprResolveH.ah"
 
9906
#endif
 
9907
namespace Puma {
 
9908
 
 
9909
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9910
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
 
9911
#line 9912 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9912
  friend class ::CCExprResolve;
 
9913
  friend class ::CExprResolve;
 
9914
  friend class ::WinIfExists;
 
9915
  friend class ::WinImportHandler;
 
9916
  friend class ::WinMacros;
 
9917
  friend class ::WinAsm;
 
9918
  friend class ::WinDeclSpecs;
 
9919
  friend class ::WinMemberExplSpec;
 
9920
  friend class ::WinTypeKeywords;
 
9921
  friend class ::WinFriend;
 
9922
  friend class ::ExtAC;
 
9923
  friend class ::ExtACBuilderCoupling;
 
9924
  friend class ::ExtACSyntaxCoupling;
 
9925
  friend class ::ExtACTree;
 
9926
  friend class ::ExtACKeywords;
 
9927
  friend class ::ExtGnu;
 
9928
  friend class ::PragmaOnceUnitState;
 
9929
  friend class ::PragmaOnce;
 
9930
  friend class ::CMatchSyntax;
 
9931
 
 
9932
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9933
 
 
9934
  CTree *sons[4]; // open, type, close, init
 
9935
 
 
9936
public:
 
9937
  /** Constructor.
 
9938
   *  \param r Left parenthesis of the type name.
 
9939
   *  \param t The type name.
 
9940
   *  \param cr Right parenthesis of the type name.
 
9941
   *  \param i The initializer list. */
 
9942
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
 
9943
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
9944
    AddSon (sons[2], cr); AddSon (sons[3], i);
 
9945
  }
 
9946
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
9947
  static const char *NodeId ();
 
9948
  /** Get the name of the node. Can be compared with NodeId(). */
 
9949
  const char *NodeName () const { return NodeId (); }
 
9950
  /** Get the number of sons. */
 
9951
  int Sons () const { return 4; }
 
9952
  /** Get the n-th son.
 
9953
   *  \param n The index of the son.
 
9954
   *  \return The n-th son or NULL. */
 
9955
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
9956
  /** Replace a son.
 
9957
   *  \param old_son The son to replace.
 
9958
   *  \param new_son The new son. */
 
9959
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
9960
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
9961
  }
 
9962
  /** Get the type name. */
 
9963
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
9964
  /** Get the initializer list. */
 
9965
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
9966
  /** Get the semantic information object. */
 
9967
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
9968
   private:
 
9969
  typedef CT_CmpdLiteral CCExprResolveExpr;
 
9970
 
 
9971
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9972
 public :
 
9973
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
9974
  typedef CT_CmpdLiteral CExprResolveExpr;
 
9975
 
 
9976
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9977
 public :
 
9978
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9979
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9980
};
 
9981
 
 
9982
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
9983
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
 
9984
 
 
9985
#line 9986 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
9986
} // closed Puma
 
9987
class CCExprResolve;
 
9988
class CExprResolve;
 
9989
class WinIfExists;
 
9990
class WinImportHandler;
 
9991
class WinMacros;
 
9992
class WinAsm;
 
9993
class WinDeclSpecs;
 
9994
class WinMemberExplSpec;
 
9995
class WinTypeKeywords;
 
9996
class WinFriend;
 
9997
class ExtAC;
 
9998
class ExtACBuilderCoupling;
 
9999
class ExtACSyntaxCoupling;
 
10000
class ExtACTree;
 
10001
class ExtACKeywords;
 
10002
class ExtGnu;
 
10003
class PragmaOnceUnitState;
 
10004
class PragmaOnce;
 
10005
class CMatchSyntax;
 
10006
namespace Puma {
 
10007
 
 
10008
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10009
 
 
10010
#line 10011 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10011
} // closed Puma
 
10012
 
 
10013
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10014
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10015
#include "CCExprResolveH.ah"
 
10016
#endif
 
10017
namespace Puma {
 
10018
 
 
10019
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10020
 
 
10021
#line 10022 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10022
} // closed Puma
 
10023
 
 
10024
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10025
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10026
#include "CExprResolveH.ah"
 
10027
#endif
 
10028
namespace Puma {
 
10029
 
 
10030
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10031
class CT_ConstructExpr : public CT_Expression, public CSemObject {
 
10032
#line 10033 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10033
  friend class ::CCExprResolve;
 
10034
  friend class ::CExprResolve;
 
10035
  friend class ::WinIfExists;
 
10036
  friend class ::WinImportHandler;
 
10037
  friend class ::WinMacros;
 
10038
  friend class ::WinAsm;
 
10039
  friend class ::WinDeclSpecs;
 
10040
  friend class ::WinMemberExplSpec;
 
10041
  friend class ::WinTypeKeywords;
 
10042
  friend class ::WinFriend;
 
10043
  friend class ::ExtAC;
 
10044
  friend class ::ExtACBuilderCoupling;
 
10045
  friend class ::ExtACSyntaxCoupling;
 
10046
  friend class ::ExtACTree;
 
10047
  friend class ::ExtACKeywords;
 
10048
  friend class ::ExtGnu;
 
10049
  friend class ::PragmaOnceUnitState;
 
10050
  friend class ::PragmaOnce;
 
10051
  friend class ::CMatchSyntax;
 
10052
 
 
10053
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10054
 
 
10055
  CTree *sons[2]; // type, init
 
10056
 
 
10057
public:
 
10058
  /** Constructor.
 
10059
   *  \param t The type name.
 
10060
   *  \param i The initializer list. */
 
10061
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
10062
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
10063
  static const char *NodeId ();
 
10064
  /** Get the name of the node. Can be compared with NodeId(). */
 
10065
  const char *NodeName () const { return NodeId (); }
 
10066
  /** Get the number of sons. */
 
10067
  int Sons () const { return 2; }
 
10068
  /** Get the n-th son.
 
10069
   *  \param n The index of the son.
 
10070
   *  \return The n-th son or NULL. */
 
10071
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
10072
  /** Replace a son.
 
10073
   *  \param old_son The son to replace.
 
10074
   *  \param new_son The new son. */
 
10075
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
10076
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
10077
  }
 
10078
  /** Get the type name. */
 
10079
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
10080
  /** Get the initializer. */
 
10081
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
10082
  /** Get the semantic information object. */
 
10083
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
10084
   private:
 
10085
  typedef CT_ConstructExpr CCExprResolveExpr;
 
10086
 
 
10087
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10088
 public :
 
10089
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
10090
  typedef CT_ConstructExpr CExprResolveExpr;
 
10091
 
 
10092
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10093
 public :
 
10094
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10095
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10096
};
 
10097
 
 
10098
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
10099
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
 
10100
 
 
10101
#line 10102 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10102
} // closed Puma
 
10103
class CCExprResolve;
 
10104
class CExprResolve;
 
10105
class WinIfExists;
 
10106
class WinImportHandler;
 
10107
class WinMacros;
 
10108
class WinAsm;
 
10109
class WinDeclSpecs;
 
10110
class WinMemberExplSpec;
 
10111
class WinTypeKeywords;
 
10112
class WinFriend;
 
10113
class ExtAC;
 
10114
class ExtACBuilderCoupling;
 
10115
class ExtACSyntaxCoupling;
 
10116
class ExtACTree;
 
10117
class ExtACKeywords;
 
10118
class ExtGnu;
 
10119
class PragmaOnceUnitState;
 
10120
class PragmaOnce;
 
10121
class CMatchSyntax;
 
10122
namespace Puma {
 
10123
 
 
10124
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10125
 
 
10126
#line 10127 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10127
} // closed Puma
 
10128
 
 
10129
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10130
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10131
#include "CCExprResolveH.ah"
 
10132
#endif
 
10133
namespace Puma {
 
10134
 
 
10135
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10136
 
 
10137
#line 10138 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10138
} // closed Puma
 
10139
 
 
10140
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10141
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10142
#include "CExprResolveH.ah"
 
10143
#endif
 
10144
namespace Puma {
 
10145
 
 
10146
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10147
class CT_ThrowExpr : public CT_Expression {
 
10148
#line 10149 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10149
  friend class ::CCExprResolve;
 
10150
  friend class ::CExprResolve;
 
10151
  friend class ::WinIfExists;
 
10152
  friend class ::WinImportHandler;
 
10153
  friend class ::WinMacros;
 
10154
  friend class ::WinAsm;
 
10155
  friend class ::WinDeclSpecs;
 
10156
  friend class ::WinMemberExplSpec;
 
10157
  friend class ::WinTypeKeywords;
 
10158
  friend class ::WinFriend;
 
10159
  friend class ::ExtAC;
 
10160
  friend class ::ExtACBuilderCoupling;
 
10161
  friend class ::ExtACSyntaxCoupling;
 
10162
  friend class ::ExtACTree;
 
10163
  friend class ::ExtACKeywords;
 
10164
  friend class ::ExtGnu;
 
10165
  friend class ::PragmaOnceUnitState;
 
10166
  friend class ::PragmaOnce;
 
10167
  friend class ::CMatchSyntax;
 
10168
 
 
10169
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10170
 
 
10171
  CTree *sons[2]; // throw, expr
 
10172
 
 
10173
public:
 
10174
  /** Constructor.
 
10175
   *  \param t The 'throw' keyword.
 
10176
   *  \param e The expression. */
 
10177
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
10178
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
10179
  static const char *NodeId ();
 
10180
  /** Get the name of the node. Can be compared with NodeId(). */
 
10181
  const char *NodeName () const { return NodeId (); }
 
10182
  /** Get the number of sons. */
 
10183
  int Sons () const { return CTree::Sons (sons, 2); }
 
10184
  /** Get the n-th son.
 
10185
   *  \param n The index of the son.
 
10186
   *  \return The n-th son or NULL. */
 
10187
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
10188
  /** Replace a son.
 
10189
   *  \param old_son The son to replace.
 
10190
   *  \param new_son The new son. */
 
10191
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
10192
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
10193
  }
 
10194
  /** Get the expression. */
 
10195
  CTree *Expr () const { return sons[1]; }
 
10196
   private:
 
10197
  typedef CT_ThrowExpr CCExprResolveExpr;
 
10198
 
 
10199
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10200
 public :
 
10201
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
10202
  typedef CT_ThrowExpr CExprResolveExpr;
 
10203
 
 
10204
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10205
 public :
 
10206
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10207
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10208
};
 
10209
 
 
10210
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
10211
 *  Tree node representing an index expression. */
 
10212
 
 
10213
#line 10214 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10214
} // closed Puma
 
10215
class CCExprResolve;
 
10216
class CExprResolve;
 
10217
class WinIfExists;
 
10218
class WinImportHandler;
 
10219
class WinMacros;
 
10220
class WinAsm;
 
10221
class WinDeclSpecs;
 
10222
class WinMemberExplSpec;
 
10223
class WinTypeKeywords;
 
10224
class WinFriend;
 
10225
class ExtAC;
 
10226
class ExtACBuilderCoupling;
 
10227
class ExtACSyntaxCoupling;
 
10228
class ExtACTree;
 
10229
class ExtACKeywords;
 
10230
class ExtGnu;
 
10231
class PragmaOnceUnitState;
 
10232
class PragmaOnce;
 
10233
class CMatchSyntax;
 
10234
namespace Puma {
 
10235
 
 
10236
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10237
 
 
10238
#line 10239 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10239
} // closed Puma
 
10240
 
 
10241
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10242
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10243
#include "CCExprResolveH.ah"
 
10244
#endif
 
10245
namespace Puma {
 
10246
 
 
10247
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10248
 
 
10249
#line 10250 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10250
} // closed Puma
 
10251
 
 
10252
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10253
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10254
#include "CExprResolveH.ah"
 
10255
#endif
 
10256
namespace Puma {
 
10257
 
 
10258
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10259
class CT_IndexExpr : public CT_Call {
 
10260
#line 10261 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10261
  friend class ::CCExprResolve;
 
10262
  friend class ::CExprResolve;
 
10263
  friend class ::WinIfExists;
 
10264
  friend class ::WinImportHandler;
 
10265
  friend class ::WinMacros;
 
10266
  friend class ::WinAsm;
 
10267
  friend class ::WinDeclSpecs;
 
10268
  friend class ::WinMemberExplSpec;
 
10269
  friend class ::WinTypeKeywords;
 
10270
  friend class ::WinFriend;
 
10271
  friend class ::ExtAC;
 
10272
  friend class ::ExtACBuilderCoupling;
 
10273
  friend class ::ExtACSyntaxCoupling;
 
10274
  friend class ::ExtACTree;
 
10275
  friend class ::ExtACKeywords;
 
10276
  friend class ::ExtGnu;
 
10277
  friend class ::PragmaOnceUnitState;
 
10278
  friend class ::PragmaOnce;
 
10279
  friend class ::CMatchSyntax;
 
10280
 
 
10281
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10282
 
 
10283
  CTree *sons[4]; // expr, open, index, close
 
10284
 
 
10285
public:
 
10286
  /** Constructor.
 
10287
   *  \param e The expression on which to invoke the index operator.
 
10288
   *  \param o Left parenthesis of the index expression.
 
10289
   *  \param i The index expression. 
 
10290
   *  \param c Right parenthesis of the index expression. */
 
10291
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
 
10292
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
10293
    AddSon (sons[2], i); AddSon (sons[3], c);
 
10294
  }
 
10295
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
10296
  static const char *NodeId ();
 
10297
  /** Get the name of the node. Can be compared with NodeId(). */
 
10298
  const char *NodeName () const { return NodeId (); }
 
10299
  /** Get the number of sons. */
 
10300
  int Sons () const { return 4; }
 
10301
  /** Get the n-th son.
 
10302
   *  \param n The index of the son.
 
10303
   *  \return The n-th son or NULL. */
 
10304
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
10305
  /** Replace a son.
 
10306
   *  \param old_son The son to replace.
 
10307
   *  \param new_son The new son. */
 
10308
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
10309
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
10310
  }
 
10311
   private:
 
10312
  typedef CT_IndexExpr CCExprResolveExpr;
 
10313
 
 
10314
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10315
 public :
 
10316
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
10317
  typedef CT_IndexExpr CExprResolveExpr;
 
10318
 
 
10319
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10320
 public :
 
10321
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10322
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10323
};
 
10324
 
 
10325
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
10326
 *  Tree node representing a function call expression, e.g. f(i). */
 
10327
 
 
10328
#line 10329 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10329
} // closed Puma
 
10330
class CCExprResolve;
 
10331
class CExprResolve;
 
10332
class WinIfExists;
 
10333
class WinImportHandler;
 
10334
class WinMacros;
 
10335
class WinAsm;
 
10336
class WinDeclSpecs;
 
10337
class WinMemberExplSpec;
 
10338
class WinTypeKeywords;
 
10339
class WinFriend;
 
10340
class ExtAC;
 
10341
class ExtACBuilderCoupling;
 
10342
class ExtACSyntaxCoupling;
 
10343
class ExtACTree;
 
10344
class ExtACKeywords;
 
10345
class ExtGnu;
 
10346
class PragmaOnceUnitState;
 
10347
class PragmaOnce;
 
10348
class CMatchSyntax;
 
10349
namespace Puma {
 
10350
 
 
10351
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10352
 
 
10353
#line 10354 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10354
} // closed Puma
 
10355
 
 
10356
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10357
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10358
#include "CCExprResolveH.ah"
 
10359
#endif
 
10360
namespace Puma {
 
10361
 
 
10362
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10363
 
 
10364
#line 10365 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10365
} // closed Puma
 
10366
 
 
10367
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10368
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10369
#include "CExprResolveH.ah"
 
10370
#endif
 
10371
namespace Puma {
 
10372
 
 
10373
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10374
class CT_CallExpr : public CT_Call {
 
10375
#line 10376 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10376
  friend class ::CCExprResolve;
 
10377
  friend class ::CExprResolve;
 
10378
  friend class ::WinIfExists;
 
10379
  friend class ::WinImportHandler;
 
10380
  friend class ::WinMacros;
 
10381
  friend class ::WinAsm;
 
10382
  friend class ::WinDeclSpecs;
 
10383
  friend class ::WinMemberExplSpec;
 
10384
  friend class ::WinTypeKeywords;
 
10385
  friend class ::WinFriend;
 
10386
  friend class ::ExtAC;
 
10387
  friend class ::ExtACBuilderCoupling;
 
10388
  friend class ::ExtACSyntaxCoupling;
 
10389
  friend class ::ExtACTree;
 
10390
  friend class ::ExtACKeywords;
 
10391
  friend class ::ExtGnu;
 
10392
  friend class ::PragmaOnceUnitState;
 
10393
  friend class ::PragmaOnce;
 
10394
  friend class ::CMatchSyntax;
 
10395
 
 
10396
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10397
 
 
10398
  CTree *sons[2]; // expr, args
 
10399
 
 
10400
public:
 
10401
  /** Constructor.
 
10402
   *  \param e The expression on which the call is invoked. */
 
10403
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
10404
  /** Constructor.
 
10405
   *  \param e The expression on which the call is invoked.
 
10406
   *  \param l The argument list of the call. */
 
10407
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
10408
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
10409
  static const char *NodeId ();
 
10410
  /** Get the name of the node. Can be compared with NodeId(). */
 
10411
  const char *NodeName () const { return NodeId (); }
 
10412
  /** Get the number of sons. */
 
10413
  int Sons () const { return CTree::Sons (sons, 2); }
 
10414
  /** Get the n-th son.
 
10415
   *  \param n The index of the son.
 
10416
   *  \return The n-th son or NULL. */
 
10417
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
10418
  /** Replace a son.
 
10419
   *  \param old_son The son to replace.
 
10420
   *  \param new_son The new son. */
 
10421
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
10422
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
10423
  }
 
10424
  CTree *Expr () const { return sons[0]; }
 
10425
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
 
10426
   private:
 
10427
  typedef CT_CallExpr CCExprResolveExpr;
 
10428
 
 
10429
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10430
 public :
 
10431
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
10432
  typedef CT_CallExpr CExprResolveExpr;
 
10433
 
 
10434
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10435
 public :
 
10436
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10437
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10438
};
 
10439
 
 
10440
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
10441
 *  Tree node representing a cast expression, e.g. (int)a. */
 
10442
 
 
10443
#line 10444 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10444
} // closed Puma
 
10445
class CCExprResolve;
 
10446
class CExprResolve;
 
10447
class WinIfExists;
 
10448
class WinImportHandler;
 
10449
class WinMacros;
 
10450
class WinAsm;
 
10451
class WinDeclSpecs;
 
10452
class WinMemberExplSpec;
 
10453
class WinTypeKeywords;
 
10454
class WinFriend;
 
10455
class ExtAC;
 
10456
class ExtACBuilderCoupling;
 
10457
class ExtACSyntaxCoupling;
 
10458
class ExtACTree;
 
10459
class ExtACKeywords;
 
10460
class ExtGnu;
 
10461
class PragmaOnceUnitState;
 
10462
class PragmaOnce;
 
10463
class CMatchSyntax;
 
10464
namespace Puma {
 
10465
 
 
10466
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10467
 
 
10468
#line 10469 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10469
} // closed Puma
 
10470
 
 
10471
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10472
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10473
#include "CCExprResolveH.ah"
 
10474
#endif
 
10475
namespace Puma {
 
10476
 
 
10477
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10478
 
 
10479
#line 10480 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10480
} // closed Puma
 
10481
 
 
10482
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10483
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10484
#include "CExprResolveH.ah"
 
10485
#endif
 
10486
namespace Puma {
 
10487
 
 
10488
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10489
class CT_CastExpr : public CT_Expression {
 
10490
#line 10491 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10491
  friend class ::CCExprResolve;
 
10492
  friend class ::CExprResolve;
 
10493
  friend class ::WinIfExists;
 
10494
  friend class ::WinImportHandler;
 
10495
  friend class ::WinMacros;
 
10496
  friend class ::WinAsm;
 
10497
  friend class ::WinDeclSpecs;
 
10498
  friend class ::WinMemberExplSpec;
 
10499
  friend class ::WinTypeKeywords;
 
10500
  friend class ::WinFriend;
 
10501
  friend class ::ExtAC;
 
10502
  friend class ::ExtACBuilderCoupling;
 
10503
  friend class ::ExtACSyntaxCoupling;
 
10504
  friend class ::ExtACTree;
 
10505
  friend class ::ExtACKeywords;
 
10506
  friend class ::ExtGnu;
 
10507
  friend class ::PragmaOnceUnitState;
 
10508
  friend class ::PragmaOnce;
 
10509
  friend class ::CMatchSyntax;
 
10510
 
 
10511
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10512
 
 
10513
  CTree *sons[4]; // open, type, close, expr
 
10514
 
 
10515
public:
 
10516
  /** Constructor.
 
10517
   *  \param o Left parenthesis of the type name.
 
10518
   *  \param t The type to cast to.
 
10519
   *  \param c Right parenthesis of the type name. 
 
10520
   *  \param e The expression to cast. */
 
10521
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
 
10522
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
10523
    AddSon (sons[2], c); AddSon (sons[3], e);
 
10524
  }
 
10525
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
10526
  static const char *NodeId ();
 
10527
  /** Get the name of the node. Can be compared with NodeId(). */
 
10528
  const char *NodeName () const { return NodeId (); }
 
10529
  /** Get the number of sons. */
 
10530
  int Sons () const { return 4; }
 
10531
  /** Get the n-th son.
 
10532
   *  \param n The index of the son.
 
10533
   *  \return The n-th son or NULL. */
 
10534
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
10535
  /** Replace a son.
 
10536
   *  \param old_son The son to replace.
 
10537
   *  \param new_son The new son. */
 
10538
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
10539
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
10540
  }
 
10541
  /** Get the casted expression. */
 
10542
  CTree *Expr () const { return sons[3]; }
 
10543
  /** Get the type to cast to. */
 
10544
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
10545
   private:
 
10546
  typedef CT_CastExpr CCExprResolveExpr;
 
10547
 
 
10548
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10549
 public :
 
10550
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
10551
  typedef CT_CastExpr CExprResolveExpr;
 
10552
 
 
10553
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10554
 public :
 
10555
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10556
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10557
};
 
10558
 
 
10559
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
10560
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
 
10561
 
 
10562
#line 10563 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10563
} // closed Puma
 
10564
class CCExprResolve;
 
10565
class CExprResolve;
 
10566
class WinIfExists;
 
10567
class WinImportHandler;
 
10568
class WinMacros;
 
10569
class WinAsm;
 
10570
class WinDeclSpecs;
 
10571
class WinMemberExplSpec;
 
10572
class WinTypeKeywords;
 
10573
class WinFriend;
 
10574
class ExtAC;
 
10575
class ExtACBuilderCoupling;
 
10576
class ExtACSyntaxCoupling;
 
10577
class ExtACTree;
 
10578
class ExtACKeywords;
 
10579
class ExtGnu;
 
10580
class PragmaOnceUnitState;
 
10581
class PragmaOnce;
 
10582
class CMatchSyntax;
 
10583
namespace Puma {
 
10584
 
 
10585
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10586
 
 
10587
#line 10588 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10588
} // closed Puma
 
10589
 
 
10590
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10591
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10592
#include "CCExprResolveH.ah"
 
10593
#endif
 
10594
namespace Puma {
 
10595
 
 
10596
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10597
 
 
10598
#line 10599 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10599
} // closed Puma
 
10600
 
 
10601
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10602
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10603
#include "CExprResolveH.ah"
 
10604
#endif
 
10605
namespace Puma {
 
10606
 
 
10607
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10608
class CT_StaticCast : public CT_Expression {
 
10609
#line 10610 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10610
  friend class ::CCExprResolve;
 
10611
  friend class ::CExprResolve;
 
10612
  friend class ::WinIfExists;
 
10613
  friend class ::WinImportHandler;
 
10614
  friend class ::WinMacros;
 
10615
  friend class ::WinAsm;
 
10616
  friend class ::WinDeclSpecs;
 
10617
  friend class ::WinMemberExplSpec;
 
10618
  friend class ::WinTypeKeywords;
 
10619
  friend class ::WinFriend;
 
10620
  friend class ::ExtAC;
 
10621
  friend class ::ExtACBuilderCoupling;
 
10622
  friend class ::ExtACSyntaxCoupling;
 
10623
  friend class ::ExtACTree;
 
10624
  friend class ::ExtACKeywords;
 
10625
  friend class ::ExtGnu;
 
10626
  friend class ::PragmaOnceUnitState;
 
10627
  friend class ::PragmaOnce;
 
10628
  friend class ::CMatchSyntax;
 
10629
 
 
10630
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10631
 
 
10632
  CTree *sons[5]; // cast, open, type, close, expr
 
10633
 
 
10634
public:
 
10635
  /** Constructor.
 
10636
   *  \param cst The cast operator, i.e. 'static_cast'.
 
10637
   *  \param o Left arrow bracket of the type name.
 
10638
   *  \param t The type to cast to.
 
10639
   *  \param c Right array bracket of the type name.
 
10640
   *  \param e The expression to cast. */
 
10641
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
 
10642
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
10643
    AddSon (sons[3], c); AddSon (sons[4], e);
 
10644
  }
 
10645
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
10646
  static const char *NodeId ();
 
10647
  /** Get the name of the node. Can be compared with NodeId(). */
 
10648
  const char *NodeName () const { return NodeId (); }
 
10649
  /** Get the number of sons. */
 
10650
  int Sons () const { return 5; }
 
10651
  /** Get the n-th son.
 
10652
   *  \param n The index of the son.
 
10653
   *  \return The n-th son or NULL. */
 
10654
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
10655
  /** Replace a son.
 
10656
   *  \param old_son The son to replace.
 
10657
   *  \param new_son The new son. */
 
10658
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
10659
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
10660
  }
 
10661
  /** Get the casted expression. */
 
10662
  CTree *Expr () const { return sons[4]; }
 
10663
  /** Get the type to cast to. */
 
10664
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
 
10665
   private:
 
10666
  typedef CT_StaticCast CCExprResolveExpr;
 
10667
 
 
10668
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10669
 public :
 
10670
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
10671
  typedef CT_StaticCast CExprResolveExpr;
 
10672
 
 
10673
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10674
 public :
 
10675
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10676
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10677
};
 
10678
 
 
10679
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
10680
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
 
10681
 
 
10682
#line 10683 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10683
} // closed Puma
 
10684
class CCExprResolve;
 
10685
class CExprResolve;
 
10686
class WinIfExists;
 
10687
class WinImportHandler;
 
10688
class WinMacros;
 
10689
class WinAsm;
 
10690
class WinDeclSpecs;
 
10691
class WinMemberExplSpec;
 
10692
class WinTypeKeywords;
 
10693
class WinFriend;
 
10694
class ExtAC;
 
10695
class ExtACBuilderCoupling;
 
10696
class ExtACSyntaxCoupling;
 
10697
class ExtACTree;
 
10698
class ExtACKeywords;
 
10699
class ExtGnu;
 
10700
class PragmaOnceUnitState;
 
10701
class PragmaOnce;
 
10702
class CMatchSyntax;
 
10703
namespace Puma {
 
10704
 
 
10705
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10706
 
 
10707
#line 10708 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10708
} // closed Puma
 
10709
 
 
10710
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10711
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10712
#include "CCExprResolveH.ah"
 
10713
#endif
 
10714
namespace Puma {
 
10715
 
 
10716
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10717
 
 
10718
#line 10719 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10719
} // closed Puma
 
10720
 
 
10721
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10722
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10723
#include "CExprResolveH.ah"
 
10724
#endif
 
10725
namespace Puma {
 
10726
 
 
10727
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10728
class CT_ConstCast : public CT_StaticCast {
 
10729
#line 10730 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10730
  friend class ::CCExprResolve;
 
10731
  friend class ::CExprResolve;
 
10732
  friend class ::WinIfExists;
 
10733
  friend class ::WinImportHandler;
 
10734
  friend class ::WinMacros;
 
10735
  friend class ::WinAsm;
 
10736
  friend class ::WinDeclSpecs;
 
10737
  friend class ::WinMemberExplSpec;
 
10738
  friend class ::WinTypeKeywords;
 
10739
  friend class ::WinFriend;
 
10740
  friend class ::ExtAC;
 
10741
  friend class ::ExtACBuilderCoupling;
 
10742
  friend class ::ExtACSyntaxCoupling;
 
10743
  friend class ::ExtACTree;
 
10744
  friend class ::ExtACKeywords;
 
10745
  friend class ::ExtGnu;
 
10746
  friend class ::PragmaOnceUnitState;
 
10747
  friend class ::PragmaOnce;
 
10748
  friend class ::CMatchSyntax;
 
10749
 
 
10750
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10751
 
 
10752
public:
 
10753
  /** Constructor.
 
10754
   *  \param cst The cast operator, i.e. 'const_cast'.
 
10755
   *  \param o Left arrow bracket of the type name.
 
10756
   *  \param t The type to cast to.
 
10757
   *  \param c Right array bracket of the type name.
 
10758
   *  \param e The expression to cast. */
 
10759
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
10760
    CT_StaticCast (cst, o, t, c, e) {}
 
10761
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
10762
  static const char *NodeId ();
 
10763
  /** Get the name of the node. Can be compared with NodeId(). */
 
10764
  const char *NodeName () const { return NodeId (); }
 
10765
   private:
 
10766
  typedef CT_ConstCast CCExprResolveExpr;
 
10767
 
 
10768
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10769
 public :
 
10770
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
10771
  typedef CT_ConstCast CExprResolveExpr;
 
10772
 
 
10773
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10774
 public :
 
10775
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10776
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10777
};
 
10778
 
 
10779
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
10780
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
 
10781
 
 
10782
#line 10783 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10783
} // closed Puma
 
10784
class CCExprResolve;
 
10785
class CExprResolve;
 
10786
class WinIfExists;
 
10787
class WinImportHandler;
 
10788
class WinMacros;
 
10789
class WinAsm;
 
10790
class WinDeclSpecs;
 
10791
class WinMemberExplSpec;
 
10792
class WinTypeKeywords;
 
10793
class WinFriend;
 
10794
class ExtAC;
 
10795
class ExtACBuilderCoupling;
 
10796
class ExtACSyntaxCoupling;
 
10797
class ExtACTree;
 
10798
class ExtACKeywords;
 
10799
class ExtGnu;
 
10800
class PragmaOnceUnitState;
 
10801
class PragmaOnce;
 
10802
class CMatchSyntax;
 
10803
namespace Puma {
 
10804
 
 
10805
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10806
 
 
10807
#line 10808 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10808
} // closed Puma
 
10809
 
 
10810
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10811
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10812
#include "CCExprResolveH.ah"
 
10813
#endif
 
10814
namespace Puma {
 
10815
 
 
10816
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10817
 
 
10818
#line 10819 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10819
} // closed Puma
 
10820
 
 
10821
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10822
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10823
#include "CExprResolveH.ah"
 
10824
#endif
 
10825
namespace Puma {
 
10826
 
 
10827
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10828
class CT_ReintCast : public CT_StaticCast {
 
10829
#line 10830 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10830
  friend class ::CCExprResolve;
 
10831
  friend class ::CExprResolve;
 
10832
  friend class ::WinIfExists;
 
10833
  friend class ::WinImportHandler;
 
10834
  friend class ::WinMacros;
 
10835
  friend class ::WinAsm;
 
10836
  friend class ::WinDeclSpecs;
 
10837
  friend class ::WinMemberExplSpec;
 
10838
  friend class ::WinTypeKeywords;
 
10839
  friend class ::WinFriend;
 
10840
  friend class ::ExtAC;
 
10841
  friend class ::ExtACBuilderCoupling;
 
10842
  friend class ::ExtACSyntaxCoupling;
 
10843
  friend class ::ExtACTree;
 
10844
  friend class ::ExtACKeywords;
 
10845
  friend class ::ExtGnu;
 
10846
  friend class ::PragmaOnceUnitState;
 
10847
  friend class ::PragmaOnce;
 
10848
  friend class ::CMatchSyntax;
 
10849
 
 
10850
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10851
 
 
10852
public:
 
10853
  /** Constructor.
 
10854
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
10855
   *  \param o Left arrow bracket of the type name.
 
10856
   *  \param t The type to cast to.
 
10857
   *  \param c Right array bracket of the type name.
 
10858
   *  \param e The expression to cast. */
 
10859
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
10860
    CT_StaticCast (cst, o, t, c, e) {}
 
10861
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
10862
  static const char *NodeId ();
 
10863
  /** Get the name of the node. Can be compared with NodeId(). */
 
10864
  const char *NodeName () const { return NodeId (); }
 
10865
   private:
 
10866
  typedef CT_ReintCast CCExprResolveExpr;
 
10867
 
 
10868
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10869
 public :
 
10870
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
10871
  typedef CT_ReintCast CExprResolveExpr;
 
10872
 
 
10873
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10874
 public :
 
10875
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10876
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10877
};
 
10878
 
 
10879
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
10880
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
 
10881
 
 
10882
#line 10883 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10883
} // closed Puma
 
10884
class CCExprResolve;
 
10885
class CExprResolve;
 
10886
class WinIfExists;
 
10887
class WinImportHandler;
 
10888
class WinMacros;
 
10889
class WinAsm;
 
10890
class WinDeclSpecs;
 
10891
class WinMemberExplSpec;
 
10892
class WinTypeKeywords;
 
10893
class WinFriend;
 
10894
class ExtAC;
 
10895
class ExtACBuilderCoupling;
 
10896
class ExtACSyntaxCoupling;
 
10897
class ExtACTree;
 
10898
class ExtACKeywords;
 
10899
class ExtGnu;
 
10900
class PragmaOnceUnitState;
 
10901
class PragmaOnce;
 
10902
class CMatchSyntax;
 
10903
namespace Puma {
 
10904
 
 
10905
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10906
 
 
10907
#line 10908 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10908
} // closed Puma
 
10909
 
 
10910
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10911
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10912
#include "CCExprResolveH.ah"
 
10913
#endif
 
10914
namespace Puma {
 
10915
 
 
10916
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10917
 
 
10918
#line 10919 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10919
} // closed Puma
 
10920
 
 
10921
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10922
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10923
#include "CExprResolveH.ah"
 
10924
#endif
 
10925
namespace Puma {
 
10926
 
 
10927
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10928
class CT_DynamicCast : public CT_StaticCast {
 
10929
#line 10930 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10930
  friend class ::CCExprResolve;
 
10931
  friend class ::CExprResolve;
 
10932
  friend class ::WinIfExists;
 
10933
  friend class ::WinImportHandler;
 
10934
  friend class ::WinMacros;
 
10935
  friend class ::WinAsm;
 
10936
  friend class ::WinDeclSpecs;
 
10937
  friend class ::WinMemberExplSpec;
 
10938
  friend class ::WinTypeKeywords;
 
10939
  friend class ::WinFriend;
 
10940
  friend class ::ExtAC;
 
10941
  friend class ::ExtACBuilderCoupling;
 
10942
  friend class ::ExtACSyntaxCoupling;
 
10943
  friend class ::ExtACTree;
 
10944
  friend class ::ExtACKeywords;
 
10945
  friend class ::ExtGnu;
 
10946
  friend class ::PragmaOnceUnitState;
 
10947
  friend class ::PragmaOnce;
 
10948
  friend class ::CMatchSyntax;
 
10949
 
 
10950
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10951
 
 
10952
public:
 
10953
  /** Constructor.
 
10954
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
10955
   *  \param o Left arrow bracket of the type name.
 
10956
   *  \param t The type to cast to.
 
10957
   *  \param c Right array bracket of the type name.
 
10958
   *  \param e The expression to cast. */
 
10959
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
10960
    CT_StaticCast (cst, o, t, c, e) {}
 
10961
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
10962
  static const char *NodeId ();
 
10963
  /** Get the name of the node. Can be compared with NodeId(). */
 
10964
  const char *NodeName () const { return NodeId (); }
 
10965
   private:
 
10966
  typedef CT_DynamicCast CCExprResolveExpr;
 
10967
 
 
10968
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10969
 public :
 
10970
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
10971
  typedef CT_DynamicCast CExprResolveExpr;
 
10972
 
 
10973
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10974
 public :
 
10975
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10976
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10977
};
 
10978
 
 
10979
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
10980
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
10981
 *  where 1.2 is implicitely casted from float to int. */
 
10982
 
 
10983
#line 10984 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
10984
} // closed Puma
 
10985
class CCExprResolve;
 
10986
class CExprResolve;
 
10987
class WinIfExists;
 
10988
class WinImportHandler;
 
10989
class WinMacros;
 
10990
class WinAsm;
 
10991
class WinDeclSpecs;
 
10992
class WinMemberExplSpec;
 
10993
class WinTypeKeywords;
 
10994
class WinFriend;
 
10995
class ExtAC;
 
10996
class ExtACBuilderCoupling;
 
10997
class ExtACSyntaxCoupling;
 
10998
class ExtACTree;
 
10999
class ExtACKeywords;
 
11000
class ExtGnu;
 
11001
class PragmaOnceUnitState;
 
11002
class PragmaOnce;
 
11003
class CMatchSyntax;
 
11004
namespace Puma {
 
11005
 
 
11006
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11007
 
 
11008
#line 11009 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11009
} // closed Puma
 
11010
 
 
11011
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11012
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11013
#include "CCExprResolveH.ah"
 
11014
#endif
 
11015
namespace Puma {
 
11016
 
 
11017
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11018
 
 
11019
#line 11020 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11020
} // closed Puma
 
11021
 
 
11022
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11023
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11024
#include "CExprResolveH.ah"
 
11025
#endif
 
11026
namespace Puma {
 
11027
 
 
11028
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11029
class CT_ImplicitCast : public CT_Expression {
 
11030
#line 11031 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11031
  friend class ::CCExprResolve;
 
11032
  friend class ::CExprResolve;
 
11033
  friend class ::WinIfExists;
 
11034
  friend class ::WinImportHandler;
 
11035
  friend class ::WinMacros;
 
11036
  friend class ::WinAsm;
 
11037
  friend class ::WinDeclSpecs;
 
11038
  friend class ::WinMemberExplSpec;
 
11039
  friend class ::WinTypeKeywords;
 
11040
  friend class ::WinFriend;
 
11041
  friend class ::ExtAC;
 
11042
  friend class ::ExtACBuilderCoupling;
 
11043
  friend class ::ExtACSyntaxCoupling;
 
11044
  friend class ::ExtACTree;
 
11045
  friend class ::ExtACKeywords;
 
11046
  friend class ::ExtGnu;
 
11047
  friend class ::PragmaOnceUnitState;
 
11048
  friend class ::PragmaOnce;
 
11049
  friend class ::CMatchSyntax;
 
11050
 
 
11051
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11052
 
 
11053
  CTree *_expr; // casted expression
 
11054
 
 
11055
public:
 
11056
  /** Constructor.
 
11057
   *  \param e The expression that is implicitely casted. */
 
11058
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
11059
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
11060
  static const char *NodeId ();
 
11061
  /** Get the name of the node. Can be compared with NodeId(). */
 
11062
  const char *NodeName () const { return NodeId (); }
 
11063
  /** Get the number of sons. */
 
11064
  int Sons () const { return 1; }
 
11065
  /** Get the n-th son.
 
11066
   *  \param n The index of the son.
 
11067
   *  \return The n-th son or NULL. */
 
11068
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
11069
  /** Get the casted expression. */
 
11070
  CTree *Expr () const { return _expr; }
 
11071
  /** Replace a son.
 
11072
   *  \param old_son The son to replace.
 
11073
   *  \param new_son The new son. */
 
11074
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
11075
   { CTree::ReplaceSon (_expr, old_son, new_son); }
 
11076
   private:
 
11077
  typedef CT_ImplicitCast CCExprResolveExpr;
 
11078
 
 
11079
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11080
 public :
 
11081
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
11082
  typedef CT_ImplicitCast CExprResolveExpr;
 
11083
 
 
11084
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11085
 public :
 
11086
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11087
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11088
};
 
11089
 
 
11090
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
11091
 *  Tree node representing a typeid expression, e.g. typeid(X). */
 
11092
 
 
11093
#line 11094 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11094
} // closed Puma
 
11095
class CCExprResolve;
 
11096
class CExprResolve;
 
11097
class WinIfExists;
 
11098
class WinImportHandler;
 
11099
class WinMacros;
 
11100
class WinAsm;
 
11101
class WinDeclSpecs;
 
11102
class WinMemberExplSpec;
 
11103
class WinTypeKeywords;
 
11104
class WinFriend;
 
11105
class ExtAC;
 
11106
class ExtACBuilderCoupling;
 
11107
class ExtACSyntaxCoupling;
 
11108
class ExtACTree;
 
11109
class ExtACKeywords;
 
11110
class ExtGnu;
 
11111
class PragmaOnceUnitState;
 
11112
class PragmaOnce;
 
11113
class CMatchSyntax;
 
11114
namespace Puma {
 
11115
 
 
11116
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11117
 
 
11118
#line 11119 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11119
} // closed Puma
 
11120
 
 
11121
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11122
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11123
#include "CCExprResolveH.ah"
 
11124
#endif
 
11125
namespace Puma {
 
11126
 
 
11127
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11128
 
 
11129
#line 11130 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11130
} // closed Puma
 
11131
 
 
11132
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11133
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11134
#include "CExprResolveH.ah"
 
11135
#endif
 
11136
namespace Puma {
 
11137
 
 
11138
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11139
class CT_TypeidExpr : public CT_Expression {
 
11140
#line 11141 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11141
  friend class ::CCExprResolve;
 
11142
  friend class ::CExprResolve;
 
11143
  friend class ::WinIfExists;
 
11144
  friend class ::WinImportHandler;
 
11145
  friend class ::WinMacros;
 
11146
  friend class ::WinAsm;
 
11147
  friend class ::WinDeclSpecs;
 
11148
  friend class ::WinMemberExplSpec;
 
11149
  friend class ::WinTypeKeywords;
 
11150
  friend class ::WinFriend;
 
11151
  friend class ::ExtAC;
 
11152
  friend class ::ExtACBuilderCoupling;
 
11153
  friend class ::ExtACSyntaxCoupling;
 
11154
  friend class ::ExtACTree;
 
11155
  friend class ::ExtACKeywords;
 
11156
  friend class ::ExtGnu;
 
11157
  friend class ::PragmaOnceUnitState;
 
11158
  friend class ::PragmaOnce;
 
11159
  friend class ::CMatchSyntax;
 
11160
 
 
11161
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11162
 
 
11163
  CTree *sons[4]; // typeid, open, type_id/expr, close
 
11164
 
 
11165
public:
 
11166
  /** Constructor.
 
11167
   *  \param tid The 'typeid' operator.
 
11168
   *  \param o The left parenthesis of the type name or expression.
 
11169
   *  \param e The expression or type name for which to get the type identifier.
 
11170
   *  \param c The right parenthesis of the type name or expression. */
 
11171
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
 
11172
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
11173
    AddSon (sons[2], e); AddSon (sons[3], c);
 
11174
  }
 
11175
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
11176
  static const char *NodeId ();
 
11177
  /** Get the name of the node. Can be compared with NodeId(). */
 
11178
  const char *NodeName () const { return NodeId (); }
 
11179
  /** Get the number of sons. */
 
11180
  int Sons () const { return 4; }
 
11181
  /** Get the n-th son.
 
11182
   *  \param n The index of the son.
 
11183
   *  \return The n-th son or NULL. */
 
11184
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
11185
  /** Replace a son.
 
11186
   *  \param old_son The son to replace.
 
11187
   *  \param new_son The new son. */
 
11188
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
11189
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
11190
  }
 
11191
  /** Get the typeid argument, i.e. the expression or type name for
 
11192
   *  which to get the type identifier. */
 
11193
  CTree *Arg () const { return sons[2]; }
 
11194
   private:
 
11195
  typedef CT_TypeidExpr CCExprResolveExpr;
 
11196
 
 
11197
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11198
 public :
 
11199
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
11200
  typedef CT_TypeidExpr CExprResolveExpr;
 
11201
 
 
11202
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11203
 public :
 
11204
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11205
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11206
};
 
11207
 
 
11208
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
11209
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
 
11210
 
 
11211
#line 11212 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11212
} // closed Puma
 
11213
class CCExprResolve;
 
11214
class CExprResolve;
 
11215
class WinIfExists;
 
11216
class WinImportHandler;
 
11217
class WinMacros;
 
11218
class WinAsm;
 
11219
class WinDeclSpecs;
 
11220
class WinMemberExplSpec;
 
11221
class WinTypeKeywords;
 
11222
class WinFriend;
 
11223
class ExtAC;
 
11224
class ExtACBuilderCoupling;
 
11225
class ExtACSyntaxCoupling;
 
11226
class ExtACTree;
 
11227
class ExtACKeywords;
 
11228
class ExtGnu;
 
11229
class PragmaOnceUnitState;
 
11230
class PragmaOnce;
 
11231
class CMatchSyntax;
 
11232
namespace Puma {
 
11233
 
 
11234
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11235
 
 
11236
#line 11237 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11237
} // closed Puma
 
11238
 
 
11239
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11240
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11241
#include "CCExprResolveH.ah"
 
11242
#endif
 
11243
namespace Puma {
 
11244
 
 
11245
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11246
 
 
11247
#line 11248 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11248
} // closed Puma
 
11249
 
 
11250
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11251
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11252
#include "CExprResolveH.ah"
 
11253
#endif
 
11254
namespace Puma {
 
11255
 
 
11256
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11257
class CT_SizeofExpr : public CT_Expression {
 
11258
#line 11259 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11259
  friend class ::CCExprResolve;
 
11260
  friend class ::CExprResolve;
 
11261
  friend class ::WinIfExists;
 
11262
  friend class ::WinImportHandler;
 
11263
  friend class ::WinMacros;
 
11264
  friend class ::WinAsm;
 
11265
  friend class ::WinDeclSpecs;
 
11266
  friend class ::WinMemberExplSpec;
 
11267
  friend class ::WinTypeKeywords;
 
11268
  friend class ::WinFriend;
 
11269
  friend class ::ExtAC;
 
11270
  friend class ::ExtACBuilderCoupling;
 
11271
  friend class ::ExtACSyntaxCoupling;
 
11272
  friend class ::ExtACTree;
 
11273
  friend class ::ExtACKeywords;
 
11274
  friend class ::ExtGnu;
 
11275
  friend class ::PragmaOnceUnitState;
 
11276
  friend class ::PragmaOnce;
 
11277
  friend class ::CMatchSyntax;
 
11278
 
 
11279
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11280
 
 
11281
  CTree *sons[5]; // key, open, type, close, expr
 
11282
 
 
11283
public:
 
11284
  /** Constructor.
 
11285
   *  \param k The 'sizeof' keyword.
 
11286
   *  \param o Left parenthesis around the type name.
 
11287
   *  \param t The type from which to get the size.
 
11288
   *  \param c Right parenthesis around the type name. */
 
11289
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
 
11290
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
11291
    AddSon (sons[3], c); AddSon (sons[4], 0);
 
11292
  }
 
11293
  /** Constructor.
 
11294
   *  \param k The 'sizeof' keyword.
 
11295
   *  \param e The expression from which to get the size. */
 
11296
  CT_SizeofExpr (CTree *k, CTree *e) {
 
11297
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
11298
    AddSon (sons[3], 0); AddSon (sons[4], e);
 
11299
  }
 
11300
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
11301
  static const char *NodeId ();
 
11302
  /** Get the name of the node. Can be compared with NodeId(). */
 
11303
  const char *NodeName () const { return NodeId (); }
 
11304
  /** Get the number of sons. */
 
11305
  int Sons () const { return CTree::Sons (sons, 5); }
 
11306
  /** Get the n-th son.
 
11307
   *  \param n The index of the son.
 
11308
   *  \return The n-th son or NULL. */
 
11309
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
11310
  /** Replace a son.
 
11311
   *  \param old_son The son to replace.
 
11312
   *  \param new_son The new son. */
 
11313
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
11314
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
11315
  }
 
11316
  /** Get the expression. */
 
11317
  CTree *Expr () const { return sons[4]; }
 
11318
  /** Get the type name. */
 
11319
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
 
11320
   private:
 
11321
  typedef CT_SizeofExpr CCExprResolveExpr;
 
11322
 
 
11323
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11324
 public :
 
11325
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
11326
  typedef CT_SizeofExpr CExprResolveExpr;
 
11327
 
 
11328
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11329
 public :
 
11330
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11331
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11332
};
 
11333
 
 
11334
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
11335
 *  Tree node representing an index designator, i.e. [1]. */
 
11336
 
 
11337
#line 11338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11338
} // closed Puma
 
11339
class CCExprResolve;
 
11340
class CExprResolve;
 
11341
class WinIfExists;
 
11342
class WinImportHandler;
 
11343
class WinMacros;
 
11344
class WinAsm;
 
11345
class WinDeclSpecs;
 
11346
class WinMemberExplSpec;
 
11347
class WinTypeKeywords;
 
11348
class WinFriend;
 
11349
class ExtAC;
 
11350
class ExtACBuilderCoupling;
 
11351
class ExtACSyntaxCoupling;
 
11352
class ExtACTree;
 
11353
class ExtACKeywords;
 
11354
class ExtGnu;
 
11355
class PragmaOnceUnitState;
 
11356
class PragmaOnce;
 
11357
class CMatchSyntax;
 
11358
namespace Puma {
 
11359
 
 
11360
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11361
 
 
11362
#line 11363 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11363
} // closed Puma
 
11364
 
 
11365
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11366
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11367
#include "CCExprResolveH.ah"
 
11368
#endif
 
11369
namespace Puma {
 
11370
 
 
11371
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11372
 
 
11373
#line 11374 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11374
} // closed Puma
 
11375
 
 
11376
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11377
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11378
#include "CExprResolveH.ah"
 
11379
#endif
 
11380
namespace Puma {
 
11381
 
 
11382
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11383
class CT_IndexDesignator : public CT_Expression {
 
11384
#line 11385 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11385
  friend class ::CCExprResolve;
 
11386
  friend class ::CExprResolve;
 
11387
  friend class ::WinIfExists;
 
11388
  friend class ::WinImportHandler;
 
11389
  friend class ::WinMacros;
 
11390
  friend class ::WinAsm;
 
11391
  friend class ::WinDeclSpecs;
 
11392
  friend class ::WinMemberExplSpec;
 
11393
  friend class ::WinTypeKeywords;
 
11394
  friend class ::WinFriend;
 
11395
  friend class ::ExtAC;
 
11396
  friend class ::ExtACBuilderCoupling;
 
11397
  friend class ::ExtACSyntaxCoupling;
 
11398
  friend class ::ExtACTree;
 
11399
  friend class ::ExtACKeywords;
 
11400
  friend class ::ExtGnu;
 
11401
  friend class ::PragmaOnceUnitState;
 
11402
  friend class ::PragmaOnce;
 
11403
  friend class ::CMatchSyntax;
 
11404
 
 
11405
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11406
 
 
11407
  CTree *sons[3]; // open, index, close
 
11408
 
 
11409
public:
 
11410
  /** Constructor.
 
11411
   *  \param o Left bracket of the index designator.
 
11412
   *  \param i The index expression.
 
11413
   *  \param c Right bracket of the index designator. */
 
11414
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
 
11415
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
 
11416
  }
 
11417
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
11418
  static const char *NodeId ();
 
11419
  /** Get the name of the node. Can be compared with NodeId(). */
 
11420
  const char *NodeName () const { return NodeId (); }
 
11421
  /** Get the number of sons. */
 
11422
  int Sons () const { return 3; }
 
11423
  /** Get the n-th son.
 
11424
   *  \param n The index of the son.
 
11425
   *  \return The n-th son or NULL. */
 
11426
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
11427
  /** Replace a son.
 
11428
   *  \param old_son The son to replace.
 
11429
   *  \param new_son The new son. */
 
11430
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
11431
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
11432
  }
 
11433
   private:
 
11434
  typedef CT_IndexDesignator CCExprResolveExpr;
 
11435
 
 
11436
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11437
 public :
 
11438
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
11439
  typedef CT_IndexDesignator CExprResolveExpr;
 
11440
 
 
11441
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11442
 public :
 
11443
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11444
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11445
};
 
11446
 
 
11447
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
11448
 *  Tree node representing a member designator, e.g. .a. */
 
11449
 
 
11450
#line 11451 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11451
} // closed Puma
 
11452
class CCExprResolve;
 
11453
class CExprResolve;
 
11454
class WinIfExists;
 
11455
class WinImportHandler;
 
11456
class WinMacros;
 
11457
class WinAsm;
 
11458
class WinDeclSpecs;
 
11459
class WinMemberExplSpec;
 
11460
class WinTypeKeywords;
 
11461
class WinFriend;
 
11462
class ExtAC;
 
11463
class ExtACBuilderCoupling;
 
11464
class ExtACSyntaxCoupling;
 
11465
class ExtACTree;
 
11466
class ExtACKeywords;
 
11467
class ExtGnu;
 
11468
class PragmaOnceUnitState;
 
11469
class PragmaOnce;
 
11470
class CMatchSyntax;
 
11471
namespace Puma {
 
11472
 
 
11473
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11474
 
 
11475
#line 11476 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11476
} // closed Puma
 
11477
 
 
11478
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11479
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11480
#include "CCExprResolveH.ah"
 
11481
#endif
 
11482
namespace Puma {
 
11483
 
 
11484
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11485
 
 
11486
#line 11487 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11487
} // closed Puma
 
11488
 
 
11489
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11490
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11491
#include "CExprResolveH.ah"
 
11492
#endif
 
11493
namespace Puma {
 
11494
 
 
11495
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11496
class CT_MembDesignator : public CT_Expression {
 
11497
#line 11498 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11498
  friend class ::CCExprResolve;
 
11499
  friend class ::CExprResolve;
 
11500
  friend class ::WinIfExists;
 
11501
  friend class ::WinImportHandler;
 
11502
  friend class ::WinMacros;
 
11503
  friend class ::WinAsm;
 
11504
  friend class ::WinDeclSpecs;
 
11505
  friend class ::WinMemberExplSpec;
 
11506
  friend class ::WinTypeKeywords;
 
11507
  friend class ::WinFriend;
 
11508
  friend class ::ExtAC;
 
11509
  friend class ::ExtACBuilderCoupling;
 
11510
  friend class ::ExtACSyntaxCoupling;
 
11511
  friend class ::ExtACTree;
 
11512
  friend class ::ExtACKeywords;
 
11513
  friend class ::ExtGnu;
 
11514
  friend class ::PragmaOnceUnitState;
 
11515
  friend class ::PragmaOnce;
 
11516
  friend class ::CMatchSyntax;
 
11517
 
 
11518
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11519
 
 
11520
  CTree *sons[2]; // dot, member
 
11521
 
 
11522
public:
 
11523
  /** Constructor.
 
11524
   *  \param d The dot before the member name.
 
11525
   *  \param m The member name. */
 
11526
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
11527
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
11528
  static const char *NodeId ();
 
11529
  /** Get the name of the node. Can be compared with NodeId(). */
 
11530
  const char *NodeName () const { return NodeId (); }
 
11531
  /** Get the number of sons. */
 
11532
  int Sons () const { return 2; }
 
11533
  /** Get the n-th son.
 
11534
   *  \param n The index of the son.
 
11535
   *  \return The n-th son or NULL. */
 
11536
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
11537
  /** Replace a son.
 
11538
   *  \param old_son The son to replace.
 
11539
   *  \param new_son The new son. */
 
11540
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
11541
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
11542
  }
 
11543
   private:
 
11544
  typedef CT_MembDesignator CCExprResolveExpr;
 
11545
 
 
11546
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11547
 public :
 
11548
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
11549
  typedef CT_MembDesignator CExprResolveExpr;
 
11550
 
 
11551
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11552
 public :
 
11553
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11554
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11555
};
 
11556
 
 
11557
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
11558
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
 
11559
 
 
11560
#line 11561 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11561
} // closed Puma
 
11562
class CCExprResolve;
 
11563
class CExprResolve;
 
11564
class WinIfExists;
 
11565
class WinImportHandler;
 
11566
class WinMacros;
 
11567
class WinAsm;
 
11568
class WinDeclSpecs;
 
11569
class WinMemberExplSpec;
 
11570
class WinTypeKeywords;
 
11571
class WinFriend;
 
11572
class ExtAC;
 
11573
class ExtACBuilderCoupling;
 
11574
class ExtACSyntaxCoupling;
 
11575
class ExtACTree;
 
11576
class ExtACKeywords;
 
11577
class ExtGnu;
 
11578
class PragmaOnceUnitState;
 
11579
class PragmaOnce;
 
11580
class CMatchSyntax;
 
11581
namespace Puma {
 
11582
 
 
11583
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11584
class CT_DesignatorSeq : public CT_List, public CSemValue {
 
11585
#line 11586 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11586
  friend class ::CCExprResolve;
 
11587
  friend class ::CExprResolve;
 
11588
  friend class ::WinIfExists;
 
11589
  friend class ::WinImportHandler;
 
11590
  friend class ::WinMacros;
 
11591
  friend class ::WinAsm;
 
11592
  friend class ::WinDeclSpecs;
 
11593
  friend class ::WinMemberExplSpec;
 
11594
  friend class ::WinTypeKeywords;
 
11595
  friend class ::WinFriend;
 
11596
  friend class ::ExtAC;
 
11597
  friend class ::ExtACBuilderCoupling;
 
11598
  friend class ::ExtACSyntaxCoupling;
 
11599
  friend class ::ExtACTree;
 
11600
  friend class ::ExtACKeywords;
 
11601
  friend class ::ExtGnu;
 
11602
  friend class ::PragmaOnceUnitState;
 
11603
  friend class ::PragmaOnce;
 
11604
  friend class ::CMatchSyntax;
 
11605
 
 
11606
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11607
 
 
11608
public:
 
11609
  /** Constructor.
 
11610
   *  \param size Initial number of designators. */
 
11611
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
11612
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
11613
  static const char *NodeId ();
 
11614
  /** Get the name of the node. Can be compared with NodeId(). */
 
11615
  const char *NodeName () const { return NodeId (); }
 
11616
 
 
11617
  /** Get the type of the entity to initialize. */
 
11618
  CTypeInfo *Type () const { return type; }
 
11619
  /** Get the value of the entity to initialize. */
 
11620
  CExprValue *Value () const { return value; }
 
11621
  /** Get the semantic value object. */
 
11622
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
11623
};
 
11624
 
 
11625
/*****************************************************************************/
 
11626
/*                                                                           */
 
11627
/*                         Declaration specifiers                            */
 
11628
/*                                                                           */
 
11629
/*****************************************************************************/
 
11630
 
 
11631
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
11632
 *  Base class for all tree nodes representing declaration specifiers. */
 
11633
 
 
11634
#line 11635 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11635
} // closed Puma
 
11636
class CCExprResolve;
 
11637
class CExprResolve;
 
11638
class WinIfExists;
 
11639
class WinImportHandler;
 
11640
class WinMacros;
 
11641
class WinAsm;
 
11642
class WinDeclSpecs;
 
11643
class WinMemberExplSpec;
 
11644
class WinTypeKeywords;
 
11645
class WinFriend;
 
11646
class ExtAC;
 
11647
class ExtACBuilderCoupling;
 
11648
class ExtACSyntaxCoupling;
 
11649
class ExtACTree;
 
11650
class ExtACKeywords;
 
11651
class ExtGnu;
 
11652
class PragmaOnceUnitState;
 
11653
class PragmaOnce;
 
11654
class CMatchSyntax;
 
11655
namespace Puma {
 
11656
 
 
11657
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11658
class CT_DeclSpec : public CTree {
 
11659
#line 11660 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11660
  friend class ::CCExprResolve;
 
11661
  friend class ::CExprResolve;
 
11662
  friend class ::WinIfExists;
 
11663
  friend class ::WinImportHandler;
 
11664
  friend class ::WinMacros;
 
11665
  friend class ::WinAsm;
 
11666
  friend class ::WinDeclSpecs;
 
11667
  friend class ::WinMemberExplSpec;
 
11668
  friend class ::WinTypeKeywords;
 
11669
  friend class ::WinFriend;
 
11670
  friend class ::ExtAC;
 
11671
  friend class ::ExtACBuilderCoupling;
 
11672
  friend class ::ExtACSyntaxCoupling;
 
11673
  friend class ::ExtACTree;
 
11674
  friend class ::ExtACKeywords;
 
11675
  friend class ::ExtGnu;
 
11676
  friend class ::PragmaOnceUnitState;
 
11677
  friend class ::PragmaOnce;
 
11678
  friend class ::CMatchSyntax;
 
11679
 
 
11680
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11681
 
 
11682
protected:
 
11683
  /** Constructor. */
 
11684
  CT_DeclSpec () {}
 
11685
};
 
11686
 
 
11687
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
11688
 *  Tree node representing a primitive declaration specifier. */
 
11689
 
 
11690
#line 11691 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11691
} // closed Puma
 
11692
class CCExprResolve;
 
11693
class CExprResolve;
 
11694
class WinIfExists;
 
11695
class WinImportHandler;
 
11696
class WinMacros;
 
11697
class WinAsm;
 
11698
class WinDeclSpecs;
 
11699
class WinMemberExplSpec;
 
11700
class WinTypeKeywords;
 
11701
class WinFriend;
 
11702
class ExtAC;
 
11703
class ExtACBuilderCoupling;
 
11704
class ExtACSyntaxCoupling;
 
11705
class ExtACTree;
 
11706
class ExtACKeywords;
 
11707
class ExtGnu;
 
11708
class PragmaOnceUnitState;
 
11709
class PragmaOnce;
 
11710
class CMatchSyntax;
 
11711
namespace Puma {
 
11712
 
 
11713
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11714
class CT_PrimDeclSpec : public CT_DeclSpec {
 
11715
#line 11716 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11716
  friend class ::CCExprResolve;
 
11717
  friend class ::CExprResolve;
 
11718
  friend class ::WinIfExists;
 
11719
  friend class ::WinImportHandler;
 
11720
  friend class ::WinMacros;
 
11721
  friend class ::WinAsm;
 
11722
  friend class ::WinDeclSpecs;
 
11723
  friend class ::WinMemberExplSpec;
 
11724
  friend class ::WinTypeKeywords;
 
11725
  friend class ::WinFriend;
 
11726
  friend class ::ExtAC;
 
11727
  friend class ::ExtACBuilderCoupling;
 
11728
  friend class ::ExtACSyntaxCoupling;
 
11729
  friend class ::ExtACTree;
 
11730
  friend class ::ExtACKeywords;
 
11731
  friend class ::ExtGnu;
 
11732
  friend class ::PragmaOnceUnitState;
 
11733
  friend class ::PragmaOnce;
 
11734
  friend class ::CMatchSyntax;
 
11735
 
 
11736
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11737
 
 
11738
public:
 
11739
  /** Declaration specifier types. */
 
11740
  enum Type { 
 
11741
    PDS_FRIEND,    /** friend */
 
11742
    PDS_TYPEDEF,   /** typedef */
 
11743
    PDS_AUTO,      /** auto */
 
11744
    PDS_REGISTER,  /** register */
 
11745
    PDS_STATIC,    /** static */
 
11746
    PDS_EXTERN,    /** extern */
 
11747
    PDS_MUTABLE,   /** mutable */
 
11748
    PDS_INLINE,    /** inline */
 
11749
    PDS_VIRTUAL,   /** virtual */
 
11750
    PDS_EXPLICIT,  /** explicit */
 
11751
    PDS_CONST,     /** const */
 
11752
    PDS_VOLATILE,  /** volatile */
 
11753
    PDS_RESTRICT,  /** restrict */
 
11754
    PDS_CHAR,      /** char */
 
11755
    PDS_WCHAR_T,   /** wchar_t */
 
11756
    PDS_BOOL,      /** bool */
 
11757
    PDS_SHORT,     /** short */
 
11758
    PDS_INT,       /** int */
 
11759
    PDS_LONG,      /** long */
 
11760
    PDS_SIGNED,    /** signed */
 
11761
    PDS_UNSIGNED,  /** unsigned */
 
11762
    PDS_FLOAT,     /** float */
 
11763
    PDS_DOUBLE,    /** double */
 
11764
    PDS_VOID,      /** void */
 
11765
    // AspectC++ specific type specifier
 
11766
    PDS_UNKNOWN_T, /** unknown_t */
 
11767
    // Win specific declaration specifiers
 
11768
    PDS_CDECL,     /** __cdecl */
 
11769
    PDS_STDCALL,   /** __stdcall */
 
11770
    PDS_FASTCALL,  /** __fastcall */
 
11771
    PDS_INT64,     /** __int64 */
 
11772
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
11773
    PDS_NUM        /** Number of declaration specifier types. */
 
11774
  };
 
11775
 
 
11776
private:
 
11777
  Type _type;
 
11778
  CTree *_token; // has to be a CT_Token
 
11779
 
 
11780
  void determine_type ();
 
11781
 
 
11782
public:
 
11783
  /** Constructor.
 
11784
   *  \param t The token containing the declaration specifier. */
 
11785
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
11786
  /** Constructor.
 
11787
   *  \param t The declaration specifier type. */
 
11788
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
11789
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
11790
  static const char *NodeId ();
 
11791
  /** Get the name of the node. Can be compared with NodeId(). */
 
11792
  const char *NodeName () const { return NodeId (); }
 
11793
  /** Get the number of sons. */
 
11794
  int Sons () const { return _token ? 1 : 0; }
 
11795
  /** Get the n-th son.
 
11796
   *  \param n The index of the son.
 
11797
   *  \return The n-th son or NULL. */
 
11798
  CTree *Son (int n) const 
 
11799
   { return (n == 0) ? _token : (CTree*)0; }
 
11800
  /** Get the textual representation of the declaration specifier.
 
11801
   *  \return The string representation or " ". */
 
11802
  const char *SpecText () const 
 
11803
   { return _token ? _token->token ()->text () : " "; }
 
11804
  /** Get the declaration specifier type. */
 
11805
  Type SpecType () const { return _type; }
 
11806
  /** Number of declaration specifier types. */
 
11807
  static const int NumTypes = PDS_NUM;
 
11808
  /** Replace a son.
 
11809
   *  \param old_son The son to replace.
 
11810
   *  \param new_son The new son. */
 
11811
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
11812
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
11813
    determine_type ();
 
11814
  }
 
11815
};
 
11816
 
 
11817
/** \class CT_NamedType CTree.h Puma/CTree.h
 
11818
 *  Tree node representing a named type, e.g. (int*)a. 
 
11819
 *  where int* is a type with a generated name. */
 
11820
 
 
11821
#line 11822 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11822
} // closed Puma
 
11823
class CCExprResolve;
 
11824
class CExprResolve;
 
11825
class WinIfExists;
 
11826
class WinImportHandler;
 
11827
class WinMacros;
 
11828
class WinAsm;
 
11829
class WinDeclSpecs;
 
11830
class WinMemberExplSpec;
 
11831
class WinTypeKeywords;
 
11832
class WinFriend;
 
11833
class ExtAC;
 
11834
class ExtACBuilderCoupling;
 
11835
class ExtACSyntaxCoupling;
 
11836
class ExtACTree;
 
11837
class ExtACKeywords;
 
11838
class ExtGnu;
 
11839
class PragmaOnceUnitState;
 
11840
class PragmaOnce;
 
11841
class CMatchSyntax;
 
11842
namespace Puma {
 
11843
 
 
11844
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11845
class CT_NamedType : public CT_DeclSpec, public CSemObject {
 
11846
#line 11847 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11847
  friend class ::CCExprResolve;
 
11848
  friend class ::CExprResolve;
 
11849
  friend class ::WinIfExists;
 
11850
  friend class ::WinImportHandler;
 
11851
  friend class ::WinMacros;
 
11852
  friend class ::WinAsm;
 
11853
  friend class ::WinDeclSpecs;
 
11854
  friend class ::WinMemberExplSpec;
 
11855
  friend class ::WinTypeKeywords;
 
11856
  friend class ::WinFriend;
 
11857
  friend class ::ExtAC;
 
11858
  friend class ::ExtACBuilderCoupling;
 
11859
  friend class ::ExtACSyntaxCoupling;
 
11860
  friend class ::ExtACTree;
 
11861
  friend class ::ExtACKeywords;
 
11862
  friend class ::ExtGnu;
 
11863
  friend class ::PragmaOnceUnitState;
 
11864
  friend class ::PragmaOnce;
 
11865
  friend class ::CMatchSyntax;
 
11866
 
 
11867
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11868
 
 
11869
  CTree *sons[2]; // declspecs, declarator
 
11870
 
 
11871
public:
 
11872
  /** Constructor.
 
11873
   *  \param dss The declaration specifier sequence of the type.
 
11874
   *  \param d The type declarator. */
 
11875
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
11876
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
11877
  static const char *NodeId ();
 
11878
  /** Get the name of the node. Can be compared with NodeId(). */
 
11879
  const char *NodeName () const { return NodeId (); }
 
11880
  /** Get the number of sons. */
 
11881
  int Sons () const { return CTree::Sons (sons, 2); }
 
11882
  /** Get the n-th son.
 
11883
   *  \param n The index of the son.
 
11884
   *  \return The n-th son or NULL. */
 
11885
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
11886
  /** Get the declarator. */
 
11887
  CTree *Declarator () const { return sons[1]; }
 
11888
  /** Replace a son.
 
11889
   *  \param old_son The son to replace.
 
11890
   *  \param new_son The new son. */
 
11891
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
11892
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
11893
  }
 
11894
  /** Get the semantic information object. */
 
11895
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
11896
};
 
11897
      
 
11898
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
11899
 *  Tree node representing a class specifier, e.g. class X. */
 
11900
 
 
11901
#line 11902 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11902
} // closed Puma
 
11903
class CCExprResolve;
 
11904
class CExprResolve;
 
11905
class WinIfExists;
 
11906
class WinImportHandler;
 
11907
class WinMacros;
 
11908
class WinAsm;
 
11909
class WinDeclSpecs;
 
11910
class WinMemberExplSpec;
 
11911
class WinTypeKeywords;
 
11912
class WinFriend;
 
11913
class ExtAC;
 
11914
class ExtACBuilderCoupling;
 
11915
class ExtACSyntaxCoupling;
 
11916
class ExtACTree;
 
11917
class ExtACKeywords;
 
11918
class ExtGnu;
 
11919
class PragmaOnceUnitState;
 
11920
class PragmaOnce;
 
11921
class CMatchSyntax;
 
11922
namespace Puma {
 
11923
 
 
11924
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11925
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
 
11926
#line 11927 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11927
  friend class ::CCExprResolve;
 
11928
  friend class ::CExprResolve;
 
11929
  friend class ::WinIfExists;
 
11930
  friend class ::WinImportHandler;
 
11931
  friend class ::WinMacros;
 
11932
  friend class ::WinAsm;
 
11933
  friend class ::WinDeclSpecs;
 
11934
  friend class ::WinMemberExplSpec;
 
11935
  friend class ::WinTypeKeywords;
 
11936
  friend class ::WinFriend;
 
11937
  friend class ::ExtAC;
 
11938
  friend class ::ExtACBuilderCoupling;
 
11939
  friend class ::ExtACSyntaxCoupling;
 
11940
  friend class ::ExtACTree;
 
11941
  friend class ::ExtACKeywords;
 
11942
  friend class ::ExtGnu;
 
11943
  friend class ::PragmaOnceUnitState;
 
11944
  friend class ::PragmaOnce;
 
11945
  friend class ::CMatchSyntax;
 
11946
 
 
11947
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11948
 
 
11949
  CTree *sons[2]; // key, name
 
11950
  
 
11951
public:
 
11952
  /** Constructor.
 
11953
   *  \param k The 'class' or 'struct' keyword.
 
11954
   *  \param n The class name. */
 
11955
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
11956
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
11957
  static const char *NodeId ();
 
11958
  /** Get the name of the node. Can be compared with NodeId(). */
 
11959
  const char *NodeName () const { return NodeId (); }
 
11960
  /** Get the number of sons. */
 
11961
  int Sons () const { return 2; }
 
11962
  /** Get the n-th son.
 
11963
   *  \param n The index of the son.
 
11964
   *  \return The n-th son or NULL. */
 
11965
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
11966
  /** Get the class name. */
 
11967
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
11968
  /** Get the semantic information object. */
 
11969
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
11970
  /** Replace a son.
 
11971
   *  \param old_son The son to replace.
 
11972
   *  \param new_son The new son. */
 
11973
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
11974
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
11975
  }
 
11976
};
 
11977
 
 
11978
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
11979
 *  Tree node representing a union specifier, e.g. union X. */
 
11980
 
 
11981
#line 11982 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
11982
} // closed Puma
 
11983
class CCExprResolve;
 
11984
class CExprResolve;
 
11985
class WinIfExists;
 
11986
class WinImportHandler;
 
11987
class WinMacros;
 
11988
class WinAsm;
 
11989
class WinDeclSpecs;
 
11990
class WinMemberExplSpec;
 
11991
class WinTypeKeywords;
 
11992
class WinFriend;
 
11993
class ExtAC;
 
11994
class ExtACBuilderCoupling;
 
11995
class ExtACSyntaxCoupling;
 
11996
class ExtACTree;
 
11997
class ExtACKeywords;
 
11998
class ExtGnu;
 
11999
class PragmaOnceUnitState;
 
12000
class PragmaOnce;
 
12001
class CMatchSyntax;
 
12002
namespace Puma {
 
12003
 
 
12004
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12005
class CT_UnionSpec : public CT_ClassSpec {
 
12006
#line 12007 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12007
  friend class ::CCExprResolve;
 
12008
  friend class ::CExprResolve;
 
12009
  friend class ::WinIfExists;
 
12010
  friend class ::WinImportHandler;
 
12011
  friend class ::WinMacros;
 
12012
  friend class ::WinAsm;
 
12013
  friend class ::WinDeclSpecs;
 
12014
  friend class ::WinMemberExplSpec;
 
12015
  friend class ::WinTypeKeywords;
 
12016
  friend class ::WinFriend;
 
12017
  friend class ::ExtAC;
 
12018
  friend class ::ExtACBuilderCoupling;
 
12019
  friend class ::ExtACSyntaxCoupling;
 
12020
  friend class ::ExtACTree;
 
12021
  friend class ::ExtACKeywords;
 
12022
  friend class ::ExtGnu;
 
12023
  friend class ::PragmaOnceUnitState;
 
12024
  friend class ::PragmaOnce;
 
12025
  friend class ::CMatchSyntax;
 
12026
 
 
12027
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12028
 
 
12029
public:
 
12030
  /** Constructor.
 
12031
   *  \param k The 'union' keyword.
 
12032
   *  \param n The name of the union. */
 
12033
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
12034
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12035
  static const char *NodeId ();
 
12036
  /** Get the name of the node. Can be compared with NodeId(). */
 
12037
  const char *NodeName () const { return NodeId (); }
 
12038
};
 
12039
 
 
12040
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
12041
 *  Tree node representing an enumeration specifier, e.g. enum X. */
 
12042
 
 
12043
#line 12044 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12044
} // closed Puma
 
12045
class CCExprResolve;
 
12046
class CExprResolve;
 
12047
class WinIfExists;
 
12048
class WinImportHandler;
 
12049
class WinMacros;
 
12050
class WinAsm;
 
12051
class WinDeclSpecs;
 
12052
class WinMemberExplSpec;
 
12053
class WinTypeKeywords;
 
12054
class WinFriend;
 
12055
class ExtAC;
 
12056
class ExtACBuilderCoupling;
 
12057
class ExtACSyntaxCoupling;
 
12058
class ExtACTree;
 
12059
class ExtACKeywords;
 
12060
class ExtGnu;
 
12061
class PragmaOnceUnitState;
 
12062
class PragmaOnce;
 
12063
class CMatchSyntax;
 
12064
namespace Puma {
 
12065
 
 
12066
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12067
class CT_EnumSpec : public CT_ClassSpec {
 
12068
#line 12069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12069
  friend class ::CCExprResolve;
 
12070
  friend class ::CExprResolve;
 
12071
  friend class ::WinIfExists;
 
12072
  friend class ::WinImportHandler;
 
12073
  friend class ::WinMacros;
 
12074
  friend class ::WinAsm;
 
12075
  friend class ::WinDeclSpecs;
 
12076
  friend class ::WinMemberExplSpec;
 
12077
  friend class ::WinTypeKeywords;
 
12078
  friend class ::WinFriend;
 
12079
  friend class ::ExtAC;
 
12080
  friend class ::ExtACBuilderCoupling;
 
12081
  friend class ::ExtACSyntaxCoupling;
 
12082
  friend class ::ExtACTree;
 
12083
  friend class ::ExtACKeywords;
 
12084
  friend class ::ExtGnu;
 
12085
  friend class ::PragmaOnceUnitState;
 
12086
  friend class ::PragmaOnce;
 
12087
  friend class ::CMatchSyntax;
 
12088
 
 
12089
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12090
 
 
12091
public:
 
12092
  /** Constructor.
 
12093
   *  \param k The 'enum' keyword. 
 
12094
   *  \param n The name of the enumeration. */
 
12095
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
12096
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12097
  static const char *NodeId ();
 
12098
  /** Get the name of the node. Can be compared with NodeId(). */
 
12099
  const char *NodeName () const { return NodeId (); }
 
12100
};
 
12101
 
 
12102
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
12103
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
 
12104
 
 
12105
#line 12106 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12106
} // closed Puma
 
12107
class CCExprResolve;
 
12108
class CExprResolve;
 
12109
class WinIfExists;
 
12110
class WinImportHandler;
 
12111
class WinMacros;
 
12112
class WinAsm;
 
12113
class WinDeclSpecs;
 
12114
class WinMemberExplSpec;
 
12115
class WinTypeKeywords;
 
12116
class WinFriend;
 
12117
class ExtAC;
 
12118
class ExtACBuilderCoupling;
 
12119
class ExtACSyntaxCoupling;
 
12120
class ExtACTree;
 
12121
class ExtACKeywords;
 
12122
class ExtGnu;
 
12123
class PragmaOnceUnitState;
 
12124
class PragmaOnce;
 
12125
class CMatchSyntax;
 
12126
namespace Puma {
 
12127
 
 
12128
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12129
class CT_ExceptionSpec : public CT_DeclSpec {
 
12130
#line 12131 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12131
  friend class ::CCExprResolve;
 
12132
  friend class ::CExprResolve;
 
12133
  friend class ::WinIfExists;
 
12134
  friend class ::WinImportHandler;
 
12135
  friend class ::WinMacros;
 
12136
  friend class ::WinAsm;
 
12137
  friend class ::WinDeclSpecs;
 
12138
  friend class ::WinMemberExplSpec;
 
12139
  friend class ::WinTypeKeywords;
 
12140
  friend class ::WinFriend;
 
12141
  friend class ::ExtAC;
 
12142
  friend class ::ExtACBuilderCoupling;
 
12143
  friend class ::ExtACSyntaxCoupling;
 
12144
  friend class ::ExtACTree;
 
12145
  friend class ::ExtACKeywords;
 
12146
  friend class ::ExtGnu;
 
12147
  friend class ::PragmaOnceUnitState;
 
12148
  friend class ::PragmaOnce;
 
12149
  friend class ::CMatchSyntax;
 
12150
 
 
12151
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12152
 
 
12153
  CTree *sons[2]; // throw, type_id_list
 
12154
  
 
12155
public:
 
12156
  /** Constructor.
 
12157
   *  \param k The 'throw' keyword.
 
12158
   *  \param l The type list for the exception type to throw. */
 
12159
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
12160
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12161
  static const char *NodeId ();
 
12162
  /** Get the name of the node. Can be compared with NodeId(). */
 
12163
  const char *NodeName () const { return NodeId (); }
 
12164
  /** Get the number of sons. */
 
12165
  int Sons () const { return 2; }
 
12166
  /** Get the n-th son.
 
12167
   *  \param n The index of the son.
 
12168
   *  \return The n-th son or NULL. */
 
12169
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
12170
  /** Get the exception type list. */
 
12171
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
12172
  /** Replace a son.
 
12173
   *  \param old_son The son to replace.
 
12174
   *  \param new_son The new son. */
 
12175
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
12176
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
12177
  }
 
12178
};
 
12179
 
 
12180
/*****************************************************************************/
 
12181
/*                                                                           */
 
12182
/*                              Declarations                                 */
 
12183
/*                                                                           */
 
12184
/*****************************************************************************/
 
12185
 
 
12186
/** \class CT_Decl CTree.h Puma/CTree.h
 
12187
 *  Base class for all tree nodes representing declarations. */
 
12188
 
 
12189
#line 12190 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12190
} // closed Puma
 
12191
class CCExprResolve;
 
12192
class CExprResolve;
 
12193
class WinIfExists;
 
12194
class WinImportHandler;
 
12195
class WinMacros;
 
12196
class WinAsm;
 
12197
class WinDeclSpecs;
 
12198
class WinMemberExplSpec;
 
12199
class WinTypeKeywords;
 
12200
class WinFriend;
 
12201
class ExtAC;
 
12202
class ExtACBuilderCoupling;
 
12203
class ExtACSyntaxCoupling;
 
12204
class ExtACTree;
 
12205
class ExtACKeywords;
 
12206
class ExtGnu;
 
12207
class PragmaOnceUnitState;
 
12208
class PragmaOnce;
 
12209
class CMatchSyntax;
 
12210
namespace Puma {
 
12211
 
 
12212
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12213
class CT_Decl : public CTree {
 
12214
#line 12215 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12215
  friend class ::CCExprResolve;
 
12216
  friend class ::CExprResolve;
 
12217
  friend class ::WinIfExists;
 
12218
  friend class ::WinImportHandler;
 
12219
  friend class ::WinMacros;
 
12220
  friend class ::WinAsm;
 
12221
  friend class ::WinDeclSpecs;
 
12222
  friend class ::WinMemberExplSpec;
 
12223
  friend class ::WinTypeKeywords;
 
12224
  friend class ::WinFriend;
 
12225
  friend class ::ExtAC;
 
12226
  friend class ::ExtACBuilderCoupling;
 
12227
  friend class ::ExtACSyntaxCoupling;
 
12228
  friend class ::ExtACTree;
 
12229
  friend class ::ExtACKeywords;
 
12230
  friend class ::ExtGnu;
 
12231
  friend class ::PragmaOnceUnitState;
 
12232
  friend class ::PragmaOnce;
 
12233
  friend class ::CMatchSyntax;
 
12234
 
 
12235
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12236
 
 
12237
  CT_LinkageSpec *_linkage;
 
12238
  
 
12239
protected:
 
12240
  /** Constructor. */
 
12241
  CT_Decl () : _linkage (0) {}
 
12242
  
 
12243
public:
 
12244
  /** Set the linkage of the declared entity.
 
12245
   *  \param l The linkage specifiers. */
 
12246
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
12247
  /** Get the linkage specifiers. */
 
12248
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
12249
  /** Get this. */
 
12250
  virtual CT_Decl *IsDeclaration () { return this; }
 
12251
};
 
12252
 
 
12253
/** \class CT_Program CTree.h Puma/CTree.h
 
12254
 *  Root node of C/C++ syntax tree. */
 
12255
 
 
12256
#line 12257 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12257
} // closed Puma
 
12258
class CCExprResolve;
 
12259
class CExprResolve;
 
12260
class WinIfExists;
 
12261
class WinImportHandler;
 
12262
class WinMacros;
 
12263
class WinAsm;
 
12264
class WinDeclSpecs;
 
12265
class WinMemberExplSpec;
 
12266
class WinTypeKeywords;
 
12267
class WinFriend;
 
12268
class ExtAC;
 
12269
class ExtACBuilderCoupling;
 
12270
class ExtACSyntaxCoupling;
 
12271
class ExtACTree;
 
12272
class ExtACKeywords;
 
12273
class ExtGnu;
 
12274
class PragmaOnceUnitState;
 
12275
class PragmaOnce;
 
12276
class CMatchSyntax;
 
12277
namespace Puma {
 
12278
 
 
12279
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12280
class CT_Program : public CT_DeclList, public CSemScope {
 
12281
#line 12282 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12282
  friend class ::CCExprResolve;
 
12283
  friend class ::CExprResolve;
 
12284
  friend class ::WinIfExists;
 
12285
  friend class ::WinImportHandler;
 
12286
  friend class ::WinMacros;
 
12287
  friend class ::WinAsm;
 
12288
  friend class ::WinDeclSpecs;
 
12289
  friend class ::WinMemberExplSpec;
 
12290
  friend class ::WinTypeKeywords;
 
12291
  friend class ::WinFriend;
 
12292
  friend class ::ExtAC;
 
12293
  friend class ::ExtACBuilderCoupling;
 
12294
  friend class ::ExtACSyntaxCoupling;
 
12295
  friend class ::ExtACTree;
 
12296
  friend class ::ExtACKeywords;
 
12297
  friend class ::ExtGnu;
 
12298
  friend class ::PragmaOnceUnitState;
 
12299
  friend class ::PragmaOnce;
 
12300
  friend class ::CMatchSyntax;
 
12301
 
 
12302
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12303
 
 
12304
public:
 
12305
  /** Constructor.
 
12306
   *  \param size The initial number of declarations in the program.
 
12307
   *  \param incr The initial increment count. */
 
12308
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
12309
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12310
  static const char *NodeId ();
 
12311
  /** Get the name of the node. Can be compared with NodeId(). */
 
12312
  const char *NodeName () const { return NodeId (); }
 
12313
  /** Get the semantic scope object. */
 
12314
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
12315
};
 
12316
   
 
12317
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
12318
 *  Tree node representing an object declaration, e.g. int *i. */
 
12319
 
 
12320
#line 12321 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12321
} // closed Puma
 
12322
class CCExprResolve;
 
12323
class CExprResolve;
 
12324
class WinIfExists;
 
12325
class WinImportHandler;
 
12326
class WinMacros;
 
12327
class WinAsm;
 
12328
class WinDeclSpecs;
 
12329
class WinMemberExplSpec;
 
12330
class WinTypeKeywords;
 
12331
class WinFriend;
 
12332
class ExtAC;
 
12333
class ExtACBuilderCoupling;
 
12334
class ExtACSyntaxCoupling;
 
12335
class ExtACTree;
 
12336
class ExtACKeywords;
 
12337
class ExtGnu;
 
12338
class PragmaOnceUnitState;
 
12339
class PragmaOnce;
 
12340
class CMatchSyntax;
 
12341
namespace Puma {
 
12342
 
 
12343
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12344
class CT_ObjDecl : public CT_Decl {
 
12345
#line 12346 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12346
  friend class ::CCExprResolve;
 
12347
  friend class ::CExprResolve;
 
12348
  friend class ::WinIfExists;
 
12349
  friend class ::WinImportHandler;
 
12350
  friend class ::WinMacros;
 
12351
  friend class ::WinAsm;
 
12352
  friend class ::WinDeclSpecs;
 
12353
  friend class ::WinMemberExplSpec;
 
12354
  friend class ::WinTypeKeywords;
 
12355
  friend class ::WinFriend;
 
12356
  friend class ::ExtAC;
 
12357
  friend class ::ExtACBuilderCoupling;
 
12358
  friend class ::ExtACSyntaxCoupling;
 
12359
  friend class ::ExtACTree;
 
12360
  friend class ::ExtACKeywords;
 
12361
  friend class ::ExtGnu;
 
12362
  friend class ::PragmaOnceUnitState;
 
12363
  friend class ::PragmaOnce;
 
12364
  friend class ::CMatchSyntax;
 
12365
 
 
12366
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12367
 
 
12368
  CTree *sons[3]; // declspecs, declarators, colon
 
12369
 
 
12370
public:
 
12371
  /** Constructor.
 
12372
   *  \param dsl The declaration specifier sequence.
 
12373
   *  \param dl The declarator list.
 
12374
   *  \param c Optional colon. */
 
12375
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
 
12376
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
 
12377
  }
 
12378
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12379
  static const char *NodeId ();
 
12380
  /** Get the name of the node. Can be compared with NodeId(). */
 
12381
  const char *NodeName () const { return NodeId (); }
 
12382
  /** Get the number of sons. */
 
12383
  int Sons () const { return 3; }
 
12384
  /** Get the n-th son.
 
12385
   *  \param n The index of the son.
 
12386
   *  \return The n-th son or NULL. */
 
12387
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
12388
  /** Get the declaration specifier sequence. */
 
12389
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
12390
  /** Get the declarator list. */
 
12391
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
12392
  /** Replace a son.
 
12393
   *  \param old_son The son to replace.
 
12394
   *  \param new_son The new son. */
 
12395
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
12396
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
12397
  }
 
12398
};
 
12399
 
 
12400
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
12401
 *  Tree node representing a template declaration. */
 
12402
 
 
12403
#line 12404 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12404
} // closed Puma
 
12405
class CCExprResolve;
 
12406
class CExprResolve;
 
12407
class WinIfExists;
 
12408
class WinImportHandler;
 
12409
class WinMacros;
 
12410
class WinAsm;
 
12411
class WinDeclSpecs;
 
12412
class WinMemberExplSpec;
 
12413
class WinTypeKeywords;
 
12414
class WinFriend;
 
12415
class ExtAC;
 
12416
class ExtACBuilderCoupling;
 
12417
class ExtACSyntaxCoupling;
 
12418
class ExtACTree;
 
12419
class ExtACKeywords;
 
12420
class ExtGnu;
 
12421
class PragmaOnceUnitState;
 
12422
class PragmaOnce;
 
12423
class CMatchSyntax;
 
12424
namespace Puma {
 
12425
 
 
12426
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12427
class CT_TemplateDecl : public CT_Decl, public CSemScope {
 
12428
#line 12429 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12429
  friend class ::CCExprResolve;
 
12430
  friend class ::CExprResolve;
 
12431
  friend class ::WinIfExists;
 
12432
  friend class ::WinImportHandler;
 
12433
  friend class ::WinMacros;
 
12434
  friend class ::WinAsm;
 
12435
  friend class ::WinDeclSpecs;
 
12436
  friend class ::WinMemberExplSpec;
 
12437
  friend class ::WinTypeKeywords;
 
12438
  friend class ::WinFriend;
 
12439
  friend class ::ExtAC;
 
12440
  friend class ::ExtACBuilderCoupling;
 
12441
  friend class ::ExtACSyntaxCoupling;
 
12442
  friend class ::ExtACTree;
 
12443
  friend class ::ExtACKeywords;
 
12444
  friend class ::ExtGnu;
 
12445
  friend class ::PragmaOnceUnitState;
 
12446
  friend class ::PragmaOnce;
 
12447
  friend class ::CMatchSyntax;
 
12448
 
 
12449
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12450
 
 
12451
  CTree *sons[3]; // export, param_list, decl
 
12452
 
 
12453
public:
 
12454
  /** Constructor.
 
12455
   *  \param e Optional 'export' keyword. 
 
12456
   *  \param p The template parameter list.
 
12457
   *  \param d The class or function declaration. */
 
12458
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
 
12459
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
 
12460
  }
 
12461
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12462
  static const char *NodeId ();
 
12463
  /** Get the name of the node. Can be compared with NodeId(). */
 
12464
  const char *NodeName () const { return NodeId (); }
 
12465
  /** Get the number of sons. */
 
12466
  int Sons () const { return CTree::Sons (sons, 3); }
 
12467
  /** Get the n-th son.
 
12468
   *  \param n The index of the son.
 
12469
   *  \return The n-th son or NULL. */
 
12470
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
12471
  /** Replace a son.
 
12472
   *  \param old_son The son to replace.
 
12473
   *  \param new_son The new son. */
 
12474
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
12475
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
 
12476
  }
 
12477
  /** Get the 'export' keyword. */
 
12478
  CTree *Export () const { return sons[0]; }
 
12479
  /** Get the template parameter list. */
 
12480
  CT_TemplateParamList *Parameters () const { 
 
12481
    return (CT_TemplateParamList*)sons[1]; 
 
12482
  }
 
12483
  /** Get the class or function declaration. */
 
12484
  CTree *Declaration () const { return sons[2]; }
 
12485
  /** Get the semantic scope object. */
 
12486
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
12487
};
 
12488
 
 
12489
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
12490
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
 
12491
 
 
12492
#line 12493 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12493
} // closed Puma
 
12494
class CCExprResolve;
 
12495
class CExprResolve;
 
12496
class WinIfExists;
 
12497
class WinImportHandler;
 
12498
class WinMacros;
 
12499
class WinAsm;
 
12500
class WinDeclSpecs;
 
12501
class WinMemberExplSpec;
 
12502
class WinTypeKeywords;
 
12503
class WinFriend;
 
12504
class ExtAC;
 
12505
class ExtACBuilderCoupling;
 
12506
class ExtACSyntaxCoupling;
 
12507
class ExtACTree;
 
12508
class ExtACKeywords;
 
12509
class ExtGnu;
 
12510
class PragmaOnceUnitState;
 
12511
class PragmaOnce;
 
12512
class CMatchSyntax;
 
12513
namespace Puma {
 
12514
 
 
12515
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12516
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
 
12517
#line 12518 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12518
  friend class ::CCExprResolve;
 
12519
  friend class ::CExprResolve;
 
12520
  friend class ::WinIfExists;
 
12521
  friend class ::WinImportHandler;
 
12522
  friend class ::WinMacros;
 
12523
  friend class ::WinAsm;
 
12524
  friend class ::WinDeclSpecs;
 
12525
  friend class ::WinMemberExplSpec;
 
12526
  friend class ::WinTypeKeywords;
 
12527
  friend class ::WinFriend;
 
12528
  friend class ::ExtAC;
 
12529
  friend class ::ExtACBuilderCoupling;
 
12530
  friend class ::ExtACSyntaxCoupling;
 
12531
  friend class ::ExtACTree;
 
12532
  friend class ::ExtACKeywords;
 
12533
  friend class ::ExtGnu;
 
12534
  friend class ::PragmaOnceUnitState;
 
12535
  friend class ::PragmaOnce;
 
12536
  friend class ::CMatchSyntax;
 
12537
 
 
12538
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12539
 
 
12540
protected:
 
12541
  /** Constructor. */
 
12542
  CT_TemplateParamDecl () {}
 
12543
  
 
12544
public:
 
12545
  /** Get the template default argument. */
 
12546
  virtual CT_ExprList *DefaultArgument () const = 0;
 
12547
  /** Get the semantic information object. */
 
12548
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
12549
};
 
12550
 
 
12551
 
 
12552
#line 12553 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12553
} // closed Puma
 
12554
class CCExprResolve;
 
12555
class CExprResolve;
 
12556
class WinIfExists;
 
12557
class WinImportHandler;
 
12558
class WinMacros;
 
12559
class WinAsm;
 
12560
class WinDeclSpecs;
 
12561
class WinMemberExplSpec;
 
12562
class WinTypeKeywords;
 
12563
class WinFriend;
 
12564
class ExtAC;
 
12565
class ExtACBuilderCoupling;
 
12566
class ExtACSyntaxCoupling;
 
12567
class ExtACTree;
 
12568
class ExtACKeywords;
 
12569
class ExtGnu;
 
12570
class PragmaOnceUnitState;
 
12571
class PragmaOnce;
 
12572
class CMatchSyntax;
 
12573
namespace Puma {
 
12574
 
 
12575
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12576
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
 
12577
#line 12578 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12578
  friend class ::CCExprResolve;
 
12579
  friend class ::CExprResolve;
 
12580
  friend class ::WinIfExists;
 
12581
  friend class ::WinImportHandler;
 
12582
  friend class ::WinMacros;
 
12583
  friend class ::WinAsm;
 
12584
  friend class ::WinDeclSpecs;
 
12585
  friend class ::WinMemberExplSpec;
 
12586
  friend class ::WinTypeKeywords;
 
12587
  friend class ::WinFriend;
 
12588
  friend class ::ExtAC;
 
12589
  friend class ::ExtACBuilderCoupling;
 
12590
  friend class ::ExtACSyntaxCoupling;
 
12591
  friend class ::ExtACTree;
 
12592
  friend class ::ExtACKeywords;
 
12593
  friend class ::ExtGnu;
 
12594
  friend class ::PragmaOnceUnitState;
 
12595
  friend class ::PragmaOnce;
 
12596
  friend class ::CMatchSyntax;
 
12597
 
 
12598
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12599
 
 
12600
  CTree *sons[3]; // declspecs, declarator, init
 
12601
 
 
12602
public:
 
12603
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
 
12604
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
 
12605
  }
 
12606
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12607
  static const char *NodeId ();
 
12608
  /** Get the name of the node. Can be compared with NodeId(). */
 
12609
  const char *NodeName () const { return NodeId (); }
 
12610
  /** Get the number of sons. */
 
12611
  int Sons () const { return CTree::Sons (sons, 3); }
 
12612
  /** Get the n-th son.
 
12613
   *  \param n The index of the son.
 
12614
   *  \return The n-th son or NULL. */
 
12615
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
12616
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
12617
  CTree *Declarator () const { return sons[1]; }
 
12618
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
 
12619
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
12620
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
12621
  /** Replace a son.
 
12622
   *  \param old_son The son to replace.
 
12623
   *  \param new_son The new son. */
 
12624
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
12625
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
12626
  }
 
12627
};
 
12628
 
 
12629
 
 
12630
#line 12631 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12631
} // closed Puma
 
12632
class CCExprResolve;
 
12633
class CExprResolve;
 
12634
class WinIfExists;
 
12635
class WinImportHandler;
 
12636
class WinMacros;
 
12637
class WinAsm;
 
12638
class WinDeclSpecs;
 
12639
class WinMemberExplSpec;
 
12640
class WinTypeKeywords;
 
12641
class WinFriend;
 
12642
class ExtAC;
 
12643
class ExtACBuilderCoupling;
 
12644
class ExtACSyntaxCoupling;
 
12645
class ExtACTree;
 
12646
class ExtACKeywords;
 
12647
class ExtGnu;
 
12648
class PragmaOnceUnitState;
 
12649
class PragmaOnce;
 
12650
class CMatchSyntax;
 
12651
namespace Puma {
 
12652
 
 
12653
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12654
class CT_TypeParamDecl : public CT_TemplateParamDecl {
 
12655
#line 12656 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12656
  friend class ::CCExprResolve;
 
12657
  friend class ::CExprResolve;
 
12658
  friend class ::WinIfExists;
 
12659
  friend class ::WinImportHandler;
 
12660
  friend class ::WinMacros;
 
12661
  friend class ::WinAsm;
 
12662
  friend class ::WinDeclSpecs;
 
12663
  friend class ::WinMemberExplSpec;
 
12664
  friend class ::WinTypeKeywords;
 
12665
  friend class ::WinFriend;
 
12666
  friend class ::ExtAC;
 
12667
  friend class ::ExtACBuilderCoupling;
 
12668
  friend class ::ExtACSyntaxCoupling;
 
12669
  friend class ::ExtACTree;
 
12670
  friend class ::ExtACKeywords;
 
12671
  friend class ::ExtGnu;
 
12672
  friend class ::PragmaOnceUnitState;
 
12673
  friend class ::PragmaOnce;
 
12674
  friend class ::CMatchSyntax;
 
12675
 
 
12676
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12677
 
 
12678
  CTree *sons[4]; // params, key, id, init
 
12679
 
 
12680
public:
 
12681
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
 
12682
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
12683
    AddSon (sons[2], id); AddSon (sons[3], i);
 
12684
  }
 
12685
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12686
  static const char *NodeId ();
 
12687
  /** Get the name of the node. Can be compared with NodeId(). */
 
12688
  const char *NodeName () const { return NodeId (); }
 
12689
  /** Get the number of sons. */
 
12690
  int Sons () const { return CTree::Sons (sons, 4); }
 
12691
  /** Get the n-th son.
 
12692
   *  \param n The index of the son.
 
12693
   *  \return The n-th son or NULL. */
 
12694
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
12695
  CT_TemplateParamList *Parameters () const { 
 
12696
    return (CT_TemplateParamList*)sons[0]; 
 
12697
  }
 
12698
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
12699
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
 
12700
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
12701
  /** Replace a son.
 
12702
   *  \param old_son The son to replace.
 
12703
   *  \param new_son The new son. */
 
12704
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
12705
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
12706
  }
 
12707
};
 
12708
 
 
12709
 
 
12710
#line 12711 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12711
} // closed Puma
 
12712
class CCExprResolve;
 
12713
class CExprResolve;
 
12714
class WinIfExists;
 
12715
class WinImportHandler;
 
12716
class WinMacros;
 
12717
class WinAsm;
 
12718
class WinDeclSpecs;
 
12719
class WinMemberExplSpec;
 
12720
class WinTypeKeywords;
 
12721
class WinFriend;
 
12722
class ExtAC;
 
12723
class ExtACBuilderCoupling;
 
12724
class ExtACSyntaxCoupling;
 
12725
class ExtACTree;
 
12726
class ExtACKeywords;
 
12727
class ExtGnu;
 
12728
class PragmaOnceUnitState;
 
12729
class PragmaOnce;
 
12730
class CMatchSyntax;
 
12731
namespace Puma {
 
12732
 
 
12733
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12734
class CT_EnumDef : public CT_Decl, public CSemObject {
 
12735
#line 12736 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12736
  friend class ::CCExprResolve;
 
12737
  friend class ::CExprResolve;
 
12738
  friend class ::WinIfExists;
 
12739
  friend class ::WinImportHandler;
 
12740
  friend class ::WinMacros;
 
12741
  friend class ::WinAsm;
 
12742
  friend class ::WinDeclSpecs;
 
12743
  friend class ::WinMemberExplSpec;
 
12744
  friend class ::WinTypeKeywords;
 
12745
  friend class ::WinFriend;
 
12746
  friend class ::ExtAC;
 
12747
  friend class ::ExtACBuilderCoupling;
 
12748
  friend class ::ExtACSyntaxCoupling;
 
12749
  friend class ::ExtACTree;
 
12750
  friend class ::ExtACKeywords;
 
12751
  friend class ::ExtGnu;
 
12752
  friend class ::PragmaOnceUnitState;
 
12753
  friend class ::PragmaOnce;
 
12754
  friend class ::CMatchSyntax;
 
12755
 
 
12756
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12757
 
 
12758
  CTree *sons[3]; // key, name, enumerators
 
12759
 
 
12760
public:
 
12761
  CT_EnumDef (CTree *k, CTree *n) {
 
12762
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
 
12763
  }
 
12764
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12765
  static const char *NodeId ();
 
12766
  /** Get the name of the node. Can be compared with NodeId(). */
 
12767
  const char *NodeName () const { return NodeId (); }
 
12768
  /** Get the number of sons. */
 
12769
  int Sons () const { return CTree::Sons (sons, 3); }
 
12770
  /** Get the n-th son.
 
12771
   *  \param n The index of the son.
 
12772
   *  \return The n-th son or NULL. */
 
12773
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
12774
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
12775
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
 
12776
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
12777
  /** Replace a son.
 
12778
   *  \param old_son The son to replace.
 
12779
   *  \param new_son The new son. */
 
12780
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
12781
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
12782
  }
 
12783
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
12784
};
 
12785
 
 
12786
 
 
12787
#line 12788 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12788
} // closed Puma
 
12789
class CCExprResolve;
 
12790
class CExprResolve;
 
12791
class WinIfExists;
 
12792
class WinImportHandler;
 
12793
class WinMacros;
 
12794
class WinAsm;
 
12795
class WinDeclSpecs;
 
12796
class WinMemberExplSpec;
 
12797
class WinTypeKeywords;
 
12798
class WinFriend;
 
12799
class ExtAC;
 
12800
class ExtACBuilderCoupling;
 
12801
class ExtACSyntaxCoupling;
 
12802
class ExtACTree;
 
12803
class ExtACKeywords;
 
12804
class ExtGnu;
 
12805
class PragmaOnceUnitState;
 
12806
class PragmaOnce;
 
12807
class CMatchSyntax;
 
12808
namespace Puma {
 
12809
 
 
12810
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12811
class CT_Enumerator : public CT_Decl, public CSemObject {
 
12812
#line 12813 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12813
  friend class ::CCExprResolve;
 
12814
  friend class ::CExprResolve;
 
12815
  friend class ::WinIfExists;
 
12816
  friend class ::WinImportHandler;
 
12817
  friend class ::WinMacros;
 
12818
  friend class ::WinAsm;
 
12819
  friend class ::WinDeclSpecs;
 
12820
  friend class ::WinMemberExplSpec;
 
12821
  friend class ::WinTypeKeywords;
 
12822
  friend class ::WinFriend;
 
12823
  friend class ::ExtAC;
 
12824
  friend class ::ExtACBuilderCoupling;
 
12825
  friend class ::ExtACSyntaxCoupling;
 
12826
  friend class ::ExtACTree;
 
12827
  friend class ::ExtACKeywords;
 
12828
  friend class ::ExtGnu;
 
12829
  friend class ::PragmaOnceUnitState;
 
12830
  friend class ::PragmaOnce;
 
12831
  friend class ::CMatchSyntax;
 
12832
 
 
12833
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12834
 
 
12835
  CTree *sons[2]; // name, init
 
12836
 
 
12837
public:
 
12838
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
12839
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12840
  static const char *NodeId ();
 
12841
  /** Get the name of the node. Can be compared with NodeId(). */
 
12842
  const char *NodeName () const { return NodeId (); }
 
12843
  /** Get the number of sons. */
 
12844
  int Sons () const { return CTree::Sons (sons, 2); }
 
12845
  /** Get the n-th son.
 
12846
   *  \param n The index of the son.
 
12847
   *  \return The n-th son or NULL. */
 
12848
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
12849
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
12850
  void Initializer (CTree *i) { AddSon (sons[1], i); }
 
12851
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
12852
  /** Replace a son.
 
12853
   *  \param old_son The son to replace.
 
12854
   *  \param new_son The new son. */
 
12855
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
12856
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
 
12857
  }
 
12858
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
12859
};
 
12860
 
 
12861
 
 
12862
#line 12863 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12863
} // closed Puma
 
12864
class CCExprResolve;
 
12865
class CExprResolve;
 
12866
class WinIfExists;
 
12867
class WinImportHandler;
 
12868
class WinMacros;
 
12869
class WinAsm;
 
12870
class WinDeclSpecs;
 
12871
class WinMemberExplSpec;
 
12872
class WinTypeKeywords;
 
12873
class WinFriend;
 
12874
class ExtAC;
 
12875
class ExtACBuilderCoupling;
 
12876
class ExtACSyntaxCoupling;
 
12877
class ExtACTree;
 
12878
class ExtACKeywords;
 
12879
class ExtGnu;
 
12880
class PragmaOnceUnitState;
 
12881
class PragmaOnce;
 
12882
class CMatchSyntax;
 
12883
namespace Puma {
 
12884
 
 
12885
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12886
class CT_FctDef : public CT_Decl, public CSemObject {
 
12887
#line 12888 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12888
  friend class ::CCExprResolve;
 
12889
  friend class ::CExprResolve;
 
12890
  friend class ::WinIfExists;
 
12891
  friend class ::WinImportHandler;
 
12892
  friend class ::WinMacros;
 
12893
  friend class ::WinAsm;
 
12894
  friend class ::WinDeclSpecs;
 
12895
  friend class ::WinMemberExplSpec;
 
12896
  friend class ::WinTypeKeywords;
 
12897
  friend class ::WinFriend;
 
12898
  friend class ::ExtAC;
 
12899
  friend class ::ExtACBuilderCoupling;
 
12900
  friend class ::ExtACSyntaxCoupling;
 
12901
  friend class ::ExtACTree;
 
12902
  friend class ::ExtACKeywords;
 
12903
  friend class ::ExtGnu;
 
12904
  friend class ::PragmaOnceUnitState;
 
12905
  friend class ::PragmaOnce;
 
12906
  friend class ::CMatchSyntax;
 
12907
 
 
12908
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12909
 
 
12910
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
 
12911
 
 
12912
public:
 
12913
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
 
12914
             CTree *b, CTree *hs) {
 
12915
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
12916
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
12917
    AddSon (sons[6], hs); 
 
12918
  }
 
12919
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12920
  static const char *NodeId ();
 
12921
  /** Get the name of the node. Can be compared with NodeId(). */
 
12922
  const char *NodeName () const { return NodeId (); }
 
12923
  /** Get the number of sons. */
 
12924
  int Sons () const { return CTree::Sons (sons, 7); }
 
12925
  /** Get the n-th son.
 
12926
   *  \param n The index of the son.
 
12927
   *  \return The n-th son or NULL. */
 
12928
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
12929
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
12930
  CTree *Declarator () const { return sons[1]; }
 
12931
  CT_Token *TryKey () const { return (CT_Token*)sons[2]; }
 
12932
  CTree *CtorInit () const { return sons[3]; }
 
12933
  CT_ArgDeclSeq *ArgDeclSeq () const { return (CT_ArgDeclSeq*)sons[4]; }
 
12934
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
 
12935
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
 
12936
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
12937
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
12938
  void Body (CTree *b) { AddSon (sons[5], b); }
 
12939
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
 
12940
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
12941
    AddSon (sons[5], b); AddSon (sons[6], h);
 
12942
  }
 
12943
  /** Replace a son.
 
12944
   *  \param old_son The son to replace.
 
12945
   *  \param new_son The new son. */
 
12946
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
12947
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
12948
  }
 
12949
};
 
12950
 
 
12951
 
 
12952
#line 12953 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12953
} // closed Puma
 
12954
class CCExprResolve;
 
12955
class CExprResolve;
 
12956
class WinIfExists;
 
12957
class WinImportHandler;
 
12958
class WinMacros;
 
12959
class WinAsm;
 
12960
class WinDeclSpecs;
 
12961
class WinMemberExplSpec;
 
12962
class WinTypeKeywords;
 
12963
class WinFriend;
 
12964
class ExtAC;
 
12965
class ExtACBuilderCoupling;
 
12966
class ExtACSyntaxCoupling;
 
12967
class ExtACTree;
 
12968
class ExtACKeywords;
 
12969
class ExtGnu;
 
12970
class PragmaOnceUnitState;
 
12971
class PragmaOnce;
 
12972
class CMatchSyntax;
 
12973
namespace Puma {
 
12974
 
 
12975
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12976
class CT_AsmDef : public CT_Decl {
 
12977
#line 12978 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
12978
  friend class ::CCExprResolve;
 
12979
  friend class ::CExprResolve;
 
12980
  friend class ::WinIfExists;
 
12981
  friend class ::WinImportHandler;
 
12982
  friend class ::WinMacros;
 
12983
  friend class ::WinAsm;
 
12984
  friend class ::WinDeclSpecs;
 
12985
  friend class ::WinMemberExplSpec;
 
12986
  friend class ::WinTypeKeywords;
 
12987
  friend class ::WinFriend;
 
12988
  friend class ::ExtAC;
 
12989
  friend class ::ExtACBuilderCoupling;
 
12990
  friend class ::ExtACSyntaxCoupling;
 
12991
  friend class ::ExtACTree;
 
12992
  friend class ::ExtACKeywords;
 
12993
  friend class ::ExtGnu;
 
12994
  friend class ::PragmaOnceUnitState;
 
12995
  friend class ::PragmaOnce;
 
12996
  friend class ::CMatchSyntax;
 
12997
 
 
12998
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12999
 
 
13000
  CTree *sons[5]; // asm, open, str, close, semi_colon
 
13001
 
 
13002
public:
 
13003
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
 
13004
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
13005
    AddSon (sons[3], c); AddSon (sons[4], sc); 
 
13006
  }
 
13007
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13008
  static const char *NodeId ();
 
13009
  /** Get the name of the node. Can be compared with NodeId(). */
 
13010
  const char *NodeName () const { return NodeId (); }
 
13011
  /** Get the number of sons. */
 
13012
  int Sons () const { return 5; }
 
13013
  /** Get the n-th son.
 
13014
   *  \param n The index of the son.
 
13015
   *  \return The n-th son or NULL. */
 
13016
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
13017
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
13018
  /** Replace a son.
 
13019
   *  \param old_son The son to replace.
 
13020
   *  \param new_son The new son. */
 
13021
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
13022
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
13023
  }
 
13024
};
 
13025
 
 
13026
 
 
13027
#line 13028 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13028
} // closed Puma
 
13029
class CCExprResolve;
 
13030
class CExprResolve;
 
13031
class WinIfExists;
 
13032
class WinImportHandler;
 
13033
class WinMacros;
 
13034
class WinAsm;
 
13035
class WinDeclSpecs;
 
13036
class WinMemberExplSpec;
 
13037
class WinTypeKeywords;
 
13038
class WinFriend;
 
13039
class ExtAC;
 
13040
class ExtACBuilderCoupling;
 
13041
class ExtACSyntaxCoupling;
 
13042
class ExtACTree;
 
13043
class ExtACKeywords;
 
13044
class ExtGnu;
 
13045
class PragmaOnceUnitState;
 
13046
class PragmaOnce;
 
13047
class CMatchSyntax;
 
13048
namespace Puma {
 
13049
 
 
13050
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13051
class CT_Handler : public CT_Decl, public CSemScope {
 
13052
#line 13053 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13053
  friend class ::CCExprResolve;
 
13054
  friend class ::CExprResolve;
 
13055
  friend class ::WinIfExists;
 
13056
  friend class ::WinImportHandler;
 
13057
  friend class ::WinMacros;
 
13058
  friend class ::WinAsm;
 
13059
  friend class ::WinDeclSpecs;
 
13060
  friend class ::WinMemberExplSpec;
 
13061
  friend class ::WinTypeKeywords;
 
13062
  friend class ::WinFriend;
 
13063
  friend class ::ExtAC;
 
13064
  friend class ::ExtACBuilderCoupling;
 
13065
  friend class ::ExtACSyntaxCoupling;
 
13066
  friend class ::ExtACTree;
 
13067
  friend class ::ExtACKeywords;
 
13068
  friend class ::ExtGnu;
 
13069
  friend class ::PragmaOnceUnitState;
 
13070
  friend class ::PragmaOnce;
 
13071
  friend class ::CMatchSyntax;
 
13072
 
 
13073
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13074
 
 
13075
  CTree *sons[3]; // catch, exception_decl, stmt
 
13076
 
 
13077
public:
 
13078
  CT_Handler (CTree *c, CTree *e, CTree *s) {
 
13079
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
 
13080
  }
 
13081
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13082
  static const char *NodeId ();
 
13083
  /** Get the name of the node. Can be compared with NodeId(). */
 
13084
  const char *NodeName () const { return NodeId (); }
 
13085
  /** Get the number of sons. */
 
13086
  int Sons () const { return 3; }
 
13087
  /** Get the n-th son.
 
13088
   *  \param n The index of the son.
 
13089
   *  \return The n-th son or NULL. */
 
13090
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
13091
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
13092
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
13093
  /** Replace a son.
 
13094
   *  \param old_son The son to replace.
 
13095
   *  \param new_son The new son. */
 
13096
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
13097
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
13098
  }
 
13099
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
13100
};
 
13101
 
 
13102
 
 
13103
#line 13104 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13104
} // closed Puma
 
13105
class CCExprResolve;
 
13106
class CExprResolve;
 
13107
class WinIfExists;
 
13108
class WinImportHandler;
 
13109
class WinMacros;
 
13110
class WinAsm;
 
13111
class WinDeclSpecs;
 
13112
class WinMemberExplSpec;
 
13113
class WinTypeKeywords;
 
13114
class WinFriend;
 
13115
class ExtAC;
 
13116
class ExtACBuilderCoupling;
 
13117
class ExtACSyntaxCoupling;
 
13118
class ExtACTree;
 
13119
class ExtACKeywords;
 
13120
class ExtGnu;
 
13121
class PragmaOnceUnitState;
 
13122
class PragmaOnce;
 
13123
class CMatchSyntax;
 
13124
namespace Puma {
 
13125
 
 
13126
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13127
class CT_LinkageSpec : public CT_Decl {
 
13128
#line 13129 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13129
  friend class ::CCExprResolve;
 
13130
  friend class ::CExprResolve;
 
13131
  friend class ::WinIfExists;
 
13132
  friend class ::WinImportHandler;
 
13133
  friend class ::WinMacros;
 
13134
  friend class ::WinAsm;
 
13135
  friend class ::WinDeclSpecs;
 
13136
  friend class ::WinMemberExplSpec;
 
13137
  friend class ::WinTypeKeywords;
 
13138
  friend class ::WinFriend;
 
13139
  friend class ::ExtAC;
 
13140
  friend class ::ExtACBuilderCoupling;
 
13141
  friend class ::ExtACSyntaxCoupling;
 
13142
  friend class ::ExtACTree;
 
13143
  friend class ::ExtACKeywords;
 
13144
  friend class ::ExtGnu;
 
13145
  friend class ::PragmaOnceUnitState;
 
13146
  friend class ::PragmaOnce;
 
13147
  friend class ::CMatchSyntax;
 
13148
 
 
13149
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13150
 
 
13151
  CTree *sons[5]; // extern, str, open, decls, close
 
13152
 
 
13153
public:
 
13154
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
 
13155
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
13156
    AddSon (sons[3], d); AddSon (sons[4], c);
 
13157
    if (isList ())
 
13158
      ((CT_DeclList*)Decls ())->Linkage (this);
 
13159
    else
 
13160
      ((CT_Decl*)Decls ())->Linkage (this);
 
13161
  }
 
13162
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13163
  static const char *NodeId ();
 
13164
  /** Get the name of the node. Can be compared with NodeId(). */
 
13165
  const char *NodeName () const { return NodeId (); }
 
13166
  /** Get the number of sons. */
 
13167
  int Sons () const { return CTree::Sons (sons, 5); }
 
13168
  /** Get the n-th son.
 
13169
   *  \param n The index of the son.
 
13170
   *  \return The n-th son or NULL. */
 
13171
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
13172
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
 
13173
  CTree *Decls () const { return sons[3]; }
 
13174
  bool isList () const {
 
13175
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
 
13176
  }
 
13177
  /** Replace a son.
 
13178
   *  \param old_son The son to replace.
 
13179
   *  \param new_son The new son. */
 
13180
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
13181
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
13182
  }
 
13183
};
 
13184
 
 
13185
 
 
13186
#line 13187 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13187
} // closed Puma
 
13188
class CCExprResolve;
 
13189
class CExprResolve;
 
13190
class WinIfExists;
 
13191
class WinImportHandler;
 
13192
class WinMacros;
 
13193
class WinAsm;
 
13194
class WinDeclSpecs;
 
13195
class WinMemberExplSpec;
 
13196
class WinTypeKeywords;
 
13197
class WinFriend;
 
13198
class ExtAC;
 
13199
class ExtACBuilderCoupling;
 
13200
class ExtACSyntaxCoupling;
 
13201
class ExtACTree;
 
13202
class ExtACKeywords;
 
13203
class ExtGnu;
 
13204
class PragmaOnceUnitState;
 
13205
class PragmaOnce;
 
13206
class CMatchSyntax;
 
13207
namespace Puma {
 
13208
 
 
13209
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13210
class CT_ArgDecl : public CT_Decl, public CSemObject {
 
13211
#line 13212 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13212
  friend class ::CCExprResolve;
 
13213
  friend class ::CExprResolve;
 
13214
  friend class ::WinIfExists;
 
13215
  friend class ::WinImportHandler;
 
13216
  friend class ::WinMacros;
 
13217
  friend class ::WinAsm;
 
13218
  friend class ::WinDeclSpecs;
 
13219
  friend class ::WinMemberExplSpec;
 
13220
  friend class ::WinTypeKeywords;
 
13221
  friend class ::WinFriend;
 
13222
  friend class ::ExtAC;
 
13223
  friend class ::ExtACBuilderCoupling;
 
13224
  friend class ::ExtACSyntaxCoupling;
 
13225
  friend class ::ExtACTree;
 
13226
  friend class ::ExtACKeywords;
 
13227
  friend class ::ExtGnu;
 
13228
  friend class ::PragmaOnceUnitState;
 
13229
  friend class ::PragmaOnce;
 
13230
  friend class ::CMatchSyntax;
 
13231
 
 
13232
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13233
 
 
13234
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
 
13235
 
 
13236
public:
 
13237
  CT_ArgDecl (CTree *dsl, CTree *d) {
 
13238
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
13239
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
 
13240
  }
 
13241
  CT_ArgDecl (CTree *ellipsis) {
 
13242
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
13243
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
 
13244
  }
 
13245
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13246
  static const char *NodeId ();
 
13247
  /** Get the name of the node. Can be compared with NodeId(). */
 
13248
  const char *NodeName () const { return NodeId (); }
 
13249
  /** Get the number of sons. */
 
13250
  int Sons () const { return CTree::Sons (sons, 4); }
 
13251
  /** Get the n-th son.
 
13252
   *  \param n The index of the son.
 
13253
   *  \return The n-th son or NULL. */
 
13254
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
13255
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
13256
  CTree *Declarator () const { return sons[1]; }
 
13257
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
13258
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
 
13259
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
13260
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
13261
  /** Replace a son.
 
13262
   *  \param old_son The son to replace.
 
13263
   *  \param new_son The new son. */
 
13264
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
13265
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
13266
  }
 
13267
};
 
13268
 
 
13269
 
 
13270
#line 13271 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13271
} // closed Puma
 
13272
class CCExprResolve;
 
13273
class CExprResolve;
 
13274
class WinIfExists;
 
13275
class WinImportHandler;
 
13276
class WinMacros;
 
13277
class WinAsm;
 
13278
class WinDeclSpecs;
 
13279
class WinMemberExplSpec;
 
13280
class WinTypeKeywords;
 
13281
class WinFriend;
 
13282
class ExtAC;
 
13283
class ExtACBuilderCoupling;
 
13284
class ExtACSyntaxCoupling;
 
13285
class ExtACTree;
 
13286
class ExtACKeywords;
 
13287
class ExtGnu;
 
13288
class PragmaOnceUnitState;
 
13289
class PragmaOnce;
 
13290
class CMatchSyntax;
 
13291
namespace Puma {
 
13292
 
 
13293
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13294
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
 
13295
#line 13296 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13296
  friend class ::CCExprResolve;
 
13297
  friend class ::CExprResolve;
 
13298
  friend class ::WinIfExists;
 
13299
  friend class ::WinImportHandler;
 
13300
  friend class ::WinMacros;
 
13301
  friend class ::WinAsm;
 
13302
  friend class ::WinDeclSpecs;
 
13303
  friend class ::WinMemberExplSpec;
 
13304
  friend class ::WinTypeKeywords;
 
13305
  friend class ::WinFriend;
 
13306
  friend class ::ExtAC;
 
13307
  friend class ::ExtACBuilderCoupling;
 
13308
  friend class ::ExtACSyntaxCoupling;
 
13309
  friend class ::ExtACTree;
 
13310
  friend class ::ExtACKeywords;
 
13311
  friend class ::ExtGnu;
 
13312
  friend class ::PragmaOnceUnitState;
 
13313
  friend class ::PragmaOnce;
 
13314
  friend class ::CMatchSyntax;
 
13315
 
 
13316
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13317
 
 
13318
public:
 
13319
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
 
13320
   CT_DeclList (size, 2) { AddProperties (props); }
 
13321
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13322
  static const char *NodeId ();
 
13323
  /** Get the name of the node. Can be compared with NodeId(). */
 
13324
  const char *NodeName () const { return NodeId (); }
 
13325
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
13326
};
 
13327
 
 
13328
 
 
13329
#line 13330 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13330
} // closed Puma
 
13331
class CCExprResolve;
 
13332
class CExprResolve;
 
13333
class WinIfExists;
 
13334
class WinImportHandler;
 
13335
class WinMacros;
 
13336
class WinAsm;
 
13337
class WinDeclSpecs;
 
13338
class WinMemberExplSpec;
 
13339
class WinTypeKeywords;
 
13340
class WinFriend;
 
13341
class ExtAC;
 
13342
class ExtACBuilderCoupling;
 
13343
class ExtACSyntaxCoupling;
 
13344
class ExtACTree;
 
13345
class ExtACKeywords;
 
13346
class ExtGnu;
 
13347
class PragmaOnceUnitState;
 
13348
class PragmaOnce;
 
13349
class CMatchSyntax;
 
13350
namespace Puma {
 
13351
 
 
13352
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13353
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
 
13354
#line 13355 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13355
  friend class ::CCExprResolve;
 
13356
  friend class ::CExprResolve;
 
13357
  friend class ::WinIfExists;
 
13358
  friend class ::WinImportHandler;
 
13359
  friend class ::WinMacros;
 
13360
  friend class ::WinAsm;
 
13361
  friend class ::WinDeclSpecs;
 
13362
  friend class ::WinMemberExplSpec;
 
13363
  friend class ::WinTypeKeywords;
 
13364
  friend class ::WinFriend;
 
13365
  friend class ::ExtAC;
 
13366
  friend class ::ExtACBuilderCoupling;
 
13367
  friend class ::ExtACSyntaxCoupling;
 
13368
  friend class ::ExtACTree;
 
13369
  friend class ::ExtACKeywords;
 
13370
  friend class ::ExtGnu;
 
13371
  friend class ::PragmaOnceUnitState;
 
13372
  friend class ::PragmaOnce;
 
13373
  friend class ::CMatchSyntax;
 
13374
 
 
13375
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13376
 
 
13377
public:
 
13378
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
13379
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13380
  static const char *NodeId ();
 
13381
  /** Get the name of the node. Can be compared with NodeId(). */
 
13382
  const char *NodeName () const { return NodeId (); }
 
13383
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
13384
};
 
13385
 
 
13386
 
 
13387
#line 13388 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13388
} // closed Puma
 
13389
class CCExprResolve;
 
13390
class CExprResolve;
 
13391
class WinIfExists;
 
13392
class WinImportHandler;
 
13393
class WinMacros;
 
13394
class WinAsm;
 
13395
class WinDeclSpecs;
 
13396
class WinMemberExplSpec;
 
13397
class WinTypeKeywords;
 
13398
class WinFriend;
 
13399
class ExtAC;
 
13400
class ExtACBuilderCoupling;
 
13401
class ExtACSyntaxCoupling;
 
13402
class ExtACTree;
 
13403
class ExtACKeywords;
 
13404
class ExtGnu;
 
13405
class PragmaOnceUnitState;
 
13406
class PragmaOnce;
 
13407
class CMatchSyntax;
 
13408
namespace Puma {
 
13409
 
 
13410
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13411
class CT_ArgNameList : public CT_ArgDeclList {
 
13412
#line 13413 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13413
  friend class ::CCExprResolve;
 
13414
  friend class ::CExprResolve;
 
13415
  friend class ::WinIfExists;
 
13416
  friend class ::WinImportHandler;
 
13417
  friend class ::WinMacros;
 
13418
  friend class ::WinAsm;
 
13419
  friend class ::WinDeclSpecs;
 
13420
  friend class ::WinMemberExplSpec;
 
13421
  friend class ::WinTypeKeywords;
 
13422
  friend class ::WinFriend;
 
13423
  friend class ::ExtAC;
 
13424
  friend class ::ExtACBuilderCoupling;
 
13425
  friend class ::ExtACSyntaxCoupling;
 
13426
  friend class ::ExtACTree;
 
13427
  friend class ::ExtACKeywords;
 
13428
  friend class ::ExtGnu;
 
13429
  friend class ::PragmaOnceUnitState;
 
13430
  friend class ::PragmaOnce;
 
13431
  friend class ::CMatchSyntax;
 
13432
 
 
13433
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13434
 
 
13435
public:
 
13436
  CT_ArgNameList () : CT_ArgDeclList () {}
 
13437
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13438
  static const char *NodeId ();
 
13439
  /** Get the name of the node. Can be compared with NodeId(). */
 
13440
  const char *NodeName () const { return NodeId (); }
 
13441
};
 
13442
 
 
13443
 
 
13444
#line 13445 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13445
} // closed Puma
 
13446
class CCExprResolve;
 
13447
class CExprResolve;
 
13448
class WinIfExists;
 
13449
class WinImportHandler;
 
13450
class WinMacros;
 
13451
class WinAsm;
 
13452
class WinDeclSpecs;
 
13453
class WinMemberExplSpec;
 
13454
class WinTypeKeywords;
 
13455
class WinFriend;
 
13456
class ExtAC;
 
13457
class ExtACBuilderCoupling;
 
13458
class ExtACSyntaxCoupling;
 
13459
class ExtACTree;
 
13460
class ExtACKeywords;
 
13461
class ExtGnu;
 
13462
class PragmaOnceUnitState;
 
13463
class PragmaOnce;
 
13464
class CMatchSyntax;
 
13465
namespace Puma {
 
13466
 
 
13467
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13468
class CT_NamespaceDef : public CT_Decl, public CSemObject {
 
13469
#line 13470 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13470
  friend class ::CCExprResolve;
 
13471
  friend class ::CExprResolve;
 
13472
  friend class ::WinIfExists;
 
13473
  friend class ::WinImportHandler;
 
13474
  friend class ::WinMacros;
 
13475
  friend class ::WinAsm;
 
13476
  friend class ::WinDeclSpecs;
 
13477
  friend class ::WinMemberExplSpec;
 
13478
  friend class ::WinTypeKeywords;
 
13479
  friend class ::WinFriend;
 
13480
  friend class ::ExtAC;
 
13481
  friend class ::ExtACBuilderCoupling;
 
13482
  friend class ::ExtACSyntaxCoupling;
 
13483
  friend class ::ExtACTree;
 
13484
  friend class ::ExtACKeywords;
 
13485
  friend class ::ExtGnu;
 
13486
  friend class ::PragmaOnceUnitState;
 
13487
  friend class ::PragmaOnce;
 
13488
  friend class ::CMatchSyntax;
 
13489
 
 
13490
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13491
 
 
13492
  CTree *sons[3]; // ns, name, members
 
13493
 
 
13494
public:
 
13495
  CT_NamespaceDef (CTree *n, CTree *nm) {
 
13496
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
 
13497
  }
 
13498
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
 
13499
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
 
13500
  }
 
13501
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13502
  static const char *NodeId ();
 
13503
  /** Get the name of the node. Can be compared with NodeId(). */
 
13504
  const char *NodeName () const { return NodeId (); }
 
13505
  /** Get the number of sons. */
 
13506
  int Sons () const { return CTree::Sons (sons, 3); }
 
13507
  /** Get the n-th son.
 
13508
   *  \param n The index of the son.
 
13509
   *  \return The n-th son or NULL. */
 
13510
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
13511
  void Members (CTree *m) { AddSon (sons[2], m); }
 
13512
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
 
13513
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
13514
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
13515
  /** Replace a son.
 
13516
   *  \param old_son The son to replace.
 
13517
   *  \param new_son The new son. */
 
13518
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
13519
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
13520
  }
 
13521
};
 
13522
 
 
13523
 
 
13524
#line 13525 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13525
} // closed Puma
 
13526
class CCExprResolve;
 
13527
class CExprResolve;
 
13528
class WinIfExists;
 
13529
class WinImportHandler;
 
13530
class WinMacros;
 
13531
class WinAsm;
 
13532
class WinDeclSpecs;
 
13533
class WinMemberExplSpec;
 
13534
class WinTypeKeywords;
 
13535
class WinFriend;
 
13536
class ExtAC;
 
13537
class ExtACBuilderCoupling;
 
13538
class ExtACSyntaxCoupling;
 
13539
class ExtACTree;
 
13540
class ExtACKeywords;
 
13541
class ExtGnu;
 
13542
class PragmaOnceUnitState;
 
13543
class PragmaOnce;
 
13544
class CMatchSyntax;
 
13545
namespace Puma {
 
13546
 
 
13547
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13548
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
 
13549
#line 13550 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13550
  friend class ::CCExprResolve;
 
13551
  friend class ::CExprResolve;
 
13552
  friend class ::WinIfExists;
 
13553
  friend class ::WinImportHandler;
 
13554
  friend class ::WinMacros;
 
13555
  friend class ::WinAsm;
 
13556
  friend class ::WinDeclSpecs;
 
13557
  friend class ::WinMemberExplSpec;
 
13558
  friend class ::WinTypeKeywords;
 
13559
  friend class ::WinFriend;
 
13560
  friend class ::ExtAC;
 
13561
  friend class ::ExtACBuilderCoupling;
 
13562
  friend class ::ExtACSyntaxCoupling;
 
13563
  friend class ::ExtACTree;
 
13564
  friend class ::ExtACKeywords;
 
13565
  friend class ::ExtGnu;
 
13566
  friend class ::PragmaOnceUnitState;
 
13567
  friend class ::PragmaOnce;
 
13568
  friend class ::CMatchSyntax;
 
13569
 
 
13570
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13571
 
 
13572
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
 
13573
 
 
13574
public:
 
13575
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
 
13576
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
13577
    AddSon (sons[3], nm); AddSon (sons[4], s); 
 
13578
  }
 
13579
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13580
  static const char *NodeId ();
 
13581
  /** Get the name of the node. Can be compared with NodeId(). */
 
13582
  const char *NodeName () const { return NodeId (); }
 
13583
  /** Get the number of sons. */
 
13584
  int Sons () const { return 5; }
 
13585
  /** Get the n-th son.
 
13586
   *  \param n The index of the son.
 
13587
   *  \return The n-th son or NULL. */
 
13588
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
13589
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
 
13590
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
 
13591
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
13592
  /** Replace a son.
 
13593
   *  \param old_son The son to replace.
 
13594
   *  \param new_son The new son. */
 
13595
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
13596
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
13597
  }
 
13598
};
 
13599
 
 
13600
 
 
13601
#line 13602 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13602
} // closed Puma
 
13603
class CCExprResolve;
 
13604
class CExprResolve;
 
13605
class WinIfExists;
 
13606
class WinImportHandler;
 
13607
class WinMacros;
 
13608
class WinAsm;
 
13609
class WinDeclSpecs;
 
13610
class WinMemberExplSpec;
 
13611
class WinTypeKeywords;
 
13612
class WinFriend;
 
13613
class ExtAC;
 
13614
class ExtACBuilderCoupling;
 
13615
class ExtACSyntaxCoupling;
 
13616
class ExtACTree;
 
13617
class ExtACKeywords;
 
13618
class ExtGnu;
 
13619
class PragmaOnceUnitState;
 
13620
class PragmaOnce;
 
13621
class CMatchSyntax;
 
13622
namespace Puma {
 
13623
 
 
13624
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13625
class CT_UsingDirective : public CT_Decl {
 
13626
#line 13627 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13627
  friend class ::CCExprResolve;
 
13628
  friend class ::CExprResolve;
 
13629
  friend class ::WinIfExists;
 
13630
  friend class ::WinImportHandler;
 
13631
  friend class ::WinMacros;
 
13632
  friend class ::WinAsm;
 
13633
  friend class ::WinDeclSpecs;
 
13634
  friend class ::WinMemberExplSpec;
 
13635
  friend class ::WinTypeKeywords;
 
13636
  friend class ::WinFriend;
 
13637
  friend class ::ExtAC;
 
13638
  friend class ::ExtACBuilderCoupling;
 
13639
  friend class ::ExtACSyntaxCoupling;
 
13640
  friend class ::ExtACTree;
 
13641
  friend class ::ExtACKeywords;
 
13642
  friend class ::ExtGnu;
 
13643
  friend class ::PragmaOnceUnitState;
 
13644
  friend class ::PragmaOnce;
 
13645
  friend class ::CMatchSyntax;
 
13646
 
 
13647
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13648
 
 
13649
  CTree *sons[4]; // using, ns, name, semi_colon
 
13650
 
 
13651
public:
 
13652
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
 
13653
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
13654
    AddSon (sons[3], s); 
 
13655
  }
 
13656
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13657
  static const char *NodeId ();
 
13658
  /** Get the name of the node. Can be compared with NodeId(). */
 
13659
  const char *NodeName () const { return NodeId (); }
 
13660
  /** Get the number of sons. */
 
13661
  int Sons () const { return 4; }
 
13662
  /** Get the n-th son.
 
13663
   *  \param n The index of the son.
 
13664
   *  \return The n-th son or NULL. */
 
13665
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
13666
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
13667
  /** Replace a son.
 
13668
   *  \param old_son The son to replace.
 
13669
   *  \param new_son The new son. */
 
13670
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
13671
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
13672
  }
 
13673
};
 
13674
 
 
13675
/*****************************************************************************/
 
13676
/*                                                                           */
 
13677
/*                              Declarators                                  */
 
13678
/*                                                                           */
 
13679
/*****************************************************************************/
 
13680
 
 
13681
 
 
13682
#line 13683 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13683
} // closed Puma
 
13684
class CCExprResolve;
 
13685
class CExprResolve;
 
13686
class WinIfExists;
 
13687
class WinImportHandler;
 
13688
class WinMacros;
 
13689
class WinAsm;
 
13690
class WinDeclSpecs;
 
13691
class WinMemberExplSpec;
 
13692
class WinTypeKeywords;
 
13693
class WinFriend;
 
13694
class ExtAC;
 
13695
class ExtACBuilderCoupling;
 
13696
class ExtACSyntaxCoupling;
 
13697
class ExtACTree;
 
13698
class ExtACKeywords;
 
13699
class ExtGnu;
 
13700
class PragmaOnceUnitState;
 
13701
class PragmaOnce;
 
13702
class CMatchSyntax;
 
13703
namespace Puma {
 
13704
 
 
13705
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13706
class CT_Declarator : public CTree {
 
13707
#line 13708 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13708
  friend class ::CCExprResolve;
 
13709
  friend class ::CExprResolve;
 
13710
  friend class ::WinIfExists;
 
13711
  friend class ::WinImportHandler;
 
13712
  friend class ::WinMacros;
 
13713
  friend class ::WinAsm;
 
13714
  friend class ::WinDeclSpecs;
 
13715
  friend class ::WinMemberExplSpec;
 
13716
  friend class ::WinTypeKeywords;
 
13717
  friend class ::WinFriend;
 
13718
  friend class ::ExtAC;
 
13719
  friend class ::ExtACBuilderCoupling;
 
13720
  friend class ::ExtACSyntaxCoupling;
 
13721
  friend class ::ExtACTree;
 
13722
  friend class ::ExtACKeywords;
 
13723
  friend class ::ExtGnu;
 
13724
  friend class ::PragmaOnceUnitState;
 
13725
  friend class ::PragmaOnce;
 
13726
  friend class ::CMatchSyntax;
 
13727
 
 
13728
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13729
 
 
13730
protected:
 
13731
  CT_Declarator () {}
 
13732
 
 
13733
public:
 
13734
  virtual CTree *Declarator () const = 0;
 
13735
  //classification function
 
13736
  virtual CT_Declarator *IsDeclarator () { return this; }
 
13737
  // locate the name node
 
13738
  CT_SimpleName *Name ();
 
13739
  CT_SimpleName *Name (CT_Declarator *&last_declarator);
 
13740
};
 
13741
 
 
13742
 
 
13743
#line 13744 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13744
} // closed Puma
 
13745
class CCExprResolve;
 
13746
class CExprResolve;
 
13747
class WinIfExists;
 
13748
class WinImportHandler;
 
13749
class WinMacros;
 
13750
class WinAsm;
 
13751
class WinDeclSpecs;
 
13752
class WinMemberExplSpec;
 
13753
class WinTypeKeywords;
 
13754
class WinFriend;
 
13755
class ExtAC;
 
13756
class ExtACBuilderCoupling;
 
13757
class ExtACSyntaxCoupling;
 
13758
class ExtACTree;
 
13759
class ExtACKeywords;
 
13760
class ExtGnu;
 
13761
class PragmaOnceUnitState;
 
13762
class PragmaOnce;
 
13763
class CMatchSyntax;
 
13764
namespace Puma {
 
13765
 
 
13766
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13767
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
 
13768
#line 13769 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13769
  friend class ::CCExprResolve;
 
13770
  friend class ::CExprResolve;
 
13771
  friend class ::WinIfExists;
 
13772
  friend class ::WinImportHandler;
 
13773
  friend class ::WinMacros;
 
13774
  friend class ::WinAsm;
 
13775
  friend class ::WinDeclSpecs;
 
13776
  friend class ::WinMemberExplSpec;
 
13777
  friend class ::WinTypeKeywords;
 
13778
  friend class ::WinFriend;
 
13779
  friend class ::ExtAC;
 
13780
  friend class ::ExtACBuilderCoupling;
 
13781
  friend class ::ExtACSyntaxCoupling;
 
13782
  friend class ::ExtACTree;
 
13783
  friend class ::ExtACKeywords;
 
13784
  friend class ::ExtGnu;
 
13785
  friend class ::PragmaOnceUnitState;
 
13786
  friend class ::PragmaOnce;
 
13787
  friend class ::CMatchSyntax;
 
13788
 
 
13789
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13790
 
 
13791
  CTree *sons[3]; // declarator, ext, init
 
13792
  CTree *obj_decl;
 
13793
 
 
13794
public:
 
13795
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
13796
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
13797
    AddSon (obj_decl, 0); 
 
13798
  }
 
13799
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13800
  static const char *NodeId ();
 
13801
  /** Get the name of the node. Can be compared with NodeId(). */
 
13802
  const char *NodeName () const { return NodeId (); }
 
13803
  /** Get the number of sons. */
 
13804
  int Sons () const { return CTree::Sons (sons, 3); }
 
13805
  /** Get the n-th son.
 
13806
   *  \param n The index of the son.
 
13807
   *  \return The n-th son or NULL. */
 
13808
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
13809
  CTree *Declarator () const { return sons[0]; }
 
13810
  CTree *Extension () const { return sons[1]; }
 
13811
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
13812
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
13813
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
 
13814
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
13815
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
13816
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
13817
  /** Replace a son.
 
13818
   *  \param old_son The son to replace.
 
13819
   *  \param new_son The new son. */
 
13820
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
13821
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
13822
  }
 
13823
};
 
13824
 
 
13825
 
 
13826
#line 13827 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13827
} // closed Puma
 
13828
class CCExprResolve;
 
13829
class CExprResolve;
 
13830
class WinIfExists;
 
13831
class WinImportHandler;
 
13832
class WinMacros;
 
13833
class WinAsm;
 
13834
class WinDeclSpecs;
 
13835
class WinMemberExplSpec;
 
13836
class WinTypeKeywords;
 
13837
class WinFriend;
 
13838
class ExtAC;
 
13839
class ExtACBuilderCoupling;
 
13840
class ExtACSyntaxCoupling;
 
13841
class ExtACTree;
 
13842
class ExtACKeywords;
 
13843
class ExtGnu;
 
13844
class PragmaOnceUnitState;
 
13845
class PragmaOnce;
 
13846
class CMatchSyntax;
 
13847
namespace Puma {
 
13848
 
 
13849
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13850
class CT_BracedDeclarator : public CT_Declarator {
 
13851
#line 13852 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13852
  friend class ::CCExprResolve;
 
13853
  friend class ::CExprResolve;
 
13854
  friend class ::WinIfExists;
 
13855
  friend class ::WinImportHandler;
 
13856
  friend class ::WinMacros;
 
13857
  friend class ::WinAsm;
 
13858
  friend class ::WinDeclSpecs;
 
13859
  friend class ::WinMemberExplSpec;
 
13860
  friend class ::WinTypeKeywords;
 
13861
  friend class ::WinFriend;
 
13862
  friend class ::ExtAC;
 
13863
  friend class ::ExtACBuilderCoupling;
 
13864
  friend class ::ExtACSyntaxCoupling;
 
13865
  friend class ::ExtACTree;
 
13866
  friend class ::ExtACKeywords;
 
13867
  friend class ::ExtGnu;
 
13868
  friend class ::PragmaOnceUnitState;
 
13869
  friend class ::PragmaOnce;
 
13870
  friend class ::CMatchSyntax;
 
13871
 
 
13872
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13873
 
 
13874
  CTree *sons[4]; // open, win_specs, declarator, close
 
13875
 
 
13876
public:
 
13877
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
 
13878
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
13879
    AddSon (sons[2], d); AddSon (sons[3], c); 
 
13880
  }
 
13881
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
 
13882
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
13883
    AddSon (sons[2], d); AddSon (sons[3], c); 
 
13884
  }
 
13885
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13886
  static const char *NodeId ();
 
13887
  /** Get the name of the node. Can be compared with NodeId(). */
 
13888
  const char *NodeName () const { return NodeId (); }
 
13889
  /** Get the number of sons. */
 
13890
  int Sons () const { return CTree::Sons (sons, 4); }
 
13891
  /** Get the n-th son.
 
13892
   *  \param n The index of the son.
 
13893
   *  \return The n-th son or NULL. */
 
13894
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
13895
  CTree *Declarator () const { return sons[2]; }
 
13896
  /** Replace a son.
 
13897
   *  \param old_son The son to replace.
 
13898
   *  \param new_son The new son. */
 
13899
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
13900
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
13901
  }
 
13902
};
 
13903
 
 
13904
 
 
13905
#line 13906 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13906
} // closed Puma
 
13907
class CCExprResolve;
 
13908
class CExprResolve;
 
13909
class WinIfExists;
 
13910
class WinImportHandler;
 
13911
class WinMacros;
 
13912
class WinAsm;
 
13913
class WinDeclSpecs;
 
13914
class WinMemberExplSpec;
 
13915
class WinTypeKeywords;
 
13916
class WinFriend;
 
13917
class ExtAC;
 
13918
class ExtACBuilderCoupling;
 
13919
class ExtACSyntaxCoupling;
 
13920
class ExtACTree;
 
13921
class ExtACKeywords;
 
13922
class ExtGnu;
 
13923
class PragmaOnceUnitState;
 
13924
class PragmaOnce;
 
13925
class CMatchSyntax;
 
13926
namespace Puma {
 
13927
 
 
13928
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13929
class CT_ArrayDelimiter : public CTree {
 
13930
#line 13931 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13931
  friend class ::CCExprResolve;
 
13932
  friend class ::CExprResolve;
 
13933
  friend class ::WinIfExists;
 
13934
  friend class ::WinImportHandler;
 
13935
  friend class ::WinMacros;
 
13936
  friend class ::WinAsm;
 
13937
  friend class ::WinDeclSpecs;
 
13938
  friend class ::WinMemberExplSpec;
 
13939
  friend class ::WinTypeKeywords;
 
13940
  friend class ::WinFriend;
 
13941
  friend class ::ExtAC;
 
13942
  friend class ::ExtACBuilderCoupling;
 
13943
  friend class ::ExtACSyntaxCoupling;
 
13944
  friend class ::ExtACTree;
 
13945
  friend class ::ExtACKeywords;
 
13946
  friend class ::ExtGnu;
 
13947
  friend class ::PragmaOnceUnitState;
 
13948
  friend class ::PragmaOnce;
 
13949
  friend class ::CMatchSyntax;
 
13950
 
 
13951
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13952
 
 
13953
  CTree *sons[4]; // star, static, quals, expr
 
13954
  bool pos0;
 
13955
 
 
13956
public:
 
13957
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
 
13958
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
13959
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
 
13960
  }
 
13961
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
13962
  static const char *NodeId ();
 
13963
  /** Get the name of the node. Can be compared with NodeId(). */
 
13964
  const char *NodeName () const { return NodeId (); }
 
13965
  /** Get the number of sons. */
 
13966
  int Sons () const { return CTree::Sons (sons, 4); }
 
13967
  /** Get the n-th son.
 
13968
   *  \param n The index of the son.
 
13969
   *  \return The n-th son or NULL. */
 
13970
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
13971
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
 
13972
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
 
13973
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
 
13974
  CTree *Expr () const { return sons[3]; }
 
13975
  /** Replace a son.
 
13976
   *  \param old_son The son to replace.
 
13977
   *  \param new_son The new son. */
 
13978
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
13979
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
13980
  }
 
13981
};
 
13982
 
 
13983
 
 
13984
#line 13985 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
13985
} // closed Puma
 
13986
class CCExprResolve;
 
13987
class CExprResolve;
 
13988
class WinIfExists;
 
13989
class WinImportHandler;
 
13990
class WinMacros;
 
13991
class WinAsm;
 
13992
class WinDeclSpecs;
 
13993
class WinMemberExplSpec;
 
13994
class WinTypeKeywords;
 
13995
class WinFriend;
 
13996
class ExtAC;
 
13997
class ExtACBuilderCoupling;
 
13998
class ExtACSyntaxCoupling;
 
13999
class ExtACTree;
 
14000
class ExtACKeywords;
 
14001
class ExtGnu;
 
14002
class PragmaOnceUnitState;
 
14003
class PragmaOnce;
 
14004
class CMatchSyntax;
 
14005
namespace Puma {
 
14006
 
 
14007
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14008
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
 
14009
#line 14010 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14010
  friend class ::CCExprResolve;
 
14011
  friend class ::CExprResolve;
 
14012
  friend class ::WinIfExists;
 
14013
  friend class ::WinImportHandler;
 
14014
  friend class ::WinMacros;
 
14015
  friend class ::WinAsm;
 
14016
  friend class ::WinDeclSpecs;
 
14017
  friend class ::WinMemberExplSpec;
 
14018
  friend class ::WinTypeKeywords;
 
14019
  friend class ::WinFriend;
 
14020
  friend class ::ExtAC;
 
14021
  friend class ::ExtACBuilderCoupling;
 
14022
  friend class ::ExtACSyntaxCoupling;
 
14023
  friend class ::ExtACTree;
 
14024
  friend class ::ExtACKeywords;
 
14025
  friend class ::ExtGnu;
 
14026
  friend class ::PragmaOnceUnitState;
 
14027
  friend class ::PragmaOnce;
 
14028
  friend class ::CMatchSyntax;
 
14029
 
 
14030
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14031
 
 
14032
  CTree *sons[4]; // declarator, open, delim, close
 
14033
 
 
14034
public:
 
14035
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
 
14036
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
14037
    AddSon (sons[2], ad); AddSon (sons[3], c); 
 
14038
  }
 
14039
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14040
  static const char *NodeId ();
 
14041
  /** Get the name of the node. Can be compared with NodeId(). */
 
14042
  const char *NodeName () const { return NodeId (); }
 
14043
  /** Get the number of sons. */
 
14044
  int Sons () const { return 4; }
 
14045
  /** Get the n-th son.
 
14046
   *  \param n The index of the son.
 
14047
   *  \return The n-th son or NULL. */
 
14048
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
14049
  CTree *Declarator () const { return sons[0]; }
 
14050
  CT_ArrayDelimiter *Delimiter () const 
 
14051
   { return (CT_ArrayDelimiter*)sons[2]; }
 
14052
  /** Replace a son.
 
14053
   *  \param old_son The son to replace.
 
14054
   *  \param new_son The new son. */
 
14055
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
14056
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
14057
  }
 
14058
  CTypeInfo *Type () const { return type; }
 
14059
  CExprValue *Value () const { return value; }
 
14060
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
14061
};
 
14062
 
 
14063
 
 
14064
#line 14065 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14065
} // closed Puma
 
14066
class CCExprResolve;
 
14067
class CExprResolve;
 
14068
class WinIfExists;
 
14069
class WinImportHandler;
 
14070
class WinMacros;
 
14071
class WinAsm;
 
14072
class WinDeclSpecs;
 
14073
class WinMemberExplSpec;
 
14074
class WinTypeKeywords;
 
14075
class WinFriend;
 
14076
class ExtAC;
 
14077
class ExtACBuilderCoupling;
 
14078
class ExtACSyntaxCoupling;
 
14079
class ExtACTree;
 
14080
class ExtACKeywords;
 
14081
class ExtGnu;
 
14082
class PragmaOnceUnitState;
 
14083
class PragmaOnce;
 
14084
class CMatchSyntax;
 
14085
namespace Puma {
 
14086
 
 
14087
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14088
class CT_FctDeclarator : public CT_Declarator {
 
14089
#line 14090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14090
  friend class ::CCExprResolve;
 
14091
  friend class ::CExprResolve;
 
14092
  friend class ::WinIfExists;
 
14093
  friend class ::WinImportHandler;
 
14094
  friend class ::WinMacros;
 
14095
  friend class ::WinAsm;
 
14096
  friend class ::WinDeclSpecs;
 
14097
  friend class ::WinMemberExplSpec;
 
14098
  friend class ::WinTypeKeywords;
 
14099
  friend class ::WinFriend;
 
14100
  friend class ::ExtAC;
 
14101
  friend class ::ExtACBuilderCoupling;
 
14102
  friend class ::ExtACSyntaxCoupling;
 
14103
  friend class ::ExtACTree;
 
14104
  friend class ::ExtACKeywords;
 
14105
  friend class ::ExtGnu;
 
14106
  friend class ::PragmaOnceUnitState;
 
14107
  friend class ::PragmaOnce;
 
14108
  friend class ::CMatchSyntax;
 
14109
 
 
14110
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14111
 
 
14112
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
 
14113
 
 
14114
public:
 
14115
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
 
14116
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
14117
    AddSon (sons[2], cv); AddSon (sons[3], es); 
 
14118
  }
 
14119
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14120
  static const char *NodeId ();
 
14121
  /** Get the name of the node. Can be compared with NodeId(). */
 
14122
  const char *NodeName () const { return NodeId (); }
 
14123
  /** Get the number of sons. */
 
14124
  int Sons () const { return CTree::Sons (sons, 4); }
 
14125
  /** Get the n-th son.
 
14126
   *  \param n The index of the son.
 
14127
   *  \return The n-th son or NULL. */
 
14128
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
14129
  CTree *Declarator () const { return sons[0]; }
 
14130
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
14131
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
 
14132
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
14133
  /** Replace a son.
 
14134
   *  \param old_son The son to replace.
 
14135
   *  \param new_son The new son. */
 
14136
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
14137
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
14138
  }
 
14139
};
 
14140
 
 
14141
 
 
14142
#line 14143 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14143
} // closed Puma
 
14144
class CCExprResolve;
 
14145
class CExprResolve;
 
14146
class WinIfExists;
 
14147
class WinImportHandler;
 
14148
class WinMacros;
 
14149
class WinAsm;
 
14150
class WinDeclSpecs;
 
14151
class WinMemberExplSpec;
 
14152
class WinTypeKeywords;
 
14153
class WinFriend;
 
14154
class ExtAC;
 
14155
class ExtACBuilderCoupling;
 
14156
class ExtACSyntaxCoupling;
 
14157
class ExtACTree;
 
14158
class ExtACKeywords;
 
14159
class ExtGnu;
 
14160
class PragmaOnceUnitState;
 
14161
class PragmaOnce;
 
14162
class CMatchSyntax;
 
14163
namespace Puma {
 
14164
 
 
14165
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14166
class CT_RefDeclarator : public CT_Declarator {
 
14167
#line 14168 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14168
  friend class ::CCExprResolve;
 
14169
  friend class ::CExprResolve;
 
14170
  friend class ::WinIfExists;
 
14171
  friend class ::WinImportHandler;
 
14172
  friend class ::WinMacros;
 
14173
  friend class ::WinAsm;
 
14174
  friend class ::WinDeclSpecs;
 
14175
  friend class ::WinMemberExplSpec;
 
14176
  friend class ::WinTypeKeywords;
 
14177
  friend class ::WinFriend;
 
14178
  friend class ::ExtAC;
 
14179
  friend class ::ExtACBuilderCoupling;
 
14180
  friend class ::ExtACSyntaxCoupling;
 
14181
  friend class ::ExtACTree;
 
14182
  friend class ::ExtACKeywords;
 
14183
  friend class ::ExtGnu;
 
14184
  friend class ::PragmaOnceUnitState;
 
14185
  friend class ::PragmaOnce;
 
14186
  friend class ::CMatchSyntax;
 
14187
 
 
14188
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14189
 
 
14190
  CTree *sons[2]; // ref, declarator
 
14191
 
 
14192
public:
 
14193
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
14194
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14195
  static const char *NodeId ();
 
14196
  /** Get the name of the node. Can be compared with NodeId(). */
 
14197
  const char *NodeName () const { return NodeId (); }
 
14198
  /** Get the number of sons. */
 
14199
  int Sons () const { return 2; }
 
14200
  /** Get the n-th son.
 
14201
   *  \param n The index of the son.
 
14202
   *  \return The n-th son or NULL. */
 
14203
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
14204
  CTree *Declarator () const { return sons[1]; }
 
14205
  /** Replace a son.
 
14206
   *  \param old_son The son to replace.
 
14207
   *  \param new_son The new son. */
 
14208
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
14209
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
14210
  }
 
14211
};
 
14212
 
 
14213
 
 
14214
#line 14215 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14215
} // closed Puma
 
14216
class CCExprResolve;
 
14217
class CExprResolve;
 
14218
class WinIfExists;
 
14219
class WinImportHandler;
 
14220
class WinMacros;
 
14221
class WinAsm;
 
14222
class WinDeclSpecs;
 
14223
class WinMemberExplSpec;
 
14224
class WinTypeKeywords;
 
14225
class WinFriend;
 
14226
class ExtAC;
 
14227
class ExtACBuilderCoupling;
 
14228
class ExtACSyntaxCoupling;
 
14229
class ExtACTree;
 
14230
class ExtACKeywords;
 
14231
class ExtGnu;
 
14232
class PragmaOnceUnitState;
 
14233
class PragmaOnce;
 
14234
class CMatchSyntax;
 
14235
namespace Puma {
 
14236
 
 
14237
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14238
class CT_PtrDeclarator : public CT_Declarator {
 
14239
#line 14240 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14240
  friend class ::CCExprResolve;
 
14241
  friend class ::CExprResolve;
 
14242
  friend class ::WinIfExists;
 
14243
  friend class ::WinImportHandler;
 
14244
  friend class ::WinMacros;
 
14245
  friend class ::WinAsm;
 
14246
  friend class ::WinDeclSpecs;
 
14247
  friend class ::WinMemberExplSpec;
 
14248
  friend class ::WinTypeKeywords;
 
14249
  friend class ::WinFriend;
 
14250
  friend class ::ExtAC;
 
14251
  friend class ::ExtACBuilderCoupling;
 
14252
  friend class ::ExtACSyntaxCoupling;
 
14253
  friend class ::ExtACTree;
 
14254
  friend class ::ExtACKeywords;
 
14255
  friend class ::ExtGnu;
 
14256
  friend class ::PragmaOnceUnitState;
 
14257
  friend class ::PragmaOnce;
 
14258
  friend class ::CMatchSyntax;
 
14259
 
 
14260
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14261
 
 
14262
  CTree *sons[3]; // ptr, cv_quals, declarator
 
14263
 
 
14264
public:
 
14265
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
 
14266
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
 
14267
  }
 
14268
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14269
  static const char *NodeId ();
 
14270
  /** Get the name of the node. Can be compared with NodeId(). */
 
14271
  const char *NodeName () const { return NodeId (); }
 
14272
  /** Get the number of sons. */
 
14273
  int Sons () const { return CTree::Sons (sons, 3); }
 
14274
  /** Get the n-th son.
 
14275
   *  \param n The index of the son.
 
14276
   *  \return The n-th son or NULL. */
 
14277
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
14278
  CTree *Declarator () const { return sons[2]; }
 
14279
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
14280
  /** Replace a son.
 
14281
   *  \param old_son The son to replace.
 
14282
   *  \param new_son The new son. */
 
14283
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
14284
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
14285
  }
 
14286
};
 
14287
 
 
14288
 
 
14289
#line 14290 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14290
} // closed Puma
 
14291
class CCExprResolve;
 
14292
class CExprResolve;
 
14293
class WinIfExists;
 
14294
class WinImportHandler;
 
14295
class WinMacros;
 
14296
class WinAsm;
 
14297
class WinDeclSpecs;
 
14298
class WinMemberExplSpec;
 
14299
class WinTypeKeywords;
 
14300
class WinFriend;
 
14301
class ExtAC;
 
14302
class ExtACBuilderCoupling;
 
14303
class ExtACSyntaxCoupling;
 
14304
class ExtACTree;
 
14305
class ExtACKeywords;
 
14306
class ExtGnu;
 
14307
class PragmaOnceUnitState;
 
14308
class PragmaOnce;
 
14309
class CMatchSyntax;
 
14310
namespace Puma {
 
14311
 
 
14312
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14313
class CT_MembPtrDeclarator : public CT_Declarator {
 
14314
#line 14315 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14315
  friend class ::CCExprResolve;
 
14316
  friend class ::CExprResolve;
 
14317
  friend class ::WinIfExists;
 
14318
  friend class ::WinImportHandler;
 
14319
  friend class ::WinMacros;
 
14320
  friend class ::WinAsm;
 
14321
  friend class ::WinDeclSpecs;
 
14322
  friend class ::WinMemberExplSpec;
 
14323
  friend class ::WinTypeKeywords;
 
14324
  friend class ::WinFriend;
 
14325
  friend class ::ExtAC;
 
14326
  friend class ::ExtACBuilderCoupling;
 
14327
  friend class ::ExtACSyntaxCoupling;
 
14328
  friend class ::ExtACTree;
 
14329
  friend class ::ExtACKeywords;
 
14330
  friend class ::ExtGnu;
 
14331
  friend class ::PragmaOnceUnitState;
 
14332
  friend class ::PragmaOnce;
 
14333
  friend class ::CMatchSyntax;
 
14334
 
 
14335
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14336
 
 
14337
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
 
14338
 
 
14339
public:
 
14340
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
 
14341
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
14342
    AddSon (sons[3], q); AddSon (sons[4], d); 
 
14343
  }
 
14344
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14345
  static const char *NodeId ();
 
14346
  /** Get the name of the node. Can be compared with NodeId(). */
 
14347
  const char *NodeName () const { return NodeId (); }
 
14348
  /** Get the number of sons. */
 
14349
  int Sons () const { return CTree::Sons (sons, 5); }
 
14350
  /** Get the n-th son.
 
14351
   *  \param n The index of the son.
 
14352
   *  \return The n-th son or NULL. */
 
14353
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
14354
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
14355
  CTree *Declarator () const { return sons[4]; }
 
14356
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
14357
  /** Replace a son.
 
14358
   *  \param old_son The son to replace.
 
14359
   *  \param new_son The new son. */
 
14360
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
14361
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
14362
  }
 
14363
};
 
14364
 
 
14365
 
 
14366
#line 14367 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14367
} // closed Puma
 
14368
class CCExprResolve;
 
14369
class CExprResolve;
 
14370
class WinIfExists;
 
14371
class WinImportHandler;
 
14372
class WinMacros;
 
14373
class WinAsm;
 
14374
class WinDeclSpecs;
 
14375
class WinMemberExplSpec;
 
14376
class WinTypeKeywords;
 
14377
class WinFriend;
 
14378
class ExtAC;
 
14379
class ExtACBuilderCoupling;
 
14380
class ExtACSyntaxCoupling;
 
14381
class ExtACTree;
 
14382
class ExtACKeywords;
 
14383
class ExtGnu;
 
14384
class PragmaOnceUnitState;
 
14385
class PragmaOnce;
 
14386
class CMatchSyntax;
 
14387
namespace Puma {
 
14388
 
 
14389
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14390
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
 
14391
#line 14392 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14392
  friend class ::CCExprResolve;
 
14393
  friend class ::CExprResolve;
 
14394
  friend class ::WinIfExists;
 
14395
  friend class ::WinImportHandler;
 
14396
  friend class ::WinMacros;
 
14397
  friend class ::WinAsm;
 
14398
  friend class ::WinDeclSpecs;
 
14399
  friend class ::WinMemberExplSpec;
 
14400
  friend class ::WinTypeKeywords;
 
14401
  friend class ::WinFriend;
 
14402
  friend class ::ExtAC;
 
14403
  friend class ::ExtACBuilderCoupling;
 
14404
  friend class ::ExtACSyntaxCoupling;
 
14405
  friend class ::ExtACTree;
 
14406
  friend class ::ExtACKeywords;
 
14407
  friend class ::ExtGnu;
 
14408
  friend class ::PragmaOnceUnitState;
 
14409
  friend class ::PragmaOnce;
 
14410
  friend class ::CMatchSyntax;
 
14411
 
 
14412
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14413
 
 
14414
  CTree *sons[3]; // declarator, colon, expr
 
14415
 
 
14416
public:
 
14417
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
 
14418
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
 
14419
  }
 
14420
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14421
  static const char *NodeId ();
 
14422
  /** Get the name of the node. Can be compared with NodeId(). */
 
14423
  const char *NodeName () const { return NodeId (); }
 
14424
  /** Get the number of sons. */
 
14425
  int Sons () const { return CTree::Sons (sons, 3); }
 
14426
  /** Get the n-th son.
 
14427
   *  \param n The index of the son.
 
14428
   *  \return The n-th son or NULL. */
 
14429
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
14430
  CTree *Declarator () const { return sons[0]; }
 
14431
  CTree *Expr () const { return sons[2]; }
 
14432
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
 
14433
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
14434
  /** Replace a son.
 
14435
   *  \param old_son The son to replace.
 
14436
   *  \param new_son The new son. */
 
14437
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
14438
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
14439
  }
 
14440
};
 
14441
 
 
14442
/*****************************************************************************/
 
14443
/*                                                                           */
 
14444
/*                              Statements                                   */
 
14445
/*                                                                           */
 
14446
/*****************************************************************************/
 
14447
 
 
14448
 
 
14449
#line 14450 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14450
} // closed Puma
 
14451
class CCExprResolve;
 
14452
class CExprResolve;
 
14453
class WinIfExists;
 
14454
class WinImportHandler;
 
14455
class WinMacros;
 
14456
class WinAsm;
 
14457
class WinDeclSpecs;
 
14458
class WinMemberExplSpec;
 
14459
class WinTypeKeywords;
 
14460
class WinFriend;
 
14461
class ExtAC;
 
14462
class ExtACBuilderCoupling;
 
14463
class ExtACSyntaxCoupling;
 
14464
class ExtACTree;
 
14465
class ExtACKeywords;
 
14466
class ExtGnu;
 
14467
class PragmaOnceUnitState;
 
14468
class PragmaOnce;
 
14469
class CMatchSyntax;
 
14470
namespace Puma {
 
14471
 
 
14472
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14473
class CT_Statement : public CTree {
 
14474
#line 14475 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14475
  friend class ::CCExprResolve;
 
14476
  friend class ::CExprResolve;
 
14477
  friend class ::WinIfExists;
 
14478
  friend class ::WinImportHandler;
 
14479
  friend class ::WinMacros;
 
14480
  friend class ::WinAsm;
 
14481
  friend class ::WinDeclSpecs;
 
14482
  friend class ::WinMemberExplSpec;
 
14483
  friend class ::WinTypeKeywords;
 
14484
  friend class ::WinFriend;
 
14485
  friend class ::ExtAC;
 
14486
  friend class ::ExtACBuilderCoupling;
 
14487
  friend class ::ExtACSyntaxCoupling;
 
14488
  friend class ::ExtACTree;
 
14489
  friend class ::ExtACKeywords;
 
14490
  friend class ::ExtGnu;
 
14491
  friend class ::PragmaOnceUnitState;
 
14492
  friend class ::PragmaOnce;
 
14493
  friend class ::CMatchSyntax;
 
14494
 
 
14495
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14496
 
 
14497
protected:
 
14498
  CT_Statement () {}
 
14499
  virtual CT_Statement *IsStatement () { return this; }
 
14500
};
 
14501
 
 
14502
 
 
14503
#line 14504 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14504
} // closed Puma
 
14505
class CCExprResolve;
 
14506
class CExprResolve;
 
14507
class WinIfExists;
 
14508
class WinImportHandler;
 
14509
class WinMacros;
 
14510
class WinAsm;
 
14511
class WinDeclSpecs;
 
14512
class WinMemberExplSpec;
 
14513
class WinTypeKeywords;
 
14514
class WinFriend;
 
14515
class ExtAC;
 
14516
class ExtACBuilderCoupling;
 
14517
class ExtACSyntaxCoupling;
 
14518
class ExtACTree;
 
14519
class ExtACKeywords;
 
14520
class ExtGnu;
 
14521
class PragmaOnceUnitState;
 
14522
class PragmaOnce;
 
14523
class CMatchSyntax;
 
14524
namespace Puma {
 
14525
 
 
14526
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14527
class CT_LabelStmt : public CT_Statement {
 
14528
#line 14529 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14529
  friend class ::CCExprResolve;
 
14530
  friend class ::CExprResolve;
 
14531
  friend class ::WinIfExists;
 
14532
  friend class ::WinImportHandler;
 
14533
  friend class ::WinMacros;
 
14534
  friend class ::WinAsm;
 
14535
  friend class ::WinDeclSpecs;
 
14536
  friend class ::WinMemberExplSpec;
 
14537
  friend class ::WinTypeKeywords;
 
14538
  friend class ::WinFriend;
 
14539
  friend class ::ExtAC;
 
14540
  friend class ::ExtACBuilderCoupling;
 
14541
  friend class ::ExtACSyntaxCoupling;
 
14542
  friend class ::ExtACTree;
 
14543
  friend class ::ExtACKeywords;
 
14544
  friend class ::ExtGnu;
 
14545
  friend class ::PragmaOnceUnitState;
 
14546
  friend class ::PragmaOnce;
 
14547
  friend class ::CMatchSyntax;
 
14548
 
 
14549
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14550
 
 
14551
  CTree *sons[3]; // id, colon, stmt
 
14552
 
 
14553
public:
 
14554
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
 
14555
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
 
14556
  }
 
14557
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14558
  static const char *NodeId ();
 
14559
  /** Get the name of the node. Can be compared with NodeId(). */
 
14560
  const char *NodeName () const { return NodeId (); }
 
14561
  /** Get the number of sons. */
 
14562
  int Sons () const { return 3; }
 
14563
  /** Get the n-th son.
 
14564
   *  \param n The index of the son.
 
14565
   *  \return The n-th son or NULL. */
 
14566
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
14567
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
14568
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
14569
  /** Replace a son.
 
14570
   *  \param old_son The son to replace.
 
14571
   *  \param new_son The new son. */
 
14572
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
14573
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
14574
  }
 
14575
};
 
14576
 
 
14577
 
 
14578
#line 14579 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14579
} // closed Puma
 
14580
class CCExprResolve;
 
14581
class CExprResolve;
 
14582
class WinIfExists;
 
14583
class WinImportHandler;
 
14584
class WinMacros;
 
14585
class WinAsm;
 
14586
class WinDeclSpecs;
 
14587
class WinMemberExplSpec;
 
14588
class WinTypeKeywords;
 
14589
class WinFriend;
 
14590
class ExtAC;
 
14591
class ExtACBuilderCoupling;
 
14592
class ExtACSyntaxCoupling;
 
14593
class ExtACTree;
 
14594
class ExtACKeywords;
 
14595
class ExtGnu;
 
14596
class PragmaOnceUnitState;
 
14597
class PragmaOnce;
 
14598
class CMatchSyntax;
 
14599
namespace Puma {
 
14600
 
 
14601
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14602
class CT_DefaultStmt : public CT_Statement {
 
14603
#line 14604 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14604
  friend class ::CCExprResolve;
 
14605
  friend class ::CExprResolve;
 
14606
  friend class ::WinIfExists;
 
14607
  friend class ::WinImportHandler;
 
14608
  friend class ::WinMacros;
 
14609
  friend class ::WinAsm;
 
14610
  friend class ::WinDeclSpecs;
 
14611
  friend class ::WinMemberExplSpec;
 
14612
  friend class ::WinTypeKeywords;
 
14613
  friend class ::WinFriend;
 
14614
  friend class ::ExtAC;
 
14615
  friend class ::ExtACBuilderCoupling;
 
14616
  friend class ::ExtACSyntaxCoupling;
 
14617
  friend class ::ExtACTree;
 
14618
  friend class ::ExtACKeywords;
 
14619
  friend class ::ExtGnu;
 
14620
  friend class ::PragmaOnceUnitState;
 
14621
  friend class ::PragmaOnce;
 
14622
  friend class ::CMatchSyntax;
 
14623
 
 
14624
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14625
 
 
14626
  CTree *sons[3]; // keyword, colon, stmt
 
14627
 
 
14628
public:
 
14629
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
 
14630
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
 
14631
  }
 
14632
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14633
  static const char *NodeId ();
 
14634
  /** Get the name of the node. Can be compared with NodeId(). */
 
14635
  const char *NodeName () const { return NodeId (); }
 
14636
  /** Get the number of sons. */
 
14637
  int Sons () const { return 3; }
 
14638
  /** Get the n-th son.
 
14639
   *  \param n The index of the son.
 
14640
   *  \return The n-th son or NULL. */
 
14641
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
14642
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
14643
  /** Replace a son.
 
14644
   *  \param old_son The son to replace.
 
14645
   *  \param new_son The new son. */
 
14646
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
14647
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
14648
  }
 
14649
};
 
14650
 
 
14651
 
 
14652
#line 14653 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14653
} // closed Puma
 
14654
class CCExprResolve;
 
14655
class CExprResolve;
 
14656
class WinIfExists;
 
14657
class WinImportHandler;
 
14658
class WinMacros;
 
14659
class WinAsm;
 
14660
class WinDeclSpecs;
 
14661
class WinMemberExplSpec;
 
14662
class WinTypeKeywords;
 
14663
class WinFriend;
 
14664
class ExtAC;
 
14665
class ExtACBuilderCoupling;
 
14666
class ExtACSyntaxCoupling;
 
14667
class ExtACTree;
 
14668
class ExtACKeywords;
 
14669
class ExtGnu;
 
14670
class PragmaOnceUnitState;
 
14671
class PragmaOnce;
 
14672
class CMatchSyntax;
 
14673
namespace Puma {
 
14674
 
 
14675
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14676
class CT_TryStmt : public CT_Statement {
 
14677
#line 14678 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14678
  friend class ::CCExprResolve;
 
14679
  friend class ::CExprResolve;
 
14680
  friend class ::WinIfExists;
 
14681
  friend class ::WinImportHandler;
 
14682
  friend class ::WinMacros;
 
14683
  friend class ::WinAsm;
 
14684
  friend class ::WinDeclSpecs;
 
14685
  friend class ::WinMemberExplSpec;
 
14686
  friend class ::WinTypeKeywords;
 
14687
  friend class ::WinFriend;
 
14688
  friend class ::ExtAC;
 
14689
  friend class ::ExtACBuilderCoupling;
 
14690
  friend class ::ExtACSyntaxCoupling;
 
14691
  friend class ::ExtACTree;
 
14692
  friend class ::ExtACKeywords;
 
14693
  friend class ::ExtGnu;
 
14694
  friend class ::PragmaOnceUnitState;
 
14695
  friend class ::PragmaOnce;
 
14696
  friend class ::CMatchSyntax;
 
14697
 
 
14698
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14699
 
 
14700
  CTree *sons[3]; // try, stmt, handlers
 
14701
 
 
14702
public:
 
14703
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
 
14704
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
 
14705
  }
 
14706
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14707
  static const char *NodeId ();
 
14708
  /** Get the name of the node. Can be compared with NodeId(). */
 
14709
  const char *NodeName () const { return NodeId (); }
 
14710
  /** Get the number of sons. */
 
14711
  int Sons () const { return 3; }
 
14712
  /** Get the n-th son.
 
14713
   *  \param n The index of the son.
 
14714
   *  \return The n-th son or NULL. */
 
14715
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
14716
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
 
14717
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
14718
  /** Replace a son.
 
14719
   *  \param old_son The son to replace.
 
14720
   *  \param new_son The new son. */
 
14721
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
14722
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
14723
  }
 
14724
};
 
14725
 
 
14726
 
 
14727
#line 14728 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14728
} // closed Puma
 
14729
class CCExprResolve;
 
14730
class CExprResolve;
 
14731
class WinIfExists;
 
14732
class WinImportHandler;
 
14733
class WinMacros;
 
14734
class WinAsm;
 
14735
class WinDeclSpecs;
 
14736
class WinMemberExplSpec;
 
14737
class WinTypeKeywords;
 
14738
class WinFriend;
 
14739
class ExtAC;
 
14740
class ExtACBuilderCoupling;
 
14741
class ExtACSyntaxCoupling;
 
14742
class ExtACTree;
 
14743
class ExtACKeywords;
 
14744
class ExtGnu;
 
14745
class PragmaOnceUnitState;
 
14746
class PragmaOnce;
 
14747
class CMatchSyntax;
 
14748
namespace Puma {
 
14749
 
 
14750
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14751
class CT_CaseStmt : public CT_Statement {
 
14752
#line 14753 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14753
  friend class ::CCExprResolve;
 
14754
  friend class ::CExprResolve;
 
14755
  friend class ::WinIfExists;
 
14756
  friend class ::WinImportHandler;
 
14757
  friend class ::WinMacros;
 
14758
  friend class ::WinAsm;
 
14759
  friend class ::WinDeclSpecs;
 
14760
  friend class ::WinMemberExplSpec;
 
14761
  friend class ::WinTypeKeywords;
 
14762
  friend class ::WinFriend;
 
14763
  friend class ::ExtAC;
 
14764
  friend class ::ExtACBuilderCoupling;
 
14765
  friend class ::ExtACSyntaxCoupling;
 
14766
  friend class ::ExtACTree;
 
14767
  friend class ::ExtACKeywords;
 
14768
  friend class ::ExtGnu;
 
14769
  friend class ::PragmaOnceUnitState;
 
14770
  friend class ::PragmaOnce;
 
14771
  friend class ::CMatchSyntax;
 
14772
 
 
14773
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14774
 
 
14775
  CTree *sons[4]; // keyword, expr, colon, stmt
 
14776
 
 
14777
public:
 
14778
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
 
14779
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
14780
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
 
14781
  }
 
14782
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14783
  static const char *NodeId ();
 
14784
  /** Get the name of the node. Can be compared with NodeId(). */
 
14785
  const char *NodeName () const { return NodeId (); }
 
14786
  /** Get the number of sons. */
 
14787
  int Sons () const { return 4; }
 
14788
  /** Get the n-th son.
 
14789
   *  \param n The index of the son.
 
14790
   *  \return The n-th son or NULL. */
 
14791
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
14792
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
 
14793
  CTree *Expr () const { return sons[1]; }
 
14794
  /** Replace a son.
 
14795
   *  \param old_son The son to replace.
 
14796
   *  \param new_son The new son. */
 
14797
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
14798
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
14799
  }
 
14800
};
 
14801
 
 
14802
 
 
14803
#line 14804 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14804
} // closed Puma
 
14805
class CCExprResolve;
 
14806
class CExprResolve;
 
14807
class WinIfExists;
 
14808
class WinImportHandler;
 
14809
class WinMacros;
 
14810
class WinAsm;
 
14811
class WinDeclSpecs;
 
14812
class WinMemberExplSpec;
 
14813
class WinTypeKeywords;
 
14814
class WinFriend;
 
14815
class ExtAC;
 
14816
class ExtACBuilderCoupling;
 
14817
class ExtACSyntaxCoupling;
 
14818
class ExtACTree;
 
14819
class ExtACKeywords;
 
14820
class ExtGnu;
 
14821
class PragmaOnceUnitState;
 
14822
class PragmaOnce;
 
14823
class CMatchSyntax;
 
14824
namespace Puma {
 
14825
 
 
14826
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14827
class CT_ExprStmt : public CT_Statement {
 
14828
#line 14829 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14829
  friend class ::CCExprResolve;
 
14830
  friend class ::CExprResolve;
 
14831
  friend class ::WinIfExists;
 
14832
  friend class ::WinImportHandler;
 
14833
  friend class ::WinMacros;
 
14834
  friend class ::WinAsm;
 
14835
  friend class ::WinDeclSpecs;
 
14836
  friend class ::WinMemberExplSpec;
 
14837
  friend class ::WinTypeKeywords;
 
14838
  friend class ::WinFriend;
 
14839
  friend class ::ExtAC;
 
14840
  friend class ::ExtACBuilderCoupling;
 
14841
  friend class ::ExtACSyntaxCoupling;
 
14842
  friend class ::ExtACTree;
 
14843
  friend class ::ExtACKeywords;
 
14844
  friend class ::ExtGnu;
 
14845
  friend class ::PragmaOnceUnitState;
 
14846
  friend class ::PragmaOnce;
 
14847
  friend class ::CMatchSyntax;
 
14848
 
 
14849
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14850
 
 
14851
  CTree *sons[2]; // expr, semi_colon
 
14852
 
 
14853
public:
 
14854
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
14855
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14856
  static const char *NodeId ();
 
14857
  /** Get the name of the node. Can be compared with NodeId(). */
 
14858
  const char *NodeName () const { return NodeId (); }
 
14859
  /** Get the number of sons. */
 
14860
  int Sons () const { return CTree::Sons (sons, 2); }
 
14861
  /** Get the n-th son.
 
14862
   *  \param n The index of the son.
 
14863
   *  \return The n-th son or NULL. */
 
14864
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
14865
  CTree *Expr () const { return sons[0]; }
 
14866
  /** Replace a son.
 
14867
   *  \param old_son The son to replace.
 
14868
   *  \param new_son The new son. */
 
14869
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
14870
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
14871
  }
 
14872
};
 
14873
 
 
14874
 
 
14875
#line 14876 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14876
} // closed Puma
 
14877
class CCExprResolve;
 
14878
class CExprResolve;
 
14879
class WinIfExists;
 
14880
class WinImportHandler;
 
14881
class WinMacros;
 
14882
class WinAsm;
 
14883
class WinDeclSpecs;
 
14884
class WinMemberExplSpec;
 
14885
class WinTypeKeywords;
 
14886
class WinFriend;
 
14887
class ExtAC;
 
14888
class ExtACBuilderCoupling;
 
14889
class ExtACSyntaxCoupling;
 
14890
class ExtACTree;
 
14891
class ExtACKeywords;
 
14892
class ExtGnu;
 
14893
class PragmaOnceUnitState;
 
14894
class PragmaOnce;
 
14895
class CMatchSyntax;
 
14896
namespace Puma {
 
14897
 
 
14898
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14899
class CT_DeclStmt : public CT_Statement {
 
14900
#line 14901 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14901
  friend class ::CCExprResolve;
 
14902
  friend class ::CExprResolve;
 
14903
  friend class ::WinIfExists;
 
14904
  friend class ::WinImportHandler;
 
14905
  friend class ::WinMacros;
 
14906
  friend class ::WinAsm;
 
14907
  friend class ::WinDeclSpecs;
 
14908
  friend class ::WinMemberExplSpec;
 
14909
  friend class ::WinTypeKeywords;
 
14910
  friend class ::WinFriend;
 
14911
  friend class ::ExtAC;
 
14912
  friend class ::ExtACBuilderCoupling;
 
14913
  friend class ::ExtACSyntaxCoupling;
 
14914
  friend class ::ExtACTree;
 
14915
  friend class ::ExtACKeywords;
 
14916
  friend class ::ExtGnu;
 
14917
  friend class ::PragmaOnceUnitState;
 
14918
  friend class ::PragmaOnce;
 
14919
  friend class ::CMatchSyntax;
 
14920
 
 
14921
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14922
 
 
14923
  CTree *_decl;
 
14924
 
 
14925
public:
 
14926
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
14927
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
14928
  static const char *NodeId ();
 
14929
  /** Get the name of the node. Can be compared with NodeId(). */
 
14930
  const char *NodeName () const { return NodeId (); }
 
14931
  /** Get the number of sons. */
 
14932
  int Sons () const { return 1; }
 
14933
  /** Get the n-th son.
 
14934
   *  \param n The index of the son.
 
14935
   *  \return The n-th son or NULL. */
 
14936
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
14937
  /** Replace a son.
 
14938
   *  \param old_son The son to replace.
 
14939
   *  \param new_son The new son. */
 
14940
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
14941
   { CTree::ReplaceSon (_decl, old_son, new_son); }
 
14942
};
 
14943
 
 
14944
 
 
14945
#line 14946 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14946
} // closed Puma
 
14947
class CCExprResolve;
 
14948
class CExprResolve;
 
14949
class WinIfExists;
 
14950
class WinImportHandler;
 
14951
class WinMacros;
 
14952
class WinAsm;
 
14953
class WinDeclSpecs;
 
14954
class WinMemberExplSpec;
 
14955
class WinTypeKeywords;
 
14956
class WinFriend;
 
14957
class ExtAC;
 
14958
class ExtACBuilderCoupling;
 
14959
class ExtACSyntaxCoupling;
 
14960
class ExtACTree;
 
14961
class ExtACKeywords;
 
14962
class ExtGnu;
 
14963
class PragmaOnceUnitState;
 
14964
class PragmaOnce;
 
14965
class CMatchSyntax;
 
14966
namespace Puma {
 
14967
 
 
14968
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14969
class CT_SwitchStmt : public CT_Statement, public CSemScope {
 
14970
#line 14971 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
14971
  friend class ::CCExprResolve;
 
14972
  friend class ::CExprResolve;
 
14973
  friend class ::WinIfExists;
 
14974
  friend class ::WinImportHandler;
 
14975
  friend class ::WinMacros;
 
14976
  friend class ::WinAsm;
 
14977
  friend class ::WinDeclSpecs;
 
14978
  friend class ::WinMemberExplSpec;
 
14979
  friend class ::WinTypeKeywords;
 
14980
  friend class ::WinFriend;
 
14981
  friend class ::ExtAC;
 
14982
  friend class ::ExtACBuilderCoupling;
 
14983
  friend class ::ExtACSyntaxCoupling;
 
14984
  friend class ::ExtACTree;
 
14985
  friend class ::ExtACKeywords;
 
14986
  friend class ::ExtGnu;
 
14987
  friend class ::PragmaOnceUnitState;
 
14988
  friend class ::PragmaOnce;
 
14989
  friend class ::CMatchSyntax;
 
14990
 
 
14991
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14992
 
 
14993
  CTree *sons[5]; // keyword, open, cond, close, stmt
 
14994
 
 
14995
public:
 
14996
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
14997
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
14998
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
14999
  }
 
15000
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
15001
  static const char *NodeId ();
 
15002
  /** Get the name of the node. Can be compared with NodeId(). */
 
15003
  const char *NodeName () const { return NodeId (); }
 
15004
  /** Get the number of sons. */
 
15005
  int Sons () const { return 5; }
 
15006
  /** Get the n-th son.
 
15007
   *  \param n The index of the son.
 
15008
   *  \return The n-th son or NULL. */
 
15009
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
15010
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
15011
  CTree *Condition () const { return sons[2]; }
 
15012
  /** Replace a son.
 
15013
   *  \param old_son The son to replace.
 
15014
   *  \param new_son The new son. */
 
15015
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
15016
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
15017
  }
 
15018
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
15019
};
 
15020
 
 
15021
 
 
15022
#line 15023 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15023
} // closed Puma
 
15024
class CCExprResolve;
 
15025
class CExprResolve;
 
15026
class WinIfExists;
 
15027
class WinImportHandler;
 
15028
class WinMacros;
 
15029
class WinAsm;
 
15030
class WinDeclSpecs;
 
15031
class WinMemberExplSpec;
 
15032
class WinTypeKeywords;
 
15033
class WinFriend;
 
15034
class ExtAC;
 
15035
class ExtACBuilderCoupling;
 
15036
class ExtACSyntaxCoupling;
 
15037
class ExtACTree;
 
15038
class ExtACKeywords;
 
15039
class ExtGnu;
 
15040
class PragmaOnceUnitState;
 
15041
class PragmaOnce;
 
15042
class CMatchSyntax;
 
15043
namespace Puma {
 
15044
 
 
15045
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15046
class CT_IfStmt : public CT_Statement, public CSemScope {
 
15047
#line 15048 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15048
  friend class ::CCExprResolve;
 
15049
  friend class ::CExprResolve;
 
15050
  friend class ::WinIfExists;
 
15051
  friend class ::WinImportHandler;
 
15052
  friend class ::WinMacros;
 
15053
  friend class ::WinAsm;
 
15054
  friend class ::WinDeclSpecs;
 
15055
  friend class ::WinMemberExplSpec;
 
15056
  friend class ::WinTypeKeywords;
 
15057
  friend class ::WinFriend;
 
15058
  friend class ::ExtAC;
 
15059
  friend class ::ExtACBuilderCoupling;
 
15060
  friend class ::ExtACSyntaxCoupling;
 
15061
  friend class ::ExtACTree;
 
15062
  friend class ::ExtACKeywords;
 
15063
  friend class ::ExtGnu;
 
15064
  friend class ::PragmaOnceUnitState;
 
15065
  friend class ::PragmaOnce;
 
15066
  friend class ::CMatchSyntax;
 
15067
 
 
15068
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15069
 
 
15070
  CTree *sons[5]; // keyword, open, cond, close, stmt
 
15071
 
 
15072
public:
 
15073
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
15074
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
15075
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
15076
  }
 
15077
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
15078
  static const char *NodeId ();
 
15079
  /** Get the name of the node. Can be compared with NodeId(). */
 
15080
  const char *NodeName () const { return NodeId (); }
 
15081
  /** Get the number of sons. */
 
15082
  int Sons () const { return 5; }
 
15083
  /** Get the n-th son.
 
15084
   *  \param n The index of the son.
 
15085
   *  \return The n-th son or NULL. */
 
15086
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
15087
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
15088
  CTree *Condition () const { return sons[2]; }
 
15089
  /** Replace a son.
 
15090
   *  \param old_son The son to replace.
 
15091
   *  \param new_son The new son. */
 
15092
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
15093
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
15094
  }
 
15095
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
15096
};
 
15097
 
 
15098
 
 
15099
#line 15100 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15100
} // closed Puma
 
15101
class CCExprResolve;
 
15102
class CExprResolve;
 
15103
class WinIfExists;
 
15104
class WinImportHandler;
 
15105
class WinMacros;
 
15106
class WinAsm;
 
15107
class WinDeclSpecs;
 
15108
class WinMemberExplSpec;
 
15109
class WinTypeKeywords;
 
15110
class WinFriend;
 
15111
class ExtAC;
 
15112
class ExtACBuilderCoupling;
 
15113
class ExtACSyntaxCoupling;
 
15114
class ExtACTree;
 
15115
class ExtACKeywords;
 
15116
class ExtGnu;
 
15117
class PragmaOnceUnitState;
 
15118
class PragmaOnce;
 
15119
class CMatchSyntax;
 
15120
namespace Puma {
 
15121
 
 
15122
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15123
class CT_IfElseStmt : public CT_Statement, public CSemScope {
 
15124
#line 15125 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15125
  friend class ::CCExprResolve;
 
15126
  friend class ::CExprResolve;
 
15127
  friend class ::WinIfExists;
 
15128
  friend class ::WinImportHandler;
 
15129
  friend class ::WinMacros;
 
15130
  friend class ::WinAsm;
 
15131
  friend class ::WinDeclSpecs;
 
15132
  friend class ::WinMemberExplSpec;
 
15133
  friend class ::WinTypeKeywords;
 
15134
  friend class ::WinFriend;
 
15135
  friend class ::ExtAC;
 
15136
  friend class ::ExtACBuilderCoupling;
 
15137
  friend class ::ExtACSyntaxCoupling;
 
15138
  friend class ::ExtACTree;
 
15139
  friend class ::ExtACKeywords;
 
15140
  friend class ::ExtGnu;
 
15141
  friend class ::PragmaOnceUnitState;
 
15142
  friend class ::PragmaOnce;
 
15143
  friend class ::CMatchSyntax;
 
15144
 
 
15145
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15146
 
 
15147
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
 
15148
 
 
15149
public:
 
15150
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
 
15151
                 CTree *is, CTree *e, CTree *es) {
 
15152
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
15153
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
15154
    AddSon (sons[6], es); 
 
15155
  }
 
15156
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
15157
  static const char *NodeId ();
 
15158
  /** Get the name of the node. Can be compared with NodeId(). */
 
15159
  const char *NodeName () const { return NodeId (); }
 
15160
  /** Get the number of sons. */
 
15161
  int Sons () const { return 7; }
 
15162
  /** Get the n-th son.
 
15163
   *  \param n The index of the son.
 
15164
   *  \return The n-th son or NULL. */
 
15165
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
15166
  CTree *Condition () const { return sons[2]; }
 
15167
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
 
15168
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
15169
  /** Replace a son.
 
15170
   *  \param old_son The son to replace.
 
15171
   *  \param new_son The new son. */
 
15172
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
15173
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
15174
  }
 
15175
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
15176
};
 
15177
 
 
15178
 
 
15179
#line 15180 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15180
} // closed Puma
 
15181
class CCExprResolve;
 
15182
class CExprResolve;
 
15183
class WinIfExists;
 
15184
class WinImportHandler;
 
15185
class WinMacros;
 
15186
class WinAsm;
 
15187
class WinDeclSpecs;
 
15188
class WinMemberExplSpec;
 
15189
class WinTypeKeywords;
 
15190
class WinFriend;
 
15191
class ExtAC;
 
15192
class ExtACBuilderCoupling;
 
15193
class ExtACSyntaxCoupling;
 
15194
class ExtACTree;
 
15195
class ExtACKeywords;
 
15196
class ExtGnu;
 
15197
class PragmaOnceUnitState;
 
15198
class PragmaOnce;
 
15199
class CMatchSyntax;
 
15200
namespace Puma {
 
15201
 
 
15202
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15203
class CT_BreakStmt : public CT_Statement {
 
15204
#line 15205 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15205
  friend class ::CCExprResolve;
 
15206
  friend class ::CExprResolve;
 
15207
  friend class ::WinIfExists;
 
15208
  friend class ::WinImportHandler;
 
15209
  friend class ::WinMacros;
 
15210
  friend class ::WinAsm;
 
15211
  friend class ::WinDeclSpecs;
 
15212
  friend class ::WinMemberExplSpec;
 
15213
  friend class ::WinTypeKeywords;
 
15214
  friend class ::WinFriend;
 
15215
  friend class ::ExtAC;
 
15216
  friend class ::ExtACBuilderCoupling;
 
15217
  friend class ::ExtACSyntaxCoupling;
 
15218
  friend class ::ExtACTree;
 
15219
  friend class ::ExtACKeywords;
 
15220
  friend class ::ExtGnu;
 
15221
  friend class ::PragmaOnceUnitState;
 
15222
  friend class ::PragmaOnce;
 
15223
  friend class ::CMatchSyntax;
 
15224
 
 
15225
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15226
 
 
15227
  CTree *sons[2]; // key, semi_colon
 
15228
 
 
15229
public:
 
15230
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
15231
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
15232
  static const char *NodeId ();
 
15233
  /** Get the name of the node. Can be compared with NodeId(). */
 
15234
  const char *NodeName () const { return NodeId (); }
 
15235
  /** Get the number of sons. */
 
15236
  int Sons () const { return 2; }
 
15237
  /** Get the n-th son.
 
15238
   *  \param n The index of the son.
 
15239
   *  \return The n-th son or NULL. */
 
15240
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
15241
  /** Replace a son.
 
15242
   *  \param old_son The son to replace.
 
15243
   *  \param new_son The new son. */
 
15244
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
15245
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
15246
  }
 
15247
};
 
15248
 
 
15249
 
 
15250
#line 15251 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15251
} // closed Puma
 
15252
class CCExprResolve;
 
15253
class CExprResolve;
 
15254
class WinIfExists;
 
15255
class WinImportHandler;
 
15256
class WinMacros;
 
15257
class WinAsm;
 
15258
class WinDeclSpecs;
 
15259
class WinMemberExplSpec;
 
15260
class WinTypeKeywords;
 
15261
class WinFriend;
 
15262
class ExtAC;
 
15263
class ExtACBuilderCoupling;
 
15264
class ExtACSyntaxCoupling;
 
15265
class ExtACTree;
 
15266
class ExtACKeywords;
 
15267
class ExtGnu;
 
15268
class PragmaOnceUnitState;
 
15269
class PragmaOnce;
 
15270
class CMatchSyntax;
 
15271
namespace Puma {
 
15272
 
 
15273
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15274
class CT_ContinueStmt : public CT_Statement {
 
15275
#line 15276 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15276
  friend class ::CCExprResolve;
 
15277
  friend class ::CExprResolve;
 
15278
  friend class ::WinIfExists;
 
15279
  friend class ::WinImportHandler;
 
15280
  friend class ::WinMacros;
 
15281
  friend class ::WinAsm;
 
15282
  friend class ::WinDeclSpecs;
 
15283
  friend class ::WinMemberExplSpec;
 
15284
  friend class ::WinTypeKeywords;
 
15285
  friend class ::WinFriend;
 
15286
  friend class ::ExtAC;
 
15287
  friend class ::ExtACBuilderCoupling;
 
15288
  friend class ::ExtACSyntaxCoupling;
 
15289
  friend class ::ExtACTree;
 
15290
  friend class ::ExtACKeywords;
 
15291
  friend class ::ExtGnu;
 
15292
  friend class ::PragmaOnceUnitState;
 
15293
  friend class ::PragmaOnce;
 
15294
  friend class ::CMatchSyntax;
 
15295
 
 
15296
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15297
 
 
15298
  CTree *sons[2]; // key, semi_colon
 
15299
 
 
15300
public:
 
15301
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
15302
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
15303
  static const char *NodeId ();
 
15304
  /** Get the name of the node. Can be compared with NodeId(). */
 
15305
  const char *NodeName () const { return NodeId (); }
 
15306
  /** Get the number of sons. */
 
15307
  int Sons () const { return 2; }
 
15308
  /** Get the n-th son.
 
15309
   *  \param n The index of the son.
 
15310
   *  \return The n-th son or NULL. */
 
15311
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
15312
  /** Replace a son.
 
15313
   *  \param old_son The son to replace.
 
15314
   *  \param new_son The new son. */
 
15315
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
15316
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
15317
  }
 
15318
};
 
15319
 
 
15320
 
 
15321
#line 15322 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15322
} // closed Puma
 
15323
class CCExprResolve;
 
15324
class CExprResolve;
 
15325
class WinIfExists;
 
15326
class WinImportHandler;
 
15327
class WinMacros;
 
15328
class WinAsm;
 
15329
class WinDeclSpecs;
 
15330
class WinMemberExplSpec;
 
15331
class WinTypeKeywords;
 
15332
class WinFriend;
 
15333
class ExtAC;
 
15334
class ExtACBuilderCoupling;
 
15335
class ExtACSyntaxCoupling;
 
15336
class ExtACTree;
 
15337
class ExtACKeywords;
 
15338
class ExtGnu;
 
15339
class PragmaOnceUnitState;
 
15340
class PragmaOnce;
 
15341
class CMatchSyntax;
 
15342
namespace Puma {
 
15343
 
 
15344
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15345
class CT_GotoStmt : public CT_Statement {
 
15346
#line 15347 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15347
  friend class ::CCExprResolve;
 
15348
  friend class ::CExprResolve;
 
15349
  friend class ::WinIfExists;
 
15350
  friend class ::WinImportHandler;
 
15351
  friend class ::WinMacros;
 
15352
  friend class ::WinAsm;
 
15353
  friend class ::WinDeclSpecs;
 
15354
  friend class ::WinMemberExplSpec;
 
15355
  friend class ::WinTypeKeywords;
 
15356
  friend class ::WinFriend;
 
15357
  friend class ::ExtAC;
 
15358
  friend class ::ExtACBuilderCoupling;
 
15359
  friend class ::ExtACSyntaxCoupling;
 
15360
  friend class ::ExtACTree;
 
15361
  friend class ::ExtACKeywords;
 
15362
  friend class ::ExtGnu;
 
15363
  friend class ::PragmaOnceUnitState;
 
15364
  friend class ::PragmaOnce;
 
15365
  friend class ::CMatchSyntax;
 
15366
 
 
15367
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15368
 
 
15369
  CTree *sons[3]; // key, label, semi_colon
 
15370
 
 
15371
public:
 
15372
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
 
15373
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
 
15374
  }
 
15375
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
15376
  static const char *NodeId ();
 
15377
  /** Get the name of the node. Can be compared with NodeId(). */
 
15378
  const char *NodeName () const { return NodeId (); }
 
15379
  /** Get the number of sons. */
 
15380
  int Sons () const { return 3; }
 
15381
  /** Get the n-th son.
 
15382
   *  \param n The index of the son.
 
15383
   *  \return The n-th son or NULL. */
 
15384
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
15385
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
15386
  /** Replace a son.
 
15387
   *  \param old_son The son to replace.
 
15388
   *  \param new_son The new son. */
 
15389
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
15390
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
15391
  }
 
15392
};
 
15393
 
 
15394
 
 
15395
#line 15396 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15396
} // closed Puma
 
15397
class CCExprResolve;
 
15398
class CExprResolve;
 
15399
class WinIfExists;
 
15400
class WinImportHandler;
 
15401
class WinMacros;
 
15402
class WinAsm;
 
15403
class WinDeclSpecs;
 
15404
class WinMemberExplSpec;
 
15405
class WinTypeKeywords;
 
15406
class WinFriend;
 
15407
class ExtAC;
 
15408
class ExtACBuilderCoupling;
 
15409
class ExtACSyntaxCoupling;
 
15410
class ExtACTree;
 
15411
class ExtACKeywords;
 
15412
class ExtGnu;
 
15413
class PragmaOnceUnitState;
 
15414
class PragmaOnce;
 
15415
class CMatchSyntax;
 
15416
namespace Puma {
 
15417
 
 
15418
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15419
class CT_ReturnStmt : public CT_Statement {
 
15420
#line 15421 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15421
  friend class ::CCExprResolve;
 
15422
  friend class ::CExprResolve;
 
15423
  friend class ::WinIfExists;
 
15424
  friend class ::WinImportHandler;
 
15425
  friend class ::WinMacros;
 
15426
  friend class ::WinAsm;
 
15427
  friend class ::WinDeclSpecs;
 
15428
  friend class ::WinMemberExplSpec;
 
15429
  friend class ::WinTypeKeywords;
 
15430
  friend class ::WinFriend;
 
15431
  friend class ::ExtAC;
 
15432
  friend class ::ExtACBuilderCoupling;
 
15433
  friend class ::ExtACSyntaxCoupling;
 
15434
  friend class ::ExtACTree;
 
15435
  friend class ::ExtACKeywords;
 
15436
  friend class ::ExtGnu;
 
15437
  friend class ::PragmaOnceUnitState;
 
15438
  friend class ::PragmaOnce;
 
15439
  friend class ::CMatchSyntax;
 
15440
 
 
15441
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15442
 
 
15443
  CTree *sons[3]; // key, expr, semi_colon
 
15444
 
 
15445
public:
 
15446
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
 
15447
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
 
15448
  }
 
15449
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
15450
  static const char *NodeId ();
 
15451
  /** Get the name of the node. Can be compared with NodeId(). */
 
15452
  const char *NodeName () const { return NodeId (); }
 
15453
  /** Get the number of sons. */
 
15454
  int Sons () const { return CTree::Sons (sons, 3); }
 
15455
  /** Get the n-th son.
 
15456
   *  \param n The index of the son.
 
15457
   *  \return The n-th son or NULL. */
 
15458
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
15459
  CTree *Expr () const { return sons[1]; }
 
15460
  /** Replace a son.
 
15461
   *  \param old_son The son to replace.
 
15462
   *  \param new_son The new son. */
 
15463
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
15464
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
15465
  }
 
15466
};
 
15467
 
 
15468
 
 
15469
#line 15470 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15470
} // closed Puma
 
15471
class CCExprResolve;
 
15472
class CExprResolve;
 
15473
class WinIfExists;
 
15474
class WinImportHandler;
 
15475
class WinMacros;
 
15476
class WinAsm;
 
15477
class WinDeclSpecs;
 
15478
class WinMemberExplSpec;
 
15479
class WinTypeKeywords;
 
15480
class WinFriend;
 
15481
class ExtAC;
 
15482
class ExtACBuilderCoupling;
 
15483
class ExtACSyntaxCoupling;
 
15484
class ExtACTree;
 
15485
class ExtACKeywords;
 
15486
class ExtGnu;
 
15487
class PragmaOnceUnitState;
 
15488
class PragmaOnce;
 
15489
class CMatchSyntax;
 
15490
namespace Puma {
 
15491
 
 
15492
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15493
class CT_WhileStmt : public CT_Statement, public CSemScope {
 
15494
#line 15495 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15495
  friend class ::CCExprResolve;
 
15496
  friend class ::CExprResolve;
 
15497
  friend class ::WinIfExists;
 
15498
  friend class ::WinImportHandler;
 
15499
  friend class ::WinMacros;
 
15500
  friend class ::WinAsm;
 
15501
  friend class ::WinDeclSpecs;
 
15502
  friend class ::WinMemberExplSpec;
 
15503
  friend class ::WinTypeKeywords;
 
15504
  friend class ::WinFriend;
 
15505
  friend class ::ExtAC;
 
15506
  friend class ::ExtACBuilderCoupling;
 
15507
  friend class ::ExtACSyntaxCoupling;
 
15508
  friend class ::ExtACTree;
 
15509
  friend class ::ExtACKeywords;
 
15510
  friend class ::ExtGnu;
 
15511
  friend class ::PragmaOnceUnitState;
 
15512
  friend class ::PragmaOnce;
 
15513
  friend class ::CMatchSyntax;
 
15514
 
 
15515
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15516
 
 
15517
  CTree *sons[5]; // key, open, cond, close, stmt
 
15518
 
 
15519
public:
 
15520
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
15521
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
15522
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
15523
  }
 
15524
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
15525
  static const char *NodeId ();
 
15526
  /** Get the name of the node. Can be compared with NodeId(). */
 
15527
  const char *NodeName () const { return NodeId (); }
 
15528
  /** Get the number of sons. */
 
15529
  int Sons () const { return 5; }
 
15530
  /** Get the n-th son.
 
15531
   *  \param n The index of the son.
 
15532
   *  \return The n-th son or NULL. */
 
15533
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
15534
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
15535
  CTree *Condition () const { return sons[2]; }
 
15536
  /** Replace a son.
 
15537
   *  \param old_son The son to replace.
 
15538
   *  \param new_son The new son. */
 
15539
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
15540
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
15541
  }
 
15542
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
15543
};
 
15544
 
 
15545
 
 
15546
#line 15547 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15547
} // closed Puma
 
15548
class CCExprResolve;
 
15549
class CExprResolve;
 
15550
class WinIfExists;
 
15551
class WinImportHandler;
 
15552
class WinMacros;
 
15553
class WinAsm;
 
15554
class WinDeclSpecs;
 
15555
class WinMemberExplSpec;
 
15556
class WinTypeKeywords;
 
15557
class WinFriend;
 
15558
class ExtAC;
 
15559
class ExtACBuilderCoupling;
 
15560
class ExtACSyntaxCoupling;
 
15561
class ExtACTree;
 
15562
class ExtACKeywords;
 
15563
class ExtGnu;
 
15564
class PragmaOnceUnitState;
 
15565
class PragmaOnce;
 
15566
class CMatchSyntax;
 
15567
namespace Puma {
 
15568
 
 
15569
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15570
class CT_DoStmt : public CT_Statement {
 
15571
#line 15572 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15572
  friend class ::CCExprResolve;
 
15573
  friend class ::CExprResolve;
 
15574
  friend class ::WinIfExists;
 
15575
  friend class ::WinImportHandler;
 
15576
  friend class ::WinMacros;
 
15577
  friend class ::WinAsm;
 
15578
  friend class ::WinDeclSpecs;
 
15579
  friend class ::WinMemberExplSpec;
 
15580
  friend class ::WinTypeKeywords;
 
15581
  friend class ::WinFriend;
 
15582
  friend class ::ExtAC;
 
15583
  friend class ::ExtACBuilderCoupling;
 
15584
  friend class ::ExtACSyntaxCoupling;
 
15585
  friend class ::ExtACTree;
 
15586
  friend class ::ExtACKeywords;
 
15587
  friend class ::ExtGnu;
 
15588
  friend class ::PragmaOnceUnitState;
 
15589
  friend class ::PragmaOnce;
 
15590
  friend class ::CMatchSyntax;
 
15591
 
 
15592
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15593
 
 
15594
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
 
15595
 
 
15596
public:
 
15597
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
 
15598
             CTree *c, CTree *sc) {
 
15599
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
15600
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
15601
    AddSon (sons[6], sc); 
 
15602
  }
 
15603
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
15604
  static const char *NodeId ();
 
15605
  /** Get the name of the node. Can be compared with NodeId(). */
 
15606
  const char *NodeName () const { return NodeId (); }
 
15607
  /** Get the number of sons. */
 
15608
  int Sons () const { return 7; }
 
15609
  /** Get the n-th son.
 
15610
   *  \param n The index of the son.
 
15611
   *  \return The n-th son or NULL. */
 
15612
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
15613
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
 
15614
  CTree *Expr () const { return sons[4]; }
 
15615
  /** Replace a son.
 
15616
   *  \param old_son The son to replace.
 
15617
   *  \param new_son The new son. */
 
15618
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
15619
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
15620
  }
 
15621
};
 
15622
 
 
15623
 
 
15624
#line 15625 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15625
} // closed Puma
 
15626
class CCExprResolve;
 
15627
class CExprResolve;
 
15628
class WinIfExists;
 
15629
class WinImportHandler;
 
15630
class WinMacros;
 
15631
class WinAsm;
 
15632
class WinDeclSpecs;
 
15633
class WinMemberExplSpec;
 
15634
class WinTypeKeywords;
 
15635
class WinFriend;
 
15636
class ExtAC;
 
15637
class ExtACBuilderCoupling;
 
15638
class ExtACSyntaxCoupling;
 
15639
class ExtACTree;
 
15640
class ExtACKeywords;
 
15641
class ExtGnu;
 
15642
class PragmaOnceUnitState;
 
15643
class PragmaOnce;
 
15644
class CMatchSyntax;
 
15645
namespace Puma {
 
15646
 
 
15647
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15648
class CT_ForStmt : public CT_Statement, public CSemScope {
 
15649
#line 15650 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15650
  friend class ::CCExprResolve;
 
15651
  friend class ::CExprResolve;
 
15652
  friend class ::WinIfExists;
 
15653
  friend class ::WinImportHandler;
 
15654
  friend class ::WinMacros;
 
15655
  friend class ::WinAsm;
 
15656
  friend class ::WinDeclSpecs;
 
15657
  friend class ::WinMemberExplSpec;
 
15658
  friend class ::WinTypeKeywords;
 
15659
  friend class ::WinFriend;
 
15660
  friend class ::ExtAC;
 
15661
  friend class ::ExtACBuilderCoupling;
 
15662
  friend class ::ExtACSyntaxCoupling;
 
15663
  friend class ::ExtACTree;
 
15664
  friend class ::ExtACKeywords;
 
15665
  friend class ::ExtGnu;
 
15666
  friend class ::PragmaOnceUnitState;
 
15667
  friend class ::PragmaOnce;
 
15668
  friend class ::CMatchSyntax;
 
15669
 
 
15670
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15671
 
 
15672
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
 
15673
 
 
15674
public:
 
15675
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
 
15676
              CTree *e, CTree *c, CTree *stmt) {
 
15677
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
15678
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
15679
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
 
15680
  }
 
15681
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
15682
  static const char *NodeId ();
 
15683
  /** Get the name of the node. Can be compared with NodeId(). */
 
15684
  const char *NodeName () const { return NodeId (); }
 
15685
  /** Get the number of sons. */
 
15686
  int Sons () const { return CTree::Sons (sons, 8); }
 
15687
  /** Get the n-th son.
 
15688
   *  \param n The index of the son.
 
15689
   *  \return The n-th son or NULL. */
 
15690
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
 
15691
  CTree *InitStmt () const { return sons[2]; }
 
15692
  CTree *Condition () const { return sons[3]; }
 
15693
  CTree *Expr () const { return sons[5]; }
 
15694
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
15695
  /** Replace a son.
 
15696
   *  \param old_son The son to replace.
 
15697
   *  \param new_son The new son. */
 
15698
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
15699
    CTree::ReplaceSon (sons, 8, old_son, new_son);
 
15700
  }
 
15701
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
15702
};
 
15703
 
 
15704
 
 
15705
#line 15706 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15706
} // closed Puma
 
15707
class CCExprResolve;
 
15708
class CExprResolve;
 
15709
class WinIfExists;
 
15710
class WinImportHandler;
 
15711
class WinMacros;
 
15712
class WinAsm;
 
15713
class WinDeclSpecs;
 
15714
class WinMemberExplSpec;
 
15715
class WinTypeKeywords;
 
15716
class WinFriend;
 
15717
class ExtAC;
 
15718
class ExtACBuilderCoupling;
 
15719
class ExtACSyntaxCoupling;
 
15720
class ExtACTree;
 
15721
class ExtACKeywords;
 
15722
class ExtGnu;
 
15723
class PragmaOnceUnitState;
 
15724
class PragmaOnce;
 
15725
class CMatchSyntax;
 
15726
namespace Puma {
 
15727
 
 
15728
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15729
class CT_Condition : public CT_Decl, public CSemObject {
 
15730
#line 15731 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15731
  friend class ::CCExprResolve;
 
15732
  friend class ::CExprResolve;
 
15733
  friend class ::WinIfExists;
 
15734
  friend class ::WinImportHandler;
 
15735
  friend class ::WinMacros;
 
15736
  friend class ::WinAsm;
 
15737
  friend class ::WinDeclSpecs;
 
15738
  friend class ::WinMemberExplSpec;
 
15739
  friend class ::WinTypeKeywords;
 
15740
  friend class ::WinFriend;
 
15741
  friend class ::ExtAC;
 
15742
  friend class ::ExtACBuilderCoupling;
 
15743
  friend class ::ExtACSyntaxCoupling;
 
15744
  friend class ::ExtACTree;
 
15745
  friend class ::ExtACKeywords;
 
15746
  friend class ::ExtGnu;
 
15747
  friend class ::PragmaOnceUnitState;
 
15748
  friend class ::PragmaOnce;
 
15749
  friend class ::CMatchSyntax;
 
15750
 
 
15751
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15752
 
 
15753
  CTree *sons[3]; // declspecs, declarator, init
 
15754
 
 
15755
public:
 
15756
  CT_Condition (CTree *dsl, CTree *d) {
 
15757
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
 
15758
  }
 
15759
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
15760
  static const char *NodeId ();
 
15761
  /** Get the name of the node. Can be compared with NodeId(). */
 
15762
  const char *NodeName () const { return NodeId (); }
 
15763
  /** Get the number of sons. */
 
15764
  int Sons () const { return CTree::Sons (sons, 3); }
 
15765
  /** Get the n-th son.
 
15766
   *  \param n The index of the son.
 
15767
   *  \return The n-th son or NULL. */
 
15768
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
15769
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
15770
  CTree *Declarator () const { return sons[1]; }
 
15771
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
15772
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
15773
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
15774
  /** Replace a son.
 
15775
   *  \param old_son The son to replace.
 
15776
   *  \param new_son The new son. */
 
15777
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
15778
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
15779
  }
 
15780
};
 
15781
 
 
15782
/*****************************************************************************/
 
15783
/*                                                                           */
 
15784
/*                              Classes                                      */
 
15785
/*                                                                           */
 
15786
/*****************************************************************************/
 
15787
 
 
15788
 
 
15789
#line 15790 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15790
} // closed Puma
 
15791
class CCExprResolve;
 
15792
class CExprResolve;
 
15793
class WinIfExists;
 
15794
class WinImportHandler;
 
15795
class WinMacros;
 
15796
class WinAsm;
 
15797
class WinDeclSpecs;
 
15798
class WinMemberExplSpec;
 
15799
class WinTypeKeywords;
 
15800
class WinFriend;
 
15801
class ExtAC;
 
15802
class ExtACBuilderCoupling;
 
15803
class ExtACSyntaxCoupling;
 
15804
class ExtACTree;
 
15805
class ExtACKeywords;
 
15806
class ExtGnu;
 
15807
class PragmaOnceUnitState;
 
15808
class PragmaOnce;
 
15809
class CMatchSyntax;
 
15810
namespace Puma {
 
15811
 
 
15812
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15813
 
 
15814
#line 15815 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15815
} // closed Puma
 
15816
 
 
15817
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
15818
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
15819
 
 
15820
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15821
// This file is part of PUMA.
 
15822
// Copyright (C) 1999-2003  The PUMA developer team.
 
15823
//                                                                
 
15824
// This program is free software;  you can redistribute it and/or 
 
15825
// modify it under the terms of the GNU General Public License as 
 
15826
// published by the Free Software Foundation; either version 2 of 
 
15827
// the License, or (at your option) any later version.            
 
15828
//                                                                
 
15829
// This program is distributed in the hope that it will be useful,
 
15830
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
15831
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
15832
// GNU General Public License for more details.                   
 
15833
//                                                                
 
15834
// You should have received a copy of the GNU General Public      
 
15835
// License along with this program; if not, write to the Free     
 
15836
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
15837
// MA  02111-1307  USA                                            
 
15838
 
 
15839
#ifndef __ExtACTree_ah__
 
15840
#define __ExtACTree_ah__
 
15841
 
 
15842
// TODO:
 
15843
// this shall be introduced by the ExtAC aspect as soon as the include cycle
 
15844
// problem is solved!
 
15845
 
 
15846
namespace Puma {
 
15847
  class CTree;
 
15848
}
 
15849
 
 
15850
 
 
15851
#line 15852 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15852
class CCExprResolve;
 
15853
class CExprResolve;
 
15854
class WinIfExists;
 
15855
class WinImportHandler;
 
15856
class WinMacros;
 
15857
class WinAsm;
 
15858
class WinDeclSpecs;
 
15859
class WinMemberExplSpec;
 
15860
class WinTypeKeywords;
 
15861
class WinFriend;
 
15862
class ExtAC;
 
15863
class ExtACBuilderCoupling;
 
15864
class ExtACSyntaxCoupling;
 
15865
class ExtACKeywords;
 
15866
class ExtGnu;
 
15867
class PragmaOnceUnitState;
 
15868
class PragmaOnce;
 
15869
class CMatchSyntax;
 
15870
 
 
15871
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15872
class ExtACTree {
 
15873
#line 15874 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15874
 
 
15875
public:
 
15876
  static ExtACTree *aspectof () {
 
15877
    static ExtACTree __instance;
 
15878
    return &__instance;
 
15879
  }
 
15880
  static ExtACTree *aspectOf () {
 
15881
    return aspectof ();
 
15882
  }
 
15883
private:
 
15884
 
 
15885
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15886
 
 
15887
#line 15888 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15888
  friend class ::CCExprResolve;
 
15889
  friend class ::CExprResolve;
 
15890
  friend class ::WinIfExists;
 
15891
  friend class ::WinImportHandler;
 
15892
  friend class ::WinMacros;
 
15893
  friend class ::WinAsm;
 
15894
  friend class ::WinDeclSpecs;
 
15895
  friend class ::WinMemberExplSpec;
 
15896
  friend class ::WinTypeKeywords;
 
15897
  friend class ::WinFriend;
 
15898
  friend class ::ExtAC;
 
15899
  friend class ::ExtACBuilderCoupling;
 
15900
  friend class ::ExtACSyntaxCoupling;
 
15901
  friend class ::ExtACKeywords;
 
15902
  friend class ::ExtGnu;
 
15903
  friend class ::PragmaOnceUnitState;
 
15904
  friend class ::PragmaOnce;
 
15905
  friend class ::CMatchSyntax;
 
15906
 
 
15907
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15908
 
 
15909
  
 
15910
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15911
 
 
15912
  
 
15913
  // implemented in a separate .cc file, because Builder.h is needed!
 
15914
  void delete_tree (Puma::CTree *t);
 
15915
  
 
15916
  
 
15917
#line 44 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15918
 
 
15919
  
 
15920
  
 
15921
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15922
 
 
15923
public: template<class JoinPoint> void __a0_after 
 
15924
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15925
 
 
15926
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15927
(JoinPoint *tjp)
 
15928
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15929
 {
 
15930
#line 15931 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15931
 
 
15932
  typedef typename JoinPoint::That __JP_That;
 
15933
  typedef typename JoinPoint::Target __JP_Target;
 
15934
  typedef typename JoinPoint::Result __JP_Result;
 
15935
 
 
15936
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15937
 
 
15938
    tjp->that ()->_intro_members = 0;
 
15939
    tjp->that ()->_base_intros = 0;
 
15940
  }
 
15941
#line 15942 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15942
 
 
15943
private:
 
15944
 
 
15945
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15946
 
 
15947
  
 
15948
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15949
 
 
15950
public: template<class JoinPoint> void __a1_before 
 
15951
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15952
 
 
15953
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15954
(JoinPoint *tjp)
 
15955
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15956
 {
 
15957
#line 15958 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15958
 
 
15959
  typedef typename JoinPoint::That __JP_That;
 
15960
  typedef typename JoinPoint::Target __JP_Target;
 
15961
  typedef typename JoinPoint::Result __JP_Result;
 
15962
 
 
15963
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15964
 
 
15965
    delete_tree (tjp->that ()->_intro_members);
 
15966
    delete_tree (tjp->that ()->_base_intros);
 
15967
  }
 
15968
#line 15969 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15969
 
 
15970
private:
 
15971
 
 
15972
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15973
 
 
15974
};
 
15975
#line 15976 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
15976
 
 
15977
namespace AC {
 
15978
  template <class JoinPoint>
 
15979
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp) {
 
15980
    ::ExtACTree::aspectof()->__a0_after (tjp);
 
15981
  }
 
15982
  template <class JoinPoint>
 
15983
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp) {
 
15984
    ::ExtACTree::aspectof()->__a1_before (tjp);
 
15985
  }
 
15986
 
15987
 
 
15988
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
15989
 
 
15990
 
 
15991
#endif // __ExtACTree_ah__
 
15992
 
 
15993
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15994
#endif
 
15995
namespace Puma {
 
15996
 
 
15997
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15998
class CT_ClassDef : public CT_Decl, public CSemObject {
 
15999
#line 16000 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16000
  friend class ::CCExprResolve;
 
16001
  friend class ::CExprResolve;
 
16002
  friend class ::WinIfExists;
 
16003
  friend class ::WinImportHandler;
 
16004
  friend class ::WinMacros;
 
16005
  friend class ::WinAsm;
 
16006
  friend class ::WinDeclSpecs;
 
16007
  friend class ::WinMemberExplSpec;
 
16008
  friend class ::WinTypeKeywords;
 
16009
  friend class ::WinFriend;
 
16010
  friend class ::ExtAC;
 
16011
  friend class ::ExtACBuilderCoupling;
 
16012
  friend class ::ExtACSyntaxCoupling;
 
16013
  friend class ::ExtACTree;
 
16014
  friend class ::ExtACKeywords;
 
16015
  friend class ::ExtGnu;
 
16016
  friend class ::PragmaOnceUnitState;
 
16017
  friend class ::PragmaOnce;
 
16018
  friend class ::CMatchSyntax;
 
16019
 
 
16020
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16021
 
 
16022
   
 
16023
#line 16024 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16024
 
 
16025
  struct __ac_wrapper_sons {
 
16026
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
 
16027
    operator A& () { return _data; }
 
16028
    operator A& () const { return (A&)*(::Puma::CTree * *)_data; }
 
16029
    operator const A& () { return _data; }
 
16030
    operator const A& () const { return _data; }
 
16031
    operator void* () { return _data; }
 
16032
    operator void* () const { return (void*)_data; }
 
16033
    operator const void* () { return _data; }
 
16034
    operator const void* () const { return _data; }
 
16035
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
 
16036
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
 
16037
  } sons
 
16038
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16039
 
 
16040
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16041
; // key, name, bases, members
 
16042
  CTree *obj_decl;
 
16043
 
 
16044
public:
 
16045
  
 
16046
#line 16047 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16047
 
 
16048
 
 
16049
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
16050
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
16051
  typedef TResult Result;
 
16052
  typedef TThat   That;
 
16053
  typedef TTarget Target;
 
16054
  enum { ARGS = TArgs::ARGS };
 
16055
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
16056
  static const int JPID = 55;
 
16057
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
16058
  struct Res {
 
16059
    typedef void Type;
 
16060
    typedef void ReferredType;
 
16061
  };
 
16062
 
 
16063
  That *_that;
 
16064
 
 
16065
  inline That *that() {return (That*)_that;}
 
16066
 
 
16067
};
 
16068
 
 
16069
 
 
16070
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16071
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
 
16072
#line 16073 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16073
{
 
16074
  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;
 
16075
    __TJP tjp;
 
16076
  tjp._that =  (__TJP::That*)this;
 
16077
    this->__exec_old_C1(arg0, arg1, arg2);
 
16078
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
16079
  
 
16080
}
 
16081
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
16082
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16083
{
 
16084
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
16085
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
 
16086
  }
 
16087
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
16088
  static const char *NodeId ();
 
16089
  /** Get the name of the node. Can be compared with NodeId(). */
 
16090
  const char *NodeName () const { return NodeId (); }
 
16091
  /** Get the number of sons. */
 
16092
  int Sons () const { return CTree::Sons (sons, 4); }
 
16093
  /** Get the n-th son.
 
16094
   *  \param n The index of the son.
 
16095
   *  \return The n-th son or NULL. */
 
16096
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
16097
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
16098
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
 
16099
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
 
16100
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
 
16101
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
16102
  void Members (CTree *m) { AddSon (sons[3], m); }
 
16103
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
16104
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
16105
  /** Replace a son.
 
16106
   *  \param old_son The son to replace.
 
16107
   *  \param new_son The new son. */
 
16108
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
16109
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
16110
  }
 
16111
   private:
 
16112
 
 
16113
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
16114
 Puma :: CTree * _intro_members ;
 
16115
Puma :: CTree * _base_intros ;
 
16116
public :
 
16117
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
16118
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
16119
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
16120
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
16121
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16122
 
 
16123
#line 16124 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16124
 
 
16125
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
16126
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
16127
  typedef TResult Result;
 
16128
  typedef TThat   That;
 
16129
  typedef TTarget Target;
 
16130
  enum { ARGS = TArgs::ARGS };
 
16131
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
16132
  static const int JPID = 6218;
 
16133
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
16134
  struct Res {
 
16135
    typedef void Type;
 
16136
    typedef void ReferredType;
 
16137
  };
 
16138
 
 
16139
  That *_that;
 
16140
 
 
16141
  inline That *that() {return (That*)_that;}
 
16142
 
 
16143
};
 
16144
 
 
16145
 
 
16146
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16147
 
 
16148
#line 16149 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16149
 
 
16150
public:
 
16151
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) {
 
16152
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
16153
  __TJP tjp;
 
16154
  tjp._that =  (__TJP::That*)this;
 
16155
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
16156
 
 
16157
}
 
16158
 
 
16159
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16160
 
 
16161
#line 16162 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16162
 
 
16163
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
16164
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
16165
  typedef TResult Result;
 
16166
  typedef TThat   That;
 
16167
  typedef TTarget Target;
 
16168
  enum { ARGS = TArgs::ARGS };
 
16169
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
16170
  static const int JPID = 6216;
 
16171
  static const AC::JPType JPTYPE = (AC::JPType)32;
 
16172
  struct Res {
 
16173
    typedef void Type;
 
16174
    typedef void ReferredType;
 
16175
  };
 
16176
 
 
16177
  That *_that;
 
16178
 
 
16179
  inline That *that() {return (That*)_that;}
 
16180
 
 
16181
};
 
16182
 
 
16183
 
 
16184
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16185
 
 
16186
#line 16187 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16187
 
 
16188
public:
 
16189
inline ~CT_ClassDef () {
 
16190
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
16191
  __TJP tjp;
 
16192
  tjp._that =  (__TJP::That*)this;
 
16193
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
 
16194
 
 
16195
}
 
16196
 
 
16197
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16198
};
 
16199
      
 
16200
 
 
16201
#line 16202 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16202
} // closed Puma
 
16203
class CCExprResolve;
 
16204
class CExprResolve;
 
16205
class WinIfExists;
 
16206
class WinImportHandler;
 
16207
class WinMacros;
 
16208
class WinAsm;
 
16209
class WinDeclSpecs;
 
16210
class WinMemberExplSpec;
 
16211
class WinTypeKeywords;
 
16212
class WinFriend;
 
16213
class ExtAC;
 
16214
class ExtACBuilderCoupling;
 
16215
class ExtACSyntaxCoupling;
 
16216
class ExtACTree;
 
16217
class ExtACKeywords;
 
16218
class ExtGnu;
 
16219
class PragmaOnceUnitState;
 
16220
class PragmaOnce;
 
16221
class CMatchSyntax;
 
16222
namespace Puma {
 
16223
 
 
16224
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16225
class CT_UnionDef : public CT_ClassDef {
 
16226
#line 16227 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16227
  friend class ::CCExprResolve;
 
16228
  friend class ::CExprResolve;
 
16229
  friend class ::WinIfExists;
 
16230
  friend class ::WinImportHandler;
 
16231
  friend class ::WinMacros;
 
16232
  friend class ::WinAsm;
 
16233
  friend class ::WinDeclSpecs;
 
16234
  friend class ::WinMemberExplSpec;
 
16235
  friend class ::WinTypeKeywords;
 
16236
  friend class ::WinFriend;
 
16237
  friend class ::ExtAC;
 
16238
  friend class ::ExtACBuilderCoupling;
 
16239
  friend class ::ExtACSyntaxCoupling;
 
16240
  friend class ::ExtACTree;
 
16241
  friend class ::ExtACKeywords;
 
16242
  friend class ::ExtGnu;
 
16243
  friend class ::PragmaOnceUnitState;
 
16244
  friend class ::PragmaOnce;
 
16245
  friend class ::CMatchSyntax;
 
16246
 
 
16247
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16248
 
 
16249
public:
 
16250
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
 
16251
  static const char *NodeId ();
 
16252
  /** Get the name of the node. Can be compared with NodeId(). */
 
16253
  const char *NodeName () const { return NodeId (); }
 
16254
};
 
16255
      
 
16256
 
 
16257
#line 16258 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16258
} // closed Puma
 
16259
class CCExprResolve;
 
16260
class CExprResolve;
 
16261
class WinIfExists;
 
16262
class WinImportHandler;
 
16263
class WinMacros;
 
16264
class WinAsm;
 
16265
class WinDeclSpecs;
 
16266
class WinMemberExplSpec;
 
16267
class WinTypeKeywords;
 
16268
class WinFriend;
 
16269
class ExtAC;
 
16270
class ExtACBuilderCoupling;
 
16271
class ExtACSyntaxCoupling;
 
16272
class ExtACTree;
 
16273
class ExtACKeywords;
 
16274
class ExtGnu;
 
16275
class PragmaOnceUnitState;
 
16276
class PragmaOnce;
 
16277
class CMatchSyntax;
 
16278
namespace Puma {
 
16279
 
 
16280
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16281
class CT_MembList : public CT_DeclList, public CSemScope {
 
16282
#line 16283 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16283
  friend class ::CCExprResolve;
 
16284
  friend class ::CExprResolve;
 
16285
  friend class ::WinIfExists;
 
16286
  friend class ::WinImportHandler;
 
16287
  friend class ::WinMacros;
 
16288
  friend class ::WinAsm;
 
16289
  friend class ::WinDeclSpecs;
 
16290
  friend class ::WinMemberExplSpec;
 
16291
  friend class ::WinTypeKeywords;
 
16292
  friend class ::WinFriend;
 
16293
  friend class ::ExtAC;
 
16294
  friend class ::ExtACBuilderCoupling;
 
16295
  friend class ::ExtACSyntaxCoupling;
 
16296
  friend class ::ExtACTree;
 
16297
  friend class ::ExtACKeywords;
 
16298
  friend class ::ExtGnu;
 
16299
  friend class ::PragmaOnceUnitState;
 
16300
  friend class ::PragmaOnce;
 
16301
  friend class ::CMatchSyntax;
 
16302
 
 
16303
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16304
 
 
16305
public:
 
16306
  CT_MembList (int size = 10, int incr = 10) : 
 
16307
    CT_DeclList (size, incr) {}
 
16308
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
16309
  static const char *NodeId ();
 
16310
  /** Get the name of the node. Can be compared with NodeId(). */
 
16311
  const char *NodeName () const { return NodeId (); }
 
16312
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
16313
};
 
16314
 
 
16315
 
 
16316
#line 16317 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16317
} // closed Puma
 
16318
class CCExprResolve;
 
16319
class CExprResolve;
 
16320
class WinIfExists;
 
16321
class WinImportHandler;
 
16322
class WinMacros;
 
16323
class WinAsm;
 
16324
class WinDeclSpecs;
 
16325
class WinMemberExplSpec;
 
16326
class WinTypeKeywords;
 
16327
class WinFriend;
 
16328
class ExtAC;
 
16329
class ExtACBuilderCoupling;
 
16330
class ExtACSyntaxCoupling;
 
16331
class ExtACTree;
 
16332
class ExtACKeywords;
 
16333
class ExtGnu;
 
16334
class PragmaOnceUnitState;
 
16335
class PragmaOnce;
 
16336
class CMatchSyntax;
 
16337
namespace Puma {
 
16338
 
 
16339
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16340
class CT_MembInitList : public CT_List, public CSemScope {
 
16341
#line 16342 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16342
  friend class ::CCExprResolve;
 
16343
  friend class ::CExprResolve;
 
16344
  friend class ::WinIfExists;
 
16345
  friend class ::WinImportHandler;
 
16346
  friend class ::WinMacros;
 
16347
  friend class ::WinAsm;
 
16348
  friend class ::WinDeclSpecs;
 
16349
  friend class ::WinMemberExplSpec;
 
16350
  friend class ::WinTypeKeywords;
 
16351
  friend class ::WinFriend;
 
16352
  friend class ::ExtAC;
 
16353
  friend class ::ExtACBuilderCoupling;
 
16354
  friend class ::ExtACSyntaxCoupling;
 
16355
  friend class ::ExtACTree;
 
16356
  friend class ::ExtACKeywords;
 
16357
  friend class ::ExtGnu;
 
16358
  friend class ::PragmaOnceUnitState;
 
16359
  friend class ::PragmaOnce;
 
16360
  friend class ::CMatchSyntax;
 
16361
 
 
16362
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16363
 
 
16364
public:
 
16365
  CT_MembInitList (int size = 2) : 
 
16366
    CT_List (size, 2, CT_List::OPEN) {}
 
16367
  static const char *NodeId ();
 
16368
  /** Get the name of the node. Can be compared with NodeId(). */
 
16369
  const char *NodeName () const { return NodeId (); }
 
16370
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
16371
};
 
16372
 
 
16373
 
 
16374
#line 16375 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16375
} // closed Puma
 
16376
class CCExprResolve;
 
16377
class CExprResolve;
 
16378
class WinIfExists;
 
16379
class WinImportHandler;
 
16380
class WinMacros;
 
16381
class WinAsm;
 
16382
class WinDeclSpecs;
 
16383
class WinMemberExplSpec;
 
16384
class WinTypeKeywords;
 
16385
class WinFriend;
 
16386
class ExtAC;
 
16387
class ExtACBuilderCoupling;
 
16388
class ExtACSyntaxCoupling;
 
16389
class ExtACTree;
 
16390
class ExtACKeywords;
 
16391
class ExtGnu;
 
16392
class PragmaOnceUnitState;
 
16393
class PragmaOnce;
 
16394
class CMatchSyntax;
 
16395
namespace Puma {
 
16396
 
 
16397
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16398
 
 
16399
#line 16400 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16400
} // closed Puma
 
16401
 
 
16402
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
16403
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
16404
#include "CCExprResolveH.ah"
 
16405
#endif
 
16406
namespace Puma {
 
16407
 
 
16408
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16409
 
 
16410
#line 16411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16411
} // closed Puma
 
16412
 
 
16413
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
16414
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
16415
#include "CExprResolveH.ah"
 
16416
#endif
 
16417
namespace Puma {
 
16418
 
 
16419
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16420
class CT_MembInit : public CT_Expression, public CSemObject {
 
16421
#line 16422 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16422
  friend class ::CCExprResolve;
 
16423
  friend class ::CExprResolve;
 
16424
  friend class ::WinIfExists;
 
16425
  friend class ::WinImportHandler;
 
16426
  friend class ::WinMacros;
 
16427
  friend class ::WinAsm;
 
16428
  friend class ::WinDeclSpecs;
 
16429
  friend class ::WinMemberExplSpec;
 
16430
  friend class ::WinTypeKeywords;
 
16431
  friend class ::WinFriend;
 
16432
  friend class ::ExtAC;
 
16433
  friend class ::ExtACBuilderCoupling;
 
16434
  friend class ::ExtACSyntaxCoupling;
 
16435
  friend class ::ExtACTree;
 
16436
  friend class ::ExtACKeywords;
 
16437
  friend class ::ExtGnu;
 
16438
  friend class ::PragmaOnceUnitState;
 
16439
  friend class ::PragmaOnce;
 
16440
  friend class ::CMatchSyntax;
 
16441
 
 
16442
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16443
 
 
16444
  CTree *sons[2]; // name, init
 
16445
 
 
16446
public:
 
16447
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
16448
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
16449
  static const char *NodeId ();
 
16450
  /** Get the name of the node. Can be compared with NodeId(). */
 
16451
  const char *NodeName () const { return NodeId (); }
 
16452
  /** Get the number of sons. */
 
16453
  int Sons () const { return 2; }
 
16454
  /** Get the n-th son.
 
16455
   *  \param n The index of the son.
 
16456
   *  \return The n-th son or NULL. */
 
16457
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
16458
  /** Replace a son.
 
16459
   *  \param old_son The son to replace.
 
16460
   *  \param new_son The new son. */
 
16461
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
16462
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
16463
  }
 
16464
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
16465
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
16466
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
16467
   private:
 
16468
  typedef CT_MembInit CCExprResolveExpr;
 
16469
 
 
16470
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
16471
 public :
 
16472
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
16473
  typedef CT_MembInit CExprResolveExpr;
 
16474
 
 
16475
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
16476
 public :
 
16477
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
16478
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16479
};
 
16480
 
 
16481
 
 
16482
#line 16483 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16483
} // closed Puma
 
16484
class CCExprResolve;
 
16485
class CExprResolve;
 
16486
class WinIfExists;
 
16487
class WinImportHandler;
 
16488
class WinMacros;
 
16489
class WinAsm;
 
16490
class WinDeclSpecs;
 
16491
class WinMemberExplSpec;
 
16492
class WinTypeKeywords;
 
16493
class WinFriend;
 
16494
class ExtAC;
 
16495
class ExtACBuilderCoupling;
 
16496
class ExtACSyntaxCoupling;
 
16497
class ExtACTree;
 
16498
class ExtACKeywords;
 
16499
class ExtGnu;
 
16500
class PragmaOnceUnitState;
 
16501
class PragmaOnce;
 
16502
class CMatchSyntax;
 
16503
namespace Puma {
 
16504
 
 
16505
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16506
class CT_BaseSpecList : public CT_List {
 
16507
#line 16508 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16508
  friend class ::CCExprResolve;
 
16509
  friend class ::CExprResolve;
 
16510
  friend class ::WinIfExists;
 
16511
  friend class ::WinImportHandler;
 
16512
  friend class ::WinMacros;
 
16513
  friend class ::WinAsm;
 
16514
  friend class ::WinDeclSpecs;
 
16515
  friend class ::WinMemberExplSpec;
 
16516
  friend class ::WinTypeKeywords;
 
16517
  friend class ::WinFriend;
 
16518
  friend class ::ExtAC;
 
16519
  friend class ::ExtACBuilderCoupling;
 
16520
  friend class ::ExtACSyntaxCoupling;
 
16521
  friend class ::ExtACTree;
 
16522
  friend class ::ExtACKeywords;
 
16523
  friend class ::ExtGnu;
 
16524
  friend class ::PragmaOnceUnitState;
 
16525
  friend class ::PragmaOnce;
 
16526
  friend class ::CMatchSyntax;
 
16527
 
 
16528
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16529
 
 
16530
public:
 
16531
  CT_BaseSpecList (int size = 2) : 
 
16532
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
16533
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
16534
  static const char *NodeId ();
 
16535
  /** Get the name of the node. Can be compared with NodeId(). */
 
16536
  const char *NodeName () const { return NodeId (); }
 
16537
};
 
16538
 
 
16539
 
 
16540
#line 16541 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16541
} // closed Puma
 
16542
class CCExprResolve;
 
16543
class CExprResolve;
 
16544
class WinIfExists;
 
16545
class WinImportHandler;
 
16546
class WinMacros;
 
16547
class WinAsm;
 
16548
class WinDeclSpecs;
 
16549
class WinMemberExplSpec;
 
16550
class WinTypeKeywords;
 
16551
class WinFriend;
 
16552
class ExtAC;
 
16553
class ExtACBuilderCoupling;
 
16554
class ExtACSyntaxCoupling;
 
16555
class ExtACTree;
 
16556
class ExtACKeywords;
 
16557
class ExtGnu;
 
16558
class PragmaOnceUnitState;
 
16559
class PragmaOnce;
 
16560
class CMatchSyntax;
 
16561
namespace Puma {
 
16562
 
 
16563
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16564
class CT_AccessSpec : public CTree {
 
16565
#line 16566 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16566
  friend class ::CCExprResolve;
 
16567
  friend class ::CExprResolve;
 
16568
  friend class ::WinIfExists;
 
16569
  friend class ::WinImportHandler;
 
16570
  friend class ::WinMacros;
 
16571
  friend class ::WinAsm;
 
16572
  friend class ::WinDeclSpecs;
 
16573
  friend class ::WinMemberExplSpec;
 
16574
  friend class ::WinTypeKeywords;
 
16575
  friend class ::WinFriend;
 
16576
  friend class ::ExtAC;
 
16577
  friend class ::ExtACBuilderCoupling;
 
16578
  friend class ::ExtACSyntaxCoupling;
 
16579
  friend class ::ExtACTree;
 
16580
  friend class ::ExtACKeywords;
 
16581
  friend class ::ExtGnu;
 
16582
  friend class ::PragmaOnceUnitState;
 
16583
  friend class ::PragmaOnce;
 
16584
  friend class ::CMatchSyntax;
 
16585
 
 
16586
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16587
 
 
16588
  CTree *sons[2]; // access, colon
 
16589
 
 
16590
public:
 
16591
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
16592
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
16593
  static const char *NodeId ();
 
16594
  /** Get the name of the node. Can be compared with NodeId(). */
 
16595
  const char *NodeName () const { return NodeId (); }
 
16596
  /** Get the number of sons. */
 
16597
  int Sons () const { return 2; }
 
16598
  /** Get the n-th son.
 
16599
   *  \param n The index of the son.
 
16600
   *  \return The n-th son or NULL. */
 
16601
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
16602
  int Access () const { return sons[0]->token ()->type (); }
 
16603
  /** Replace a son.
 
16604
   *  \param old_son The son to replace.
 
16605
   *  \param new_son The new son. */
 
16606
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
16607
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
16608
  }
 
16609
};
 
16610
 
 
16611
 
 
16612
#line 16613 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16613
} // closed Puma
 
16614
class CCExprResolve;
 
16615
class CExprResolve;
 
16616
class WinIfExists;
 
16617
class WinImportHandler;
 
16618
class WinMacros;
 
16619
class WinAsm;
 
16620
class WinDeclSpecs;
 
16621
class WinMemberExplSpec;
 
16622
class WinTypeKeywords;
 
16623
class WinFriend;
 
16624
class ExtAC;
 
16625
class ExtACBuilderCoupling;
 
16626
class ExtACSyntaxCoupling;
 
16627
class ExtACTree;
 
16628
class ExtACKeywords;
 
16629
class ExtGnu;
 
16630
class PragmaOnceUnitState;
 
16631
class PragmaOnce;
 
16632
class CMatchSyntax;
 
16633
namespace Puma {
 
16634
 
 
16635
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16636
class CT_BaseSpec : public CTree {
 
16637
#line 16638 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16638
  friend class ::CCExprResolve;
 
16639
  friend class ::CExprResolve;
 
16640
  friend class ::WinIfExists;
 
16641
  friend class ::WinImportHandler;
 
16642
  friend class ::WinMacros;
 
16643
  friend class ::WinAsm;
 
16644
  friend class ::WinDeclSpecs;
 
16645
  friend class ::WinMemberExplSpec;
 
16646
  friend class ::WinTypeKeywords;
 
16647
  friend class ::WinFriend;
 
16648
  friend class ::ExtAC;
 
16649
  friend class ::ExtACBuilderCoupling;
 
16650
  friend class ::ExtACSyntaxCoupling;
 
16651
  friend class ::ExtACTree;
 
16652
  friend class ::ExtACKeywords;
 
16653
  friend class ::ExtGnu;
 
16654
  friend class ::PragmaOnceUnitState;
 
16655
  friend class ::PragmaOnce;
 
16656
  friend class ::CMatchSyntax;
 
16657
 
 
16658
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16659
 
 
16660
  CTree *sons[3]; // virtual, access, name
 
16661
 
 
16662
public:
 
16663
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
 
16664
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
 
16665
  }
 
16666
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
16667
  static const char *NodeId ();
 
16668
  /** Get the name of the node. Can be compared with NodeId(). */
 
16669
  const char *NodeName () const { return NodeId (); }
 
16670
  /** Get the number of sons. */
 
16671
  int Sons () const { return CTree::Sons (sons, 3); }
 
16672
  /** Get the n-th son.
 
16673
   *  \param n The index of the son.
 
16674
   *  \return The n-th son or NULL. */
 
16675
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
16676
  int Access () const { return sons[1]->token ()->type (); }
 
16677
  CTree *AccessSpec () const { return sons[1]; }
 
16678
  CTree *Virtual () const { return sons[0]; }
 
16679
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
16680
  /** Replace a son.
 
16681
   *  \param old_son The son to replace.
 
16682
   *  \param new_son The new son. */
 
16683
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
16684
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
16685
  }
 
16686
};
 
16687
 
 
16688
 
 
16689
#line 16690 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16690
} // closed Puma
 
16691
class CCExprResolve;
 
16692
class CExprResolve;
 
16693
class WinIfExists;
 
16694
class WinImportHandler;
 
16695
class WinMacros;
 
16696
class WinAsm;
 
16697
class WinDeclSpecs;
 
16698
class WinMemberExplSpec;
 
16699
class WinTypeKeywords;
 
16700
class WinFriend;
 
16701
class ExtAC;
 
16702
class ExtACBuilderCoupling;
 
16703
class ExtACSyntaxCoupling;
 
16704
class ExtACTree;
 
16705
class ExtACKeywords;
 
16706
class ExtGnu;
 
16707
class PragmaOnceUnitState;
 
16708
class PragmaOnce;
 
16709
class CMatchSyntax;
 
16710
namespace Puma {
 
16711
 
 
16712
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16713
class CT_AccessDecl : public CT_Decl {
 
16714
#line 16715 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16715
  friend class ::CCExprResolve;
 
16716
  friend class ::CExprResolve;
 
16717
  friend class ::WinIfExists;
 
16718
  friend class ::WinImportHandler;
 
16719
  friend class ::WinMacros;
 
16720
  friend class ::WinAsm;
 
16721
  friend class ::WinDeclSpecs;
 
16722
  friend class ::WinMemberExplSpec;
 
16723
  friend class ::WinTypeKeywords;
 
16724
  friend class ::WinFriend;
 
16725
  friend class ::ExtAC;
 
16726
  friend class ::ExtACBuilderCoupling;
 
16727
  friend class ::ExtACSyntaxCoupling;
 
16728
  friend class ::ExtACTree;
 
16729
  friend class ::ExtACKeywords;
 
16730
  friend class ::ExtGnu;
 
16731
  friend class ::PragmaOnceUnitState;
 
16732
  friend class ::PragmaOnce;
 
16733
  friend class ::CMatchSyntax;
 
16734
 
 
16735
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16736
 
 
16737
  CTree *sons[2]; // name, semi_colon
 
16738
 
 
16739
public:
 
16740
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
16741
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
16742
  static const char *NodeId ();
 
16743
  /** Get the name of the node. Can be compared with NodeId(). */
 
16744
  const char *NodeName () const { return NodeId (); }
 
16745
  /** Get the number of sons. */
 
16746
  int Sons () const { return 2; }
 
16747
  /** Get the n-th son.
 
16748
   *  \param n The index of the son.
 
16749
   *  \return The n-th son or NULL. */
 
16750
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
16751
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
16752
  /** Replace a son.
 
16753
   *  \param old_son The son to replace.
 
16754
   *  \param new_son The new son. */
 
16755
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
16756
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
16757
  }
 
16758
};
 
16759
 
 
16760
 
 
16761
#line 16762 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16762
} // closed Puma
 
16763
class CCExprResolve;
 
16764
class CExprResolve;
 
16765
class WinIfExists;
 
16766
class WinImportHandler;
 
16767
class WinMacros;
 
16768
class WinAsm;
 
16769
class WinDeclSpecs;
 
16770
class WinMemberExplSpec;
 
16771
class WinTypeKeywords;
 
16772
class WinFriend;
 
16773
class ExtAC;
 
16774
class ExtACBuilderCoupling;
 
16775
class ExtACSyntaxCoupling;
 
16776
class ExtACTree;
 
16777
class ExtACKeywords;
 
16778
class ExtGnu;
 
16779
class PragmaOnceUnitState;
 
16780
class PragmaOnce;
 
16781
class CMatchSyntax;
 
16782
namespace Puma {
 
16783
 
 
16784
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16785
class CT_UsingDecl : public CT_AccessDecl {
 
16786
#line 16787 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16787
  friend class ::CCExprResolve;
 
16788
  friend class ::CExprResolve;
 
16789
  friend class ::WinIfExists;
 
16790
  friend class ::WinImportHandler;
 
16791
  friend class ::WinMacros;
 
16792
  friend class ::WinAsm;
 
16793
  friend class ::WinDeclSpecs;
 
16794
  friend class ::WinMemberExplSpec;
 
16795
  friend class ::WinTypeKeywords;
 
16796
  friend class ::WinFriend;
 
16797
  friend class ::ExtAC;
 
16798
  friend class ::ExtACBuilderCoupling;
 
16799
  friend class ::ExtACSyntaxCoupling;
 
16800
  friend class ::ExtACTree;
 
16801
  friend class ::ExtACKeywords;
 
16802
  friend class ::ExtGnu;
 
16803
  friend class ::PragmaOnceUnitState;
 
16804
  friend class ::PragmaOnce;
 
16805
  friend class ::CMatchSyntax;
 
16806
 
 
16807
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16808
 
 
16809
  CTree *sons[2]; // using, typename
 
16810
 
 
16811
public:
 
16812
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
 
16813
    AddSon (sons[0], u); AddSon (sons[1], 0); 
 
16814
  }
 
16815
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
 
16816
    AddSon (sons[0], u); AddSon (sons[1], t); 
 
16817
  }
 
16818
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
16819
  static const char *NodeId ();
 
16820
  /** Get the name of the node. Can be compared with NodeId(). */
 
16821
  const char *NodeName () const { return NodeId (); }
 
16822
  /** Get the number of sons. */
 
16823
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
16824
  /** Get the n-th son.
 
16825
   *  \param n The index of the son.
 
16826
   *  \return The n-th son or NULL. */
 
16827
  CTree *Son (int n) const {
 
16828
    int num = CTree::Sons (sons, 2);
 
16829
    CTree *result = CTree::Son (sons, 2, n);
 
16830
    return result ? result : CT_AccessDecl::Son (n-num);
 
16831
  }
 
16832
  CTree *Typename () const { return sons[1]; }
 
16833
  /** Replace a son.
 
16834
   *  \param old_son The son to replace.
 
16835
   *  \param new_son The new son. */
 
16836
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
16837
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
16838
    CT_AccessDecl::ReplaceSon (old_son, new_son);
 
16839
  }
 
16840
};
 
16841
 
 
16842
/*****************************************************************************/
 
16843
/*                                                                           */
 
16844
/*                              Wildcards                                    */
 
16845
/*                                                                           */
 
16846
/*****************************************************************************/
 
16847
 
 
16848
 
 
16849
#line 16850 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16850
} // closed Puma
 
16851
class CCExprResolve;
 
16852
class CExprResolve;
 
16853
class WinIfExists;
 
16854
class WinImportHandler;
 
16855
class WinMacros;
 
16856
class WinAsm;
 
16857
class WinDeclSpecs;
 
16858
class WinMemberExplSpec;
 
16859
class WinTypeKeywords;
 
16860
class WinFriend;
 
16861
class ExtAC;
 
16862
class ExtACBuilderCoupling;
 
16863
class ExtACSyntaxCoupling;
 
16864
class ExtACTree;
 
16865
class ExtACKeywords;
 
16866
class ExtGnu;
 
16867
class PragmaOnceUnitState;
 
16868
class PragmaOnce;
 
16869
class CMatchSyntax;
 
16870
namespace Puma {
 
16871
 
 
16872
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16873
class CT_Any : public CTree {
 
16874
#line 16875 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16875
  friend class ::CCExprResolve;
 
16876
  friend class ::CExprResolve;
 
16877
  friend class ::WinIfExists;
 
16878
  friend class ::WinImportHandler;
 
16879
  friend class ::WinMacros;
 
16880
  friend class ::WinAsm;
 
16881
  friend class ::WinDeclSpecs;
 
16882
  friend class ::WinMemberExplSpec;
 
16883
  friend class ::WinTypeKeywords;
 
16884
  friend class ::WinFriend;
 
16885
  friend class ::ExtAC;
 
16886
  friend class ::ExtACBuilderCoupling;
 
16887
  friend class ::ExtACSyntaxCoupling;
 
16888
  friend class ::ExtACTree;
 
16889
  friend class ::ExtACKeywords;
 
16890
  friend class ::ExtGnu;
 
16891
  friend class ::PragmaOnceUnitState;
 
16892
  friend class ::PragmaOnce;
 
16893
  friend class ::CMatchSyntax;
 
16894
 
 
16895
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16896
 
 
16897
  CTree *sons[2]; // keyword, extension
 
16898
 
 
16899
public:
 
16900
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
16901
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
16902
  static const char *NodeId ();
 
16903
  /** Get the name of the node. Can be compared with NodeId(). */
 
16904
  const char *NodeName () const { return NodeId (); }
 
16905
  /** Get the number of sons. */
 
16906
  int Sons () const { return CTree::Sons (sons, 2); }
 
16907
  /** Get the n-th son.
 
16908
   *  \param n The index of the son.
 
16909
   *  \return The n-th son or NULL. */
 
16910
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
16911
  /** Replace a son.
 
16912
   *  \param old_son The son to replace.
 
16913
   *  \param new_son The new son. */
 
16914
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
16915
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
16916
  }
 
16917
  int AnyType () const { return sons[0]->token ()->type (); }
 
16918
  CT_AnyExtension *Extension () const { return (CT_AnyExtension*)sons[1]; }
 
16919
};
 
16920
 
 
16921
 
 
16922
#line 16923 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16923
} // closed Puma
 
16924
class CCExprResolve;
 
16925
class CExprResolve;
 
16926
class WinIfExists;
 
16927
class WinImportHandler;
 
16928
class WinMacros;
 
16929
class WinAsm;
 
16930
class WinDeclSpecs;
 
16931
class WinMemberExplSpec;
 
16932
class WinTypeKeywords;
 
16933
class WinFriend;
 
16934
class ExtAC;
 
16935
class ExtACBuilderCoupling;
 
16936
class ExtACSyntaxCoupling;
 
16937
class ExtACTree;
 
16938
class ExtACKeywords;
 
16939
class ExtGnu;
 
16940
class PragmaOnceUnitState;
 
16941
class PragmaOnce;
 
16942
class CMatchSyntax;
 
16943
namespace Puma {
 
16944
 
 
16945
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16946
class CT_AnyList : public CT_Any {
 
16947
#line 16948 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16948
  friend class ::CCExprResolve;
 
16949
  friend class ::CExprResolve;
 
16950
  friend class ::WinIfExists;
 
16951
  friend class ::WinImportHandler;
 
16952
  friend class ::WinMacros;
 
16953
  friend class ::WinAsm;
 
16954
  friend class ::WinDeclSpecs;
 
16955
  friend class ::WinMemberExplSpec;
 
16956
  friend class ::WinTypeKeywords;
 
16957
  friend class ::WinFriend;
 
16958
  friend class ::ExtAC;
 
16959
  friend class ::ExtACBuilderCoupling;
 
16960
  friend class ::ExtACSyntaxCoupling;
 
16961
  friend class ::ExtACTree;
 
16962
  friend class ::ExtACKeywords;
 
16963
  friend class ::ExtGnu;
 
16964
  friend class ::PragmaOnceUnitState;
 
16965
  friend class ::PragmaOnce;
 
16966
  friend class ::CMatchSyntax;
 
16967
 
 
16968
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16969
 
 
16970
public:
 
16971
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
16972
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
16973
  static const char *NodeId ();
 
16974
  /** Get the name of the node. Can be compared with NodeId(). */
 
16975
  const char *NodeName () const { return NodeId (); }
 
16976
};
 
16977
 
 
16978
 
 
16979
#line 16980 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
16980
} // closed Puma
 
16981
class CCExprResolve;
 
16982
class CExprResolve;
 
16983
class WinIfExists;
 
16984
class WinImportHandler;
 
16985
class WinMacros;
 
16986
class WinAsm;
 
16987
class WinDeclSpecs;
 
16988
class WinMemberExplSpec;
 
16989
class WinTypeKeywords;
 
16990
class WinFriend;
 
16991
class ExtAC;
 
16992
class ExtACBuilderCoupling;
 
16993
class ExtACSyntaxCoupling;
 
16994
class ExtACTree;
 
16995
class ExtACKeywords;
 
16996
class ExtGnu;
 
16997
class PragmaOnceUnitState;
 
16998
class PragmaOnce;
 
16999
class CMatchSyntax;
 
17000
namespace Puma {
 
17001
 
 
17002
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17003
class CT_AnyExtension : public CTree, public CSemValue {
 
17004
#line 17005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
17005
  friend class ::CCExprResolve;
 
17006
  friend class ::CExprResolve;
 
17007
  friend class ::WinIfExists;
 
17008
  friend class ::WinImportHandler;
 
17009
  friend class ::WinMacros;
 
17010
  friend class ::WinAsm;
 
17011
  friend class ::WinDeclSpecs;
 
17012
  friend class ::WinMemberExplSpec;
 
17013
  friend class ::WinTypeKeywords;
 
17014
  friend class ::WinFriend;
 
17015
  friend class ::ExtAC;
 
17016
  friend class ::ExtACBuilderCoupling;
 
17017
  friend class ::ExtACSyntaxCoupling;
 
17018
  friend class ::ExtACTree;
 
17019
  friend class ::ExtACKeywords;
 
17020
  friend class ::ExtGnu;
 
17021
  friend class ::PragmaOnceUnitState;
 
17022
  friend class ::PragmaOnce;
 
17023
  friend class ::CMatchSyntax;
 
17024
 
 
17025
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17026
 
 
17027
  CTree *sons[5]; // open, string, comma, cond, close
 
17028
 
 
17029
public:
 
17030
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
 
17031
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
17032
    AddSon (sons[3], c); AddSon (sons[4], cr); 
 
17033
  }
 
17034
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
17035
  static const char *NodeId ();
 
17036
  /** Get the name of the node. Can be compared with NodeId(). */
 
17037
  const char *NodeName () const { return NodeId (); }
 
17038
  /** Get the number of sons. */
 
17039
  int Sons () const { return CTree::Sons (sons, 5); }
 
17040
  /** Get the n-th son.
 
17041
   *  \param n The index of the son.
 
17042
   *  \return The n-th son or NULL. */
 
17043
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
17044
  /** Replace a son.
 
17045
   *  \param old_son The son to replace.
 
17046
   *  \param new_son The new son. */
 
17047
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
17048
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
17049
  }
 
17050
  CTree *Condition () const { return sons[3]; }
 
17051
  CT_Token *String () const { return (CT_Token*)sons[1]; }
 
17052
  const char *Name () const { 
 
17053
    return value ? value->StrLiteral ()->String () : (const char*)0; }
 
17054
 
 
17055
  CExprValue *Value () const { return value; }
 
17056
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
17057
};
 
17058
 
 
17059
 
 
17060
#line 17061 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
17061
} // closed Puma
 
17062
class CCExprResolve;
 
17063
class CExprResolve;
 
17064
class WinIfExists;
 
17065
class WinImportHandler;
 
17066
class WinMacros;
 
17067
class WinAsm;
 
17068
class WinDeclSpecs;
 
17069
class WinMemberExplSpec;
 
17070
class WinTypeKeywords;
 
17071
class WinFriend;
 
17072
class ExtAC;
 
17073
class ExtACBuilderCoupling;
 
17074
class ExtACSyntaxCoupling;
 
17075
class ExtACTree;
 
17076
class ExtACKeywords;
 
17077
class ExtGnu;
 
17078
class PragmaOnceUnitState;
 
17079
class PragmaOnce;
 
17080
class CMatchSyntax;
 
17081
namespace Puma {
 
17082
 
 
17083
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17084
class CT_AnyCondition : public CTree {
 
17085
#line 17086 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
17086
  friend class ::CCExprResolve;
 
17087
  friend class ::CExprResolve;
 
17088
  friend class ::WinIfExists;
 
17089
  friend class ::WinImportHandler;
 
17090
  friend class ::WinMacros;
 
17091
  friend class ::WinAsm;
 
17092
  friend class ::WinDeclSpecs;
 
17093
  friend class ::WinMemberExplSpec;
 
17094
  friend class ::WinTypeKeywords;
 
17095
  friend class ::WinFriend;
 
17096
  friend class ::ExtAC;
 
17097
  friend class ::ExtACBuilderCoupling;
 
17098
  friend class ::ExtACSyntaxCoupling;
 
17099
  friend class ::ExtACTree;
 
17100
  friend class ::ExtACKeywords;
 
17101
  friend class ::ExtGnu;
 
17102
  friend class ::PragmaOnceUnitState;
 
17103
  friend class ::PragmaOnce;
 
17104
  friend class ::CMatchSyntax;
 
17105
 
 
17106
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17107
 
 
17108
  CTree *sons[3]; // arg1, arg2, arg3
 
17109
 
 
17110
public:
 
17111
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
 
17112
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
 
17113
  }
 
17114
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
17115
  static const char *NodeId ();
 
17116
  /** Get the name of the node. Can be compared with NodeId(). */
 
17117
  const char *NodeName () const { return NodeId (); }
 
17118
  /** Get the number of sons. */
 
17119
  int Sons () const { return CTree::Sons (sons, 3); }
 
17120
  /** Get the n-th son.
 
17121
   *  \param n The index of the son.
 
17122
   *  \return The n-th son or NULL. */
 
17123
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
17124
  /** Replace a son.
 
17125
   *  \param old_son The son to replace.
 
17126
   *  \param new_son The new son. */
 
17127
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
17128
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
17129
  }
 
17130
};
 
17131
 
 
17132
 
 
17133
} // namespace Puma
 
17134
 
 
17135
#endif /* __CTree_h__ */
 
17136
 
 
17137
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
17138
namespace Puma {
 
17139
 
 
17140
 
 
17141
class ErrorSink;
 
17142
 
 
17143
 
 
17144
#line 17145 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
17145
} // closed Puma
 
17146
class CCExprResolve;
 
17147
class CExprResolve;
 
17148
class WinIfExists;
 
17149
class WinImportHandler;
 
17150
class WinMacros;
 
17151
class WinAsm;
 
17152
class WinDeclSpecs;
 
17153
class WinMemberExplSpec;
 
17154
class WinTypeKeywords;
 
17155
class WinFriend;
 
17156
class ExtAC;
 
17157
class ExtACBuilderCoupling;
 
17158
class ExtACSyntaxCoupling;
 
17159
class ExtACTree;
 
17160
class ExtACKeywords;
 
17161
class ExtGnu;
 
17162
class PragmaOnceUnitState;
 
17163
class PragmaOnce;
 
17164
class CMatchSyntax;
 
17165
namespace Puma {
 
17166
 
 
17167
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
17168
 
 
17169
#line 17170 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
17170
} // closed Puma
 
17171
 
 
17172
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
17173
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
17174
 
 
17175
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnuCSemDeclSpecs.ah"
 
17176
// This file is part of PUMA.
 
17177
// Copyright (C) 1999-2003  The PUMA developer team.
 
17178
//                                                                
 
17179
// This program is free software;  you can redistribute it and/or 
 
17180
// modify it under the terms of the GNU General Public License as 
 
17181
// published by the Free Software Foundation; either version 2 of 
 
17182
// the License, or (at your option) any later version.            
 
17183
//                                                                
 
17184
// This program is distributed in the hope that it will be useful,
 
17185
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
17186
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
17187
// GNU General Public License for more details.                   
 
17188
//                                                                
 
17189
// You should have received a copy of the GNU General Public      
 
17190
// License along with this program; if not, write to the Free     
 
17191
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
17192
// MA  02111-1307  USA                                            
 
17193
 
 
17194
#ifndef __ext_gnu_csem_decl_specs_ah__
 
17195
#define __ext_gnu_csem_decl_specs_ah__
 
17196
 
 
17197
 
 
17198
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
17199
// This file is part of PUMA.
 
17200
// Copyright (C) 1999-2003  The PUMA developer team.
 
17201
//                                                                
 
17202
// This program is free software;  you can redistribute it and/or 
 
17203
// modify it under the terms of the GNU General Public License as 
 
17204
// published by the Free Software Foundation; either version 2 of 
 
17205
// the License, or (at your option) any later version.            
 
17206
//                                                                
 
17207
// This program is distributed in the hope that it will be useful,
 
17208
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
17209
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
17210
// GNU General Public License for more details.                   
 
17211
//                                                                
 
17212
// You should have received a copy of the GNU General Public      
 
17213
// License along with this program; if not, write to the Free     
 
17214
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
17215
// MA  02111-1307  USA                                            
 
17216
 
 
17217
#ifndef __gnu_c_tree_h__
 
17218
#define __gnu_c_tree_h__
 
17219
 
 
17220
namespace Puma {
 
17221
 
 
17222
// Syntax tree node hierarchy:
 
17223
class   CT_GnuAsmSpec;       // derived from CTree
 
17224
class   CT_GnuAsmDef;        // derived from CT_AsmDef
 
17225
class   CT_GnuAsmOperand;    // derived from CTree
 
17226
class     CT_GnuAsmOperands; // derived from CT_List
 
17227
class     CT_GnuAsmClobbers; // derived from CT_List
 
17228
class   CT_GnuStatementExpr; // derived from CT_Expression
 
17229
 
 
17230
} // namespace Puma
 
17231
 
 
17232
 
 
17233
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17234
 
 
17235
#line 17236 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
17236
 
 
17237
#ifndef __ac_fwd_ExtACTree__
 
17238
#define __ac_fwd_ExtACTree__
 
17239
class ExtACTree;
 
17240
namespace AC {
 
17241
  template <class JoinPoint>
 
17242
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
17243
  template <class JoinPoint>
 
17244
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
17245
}
 
17246
#endif
 
17247
 
 
17248
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
17249
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
17250
#endif
 
17251
 
 
17252
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17253
// This file is part of PUMA.
 
17254
// Copyright (C) 1999-2003  The PUMA developer team.
 
17255
//                                                                
 
17256
// This program is free software;  you can redistribute it and/or 
 
17257
// modify it under the terms of the GNU General Public License as 
 
17258
// published by the Free Software Foundation; either version 2 of 
 
17259
// the License, or (at your option) any later version.            
 
17260
//                                                                
 
17261
// This program is distributed in the hope that it will be useful,
 
17262
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
17263
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
17264
// GNU General Public License for more details.                   
 
17265
//                                                                
 
17266
// You should have received a copy of the GNU General Public      
 
17267
// License along with this program; if not, write to the Free     
 
17268
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
17269
// MA  02111-1307  USA                                            
 
17270
 
 
17271
#ifndef __CTree_h__
 
17272
#define __CTree_h__
 
17273
 
 
17274
namespace Puma {
 
17275
 
 
17276
 
 
17277
// Syntax tree node hierarchy:
 
17278
class CTree;
 
17279
class   CT_Statement;          
 
17280
class     CT_LabelStmt;
 
17281
class     CT_IfStmt;
 
17282
class     CT_IfElseStmt;
 
17283
class     CT_SwitchStmt;
 
17284
class     CT_BreakStmt;
 
17285
class     CT_ExprStmt;
 
17286
class     CT_WhileStmt;
 
17287
class     CT_DoStmt;
 
17288
class     CT_ForStmt;
 
17289
class     CT_ContinueStmt;
 
17290
class     CT_ReturnStmt;
 
17291
class     CT_GotoStmt;
 
17292
class     CT_DeclStmt;
 
17293
class     CT_CaseStmt;
 
17294
class     CT_DefaultStmt;
 
17295
class     CT_TryStmt;
 
17296
class   CT_Expression;
 
17297
class     CT_Call;
 
17298
class       CT_CallExpr;
 
17299
class       CT_ImplicitCall;
 
17300
class     CT_ThrowExpr;
 
17301
class     CT_NewExpr;
 
17302
class     CT_DeleteExpr;
 
17303
class     CT_ConstructExpr;
 
17304
class     CT_Integer;
 
17305
class     CT_Character;
 
17306
class       CT_WideCharacter;
 
17307
class     CT_Float;
 
17308
class     CT_Bool;
 
17309
class     CT_BracedExpr;
 
17310
class     CT_BinaryExpr;
 
17311
class       CT_MembPtrExpr;
 
17312
class         CT_MembRefExpr;
 
17313
class     CT_UnaryExpr;
 
17314
class       CT_PostfixExpr;
 
17315
class       CT_AddrExpr;
 
17316
class       CT_DerefExpr;
 
17317
class     CT_IfThenExpr;
 
17318
class     CT_CmpdLiteral;
 
17319
class     CT_IndexExpr;
 
17320
class     CT_CastExpr;
 
17321
class     CT_StaticCast;
 
17322
class       CT_ConstCast;
 
17323
class       CT_ReintCast;
 
17324
class       CT_DynamicCast;
 
17325
class     CT_TypeidExpr;
 
17326
class     CT_SizeofExpr;
 
17327
class     CT_MembDesignator;
 
17328
class     CT_IndexDesignator;
 
17329
class     CT_ImplicitCast;
 
17330
class   CT_DeclSpec;
 
17331
class     CT_PrimDeclSpec;
 
17332
class     CT_NamedType;
 
17333
class     CT_ClassSpec;
 
17334
class       CT_UnionSpec;
 
17335
class       CT_EnumSpec;
 
17336
class     CT_ExceptionSpec;
 
17337
class   CT_Declarator;
 
17338
class     CT_InitDeclarator;
 
17339
class     CT_BracedDeclarator;
 
17340
class     CT_ArrayDeclarator;
 
17341
class     CT_FctDeclarator;
 
17342
class     CT_RefDeclarator;
 
17343
class     CT_PtrDeclarator;
 
17344
class     CT_MembPtrDeclarator;
 
17345
class     CT_BitFieldDeclarator;
 
17346
class   CT_Decl;
 
17347
class     CT_ObjDecl;
 
17348
class     CT_ArgDecl;
 
17349
class     CT_AccessDecl;
 
17350
class       CT_UsingDecl;
 
17351
class     CT_FctDef;
 
17352
class     CT_AsmDef;
 
17353
class     CT_EnumDef;
 
17354
class     CT_ClassDef;
 
17355
class       CT_UnionDef;
 
17356
class     CT_Enumerator;
 
17357
class     CT_LinkageSpec;
 
17358
class     CT_Handler;
 
17359
class     CT_TemplateDecl;
 
17360
class     CT_TemplateParamDecl;
 
17361
class       CT_TypeParamDecl;
 
17362
class       CT_NonTypeParamDecl;
 
17363
class     CT_NamespaceDef;
 
17364
class     CT_NamespaceAliasDef;
 
17365
class     CT_UsingDirective;
 
17366
class     CT_Condition;
 
17367
class   CT_List;
 
17368
class     CT_CmpdStmt;
 
17369
class     CT_DeclSpecSeq;
 
17370
class     CT_HandlerSeq;
 
17371
class     CT_DesignatorSeq;
 
17372
class     CT_DeclList;
 
17373
class       CT_Program;
 
17374
class       CT_ArgDeclList;
 
17375
class         CT_ArgNameList;
 
17376
class       CT_ArgDeclSeq;
 
17377
class       CT_MembList;
 
17378
class     CT_ExprList;
 
17379
class     CT_DeclaratorList;
 
17380
class     CT_BaseSpecList;
 
17381
class     CT_MembInitList;
 
17382
class     CT_SimpleName;
 
17383
class       CT_SpecialName;
 
17384
class         CT_PrivateName;
 
17385
class         CT_OperatorName;
 
17386
class         CT_DestructorName;
 
17387
class         CT_ConversionName;
 
17388
class         CT_TemplateName;
 
17389
class       CT_QualName;
 
17390
class         CT_RootQualName;
 
17391
class     CT_String;
 
17392
class       CT_WideString;
 
17393
class     CT_TemplateParamList;
 
17394
class     CT_TemplateArgList;
 
17395
class   CT_Token;
 
17396
class   CT_Error;
 
17397
class   CT_BaseSpec;
 
17398
class   CT_AccessSpec;
 
17399
class   CT_ArrayDelimiter;
 
17400
class   CT_Any;
 
17401
class   CT_AnyList;
 
17402
class   CT_AnyExtension;
 
17403
class   CT_AnyCondition;
 
17404
 
 
17405
 
 
17406
} // namespace Puma
 
17407
 
 
17408
#include "Puma/ErrorSeverity.h"
 
17409
#include "Puma/CSemObject.h"
 
17410
#include "Puma/CSemScope.h"
 
17411
#include "Puma/CSemValue.h"
 
17412
#include "Puma/CExprValue.h"
 
17413
#include "Puma/CStrLiteral.h"
 
17414
#include "Puma/CTypeInfo.h"
 
17415
#include "Puma/Printable.h"
 
17416
#include "Puma/CTokens.h"
 
17417
#include "Puma/Token.h"
 
17418
 
 
17419
#include <iostream>
 
17420
#include <string.h>
 
17421
using namespace std;
 
17422
 
 
17423
namespace Puma {
 
17424
 
 
17425
 
 
17426
class ErrorStream;
 
17427
class CObjectInfo;
 
17428
class CStructure;
 
17429
 
 
17430
/*****************************************************************************/
 
17431
/*                                                                           */
 
17432
/*                    S y n t a x  t r e e  n o d e s                        */
 
17433
/*                                                                           */
 
17434
/*****************************************************************************/
 
17435
 
 
17436
/** \file
 
17437
 *  C/C++ syntax tree classes.
 
17438
 *  \see Puma::CTree */
 
17439
 
 
17440
/** \class CTree CTree.h Puma/CTree.h
 
17441
 *  Base class for all C/C++ syntax tree classes. */
 
17442
 
 
17443
#line 17444 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
17444
} // closed Puma
 
17445
class CCExprResolve;
 
17446
class CExprResolve;
 
17447
class WinIfExists;
 
17448
class WinImportHandler;
 
17449
class WinMacros;
 
17450
class WinAsm;
 
17451
class WinDeclSpecs;
 
17452
class WinMemberExplSpec;
 
17453
class WinTypeKeywords;
 
17454
class WinFriend;
 
17455
class ExtAC;
 
17456
class ExtACBuilderCoupling;
 
17457
class ExtACSyntaxCoupling;
 
17458
class ExtACTree;
 
17459
class ExtACKeywords;
 
17460
class ExtGnu;
 
17461
class PragmaOnceUnitState;
 
17462
class PragmaOnce;
 
17463
class CMatchSyntax;
 
17464
namespace Puma {
 
17465
 
 
17466
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17467
 
 
17468
#line 17469 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
17469
} // closed Puma
 
17470
 
 
17471
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
17472
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
17473
#include "CCExprResolveH.ah"
 
17474
#endif
 
17475
namespace Puma {
 
17476
 
 
17477
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17478
 
 
17479
#line 17480 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
17480
} // closed Puma
 
17481
 
 
17482
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
17483
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
17484
#include "CExprResolveH.ah"
 
17485
#endif
 
17486
namespace Puma {
 
17487
 
 
17488
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17489
class CTree {
 
17490
#line 17491 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
17491
  friend class ::CCExprResolve;
 
17492
  friend class ::CExprResolve;
 
17493
  friend class ::WinIfExists;
 
17494
  friend class ::WinImportHandler;
 
17495
  friend class ::WinMacros;
 
17496
  friend class ::WinAsm;
 
17497
  friend class ::WinDeclSpecs;
 
17498
  friend class ::WinMemberExplSpec;
 
17499
  friend class ::WinTypeKeywords;
 
17500
  friend class ::WinFriend;
 
17501
  friend class ::ExtAC;
 
17502
  friend class ::ExtACBuilderCoupling;
 
17503
  friend class ::ExtACSyntaxCoupling;
 
17504
  friend class ::ExtACTree;
 
17505
  friend class ::ExtACKeywords;
 
17506
  friend class ::ExtGnu;
 
17507
  friend class ::PragmaOnceUnitState;
 
17508
  friend class ::PragmaOnce;
 
17509
  friend class ::CMatchSyntax;
 
17510
 
 
17511
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17512
 
 
17513
  CTree * _parent;
 
17514
 
 
17515
public:
 
17516
  /*DEBUG*/static int alloc;
 
17517
  /*DEBUG*/static int release;
 
17518
 
 
17519
protected:
 
17520
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
17521
   *  \param sons The sons array.
 
17522
   *  \param len Length of the sons array.
 
17523
   *  \param n Index of the son.
 
17524
   *  \return The n-th son or NULL. */
 
17525
  CTree *Son (CTree * const *sons, int len, int n) const;
 
17526
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
17527
   *  \param sons The sons array.
 
17528
   *  \param len Length of the sons array. */
 
17529
  int Sons (CTree * const *sons, int len) const;
 
17530
  /** Replace a son.
 
17531
   *  \param sons The sons array.
 
17532
   *  \param len Length of the sons array.
 
17533
   *  \param old_son The son to replace.
 
17534
   *  \param new_son The new son. */
 
17535
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
17536
  /** Replace a son if it equals the given son.
 
17537
   *  \param son The actual son.
 
17538
   *  \param old_son The son to replace, must match the actual son.
 
17539
   *  \param new_son The new son, overwrites the actual son. */
 
17540
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
17541
  /** Add a new son.
 
17542
   *  \param son The actual son.
 
17543
   *  \param new_son The new son, overwrites the actual son. */
 
17544
  void AddSon (CTree *&son, CTree *new_son);
 
17545
  /** Set the parent tree node.
 
17546
   *  \param parent The new parent tree node. */
 
17547
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
17548
  /** Set the parent tree node of the given tree node.
 
17549
   *  \param node The tree node.
 
17550
   *  \param parent The new parent. */
 
17551
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
 
17552
  
 
17553
protected:
 
17554
  /** Default constructor. */
 
17555
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
 
17556
 
 
17557
public:
 
17558
  /** Destructor. */
 
17559
  virtual ~CTree () { /*DEBUG*/release++; }
 
17560
  /** Get the number of sons. */
 
17561
  virtual int Sons () const = 0;
 
17562
  /** Get the n-th son.
 
17563
   *  \param n The index of the son.
 
17564
   *  \return The n-th son or NULL. */
 
17565
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
17566
  /** Get the node name (node identifier). */
 
17567
  virtual const char *NodeName () const = 0;
 
17568
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
17569
   *  \return The token or NULL. */
 
17570
  virtual Token *token () const;
 
17571
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
17572
   *  \return The token or NULL. */
 
17573
  virtual Token *end_token () const;
 
17574
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
17575
   *  \return The token node or NULL. */
 
17576
  virtual CT_Token *token_node () const;
 
17577
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
17578
   *  \return The token node or NULL. */
 
17579
  virtual CT_Token *end_token_node () const;
 
17580
  /** Replace a son.
 
17581
   *  \param old_son The son to replace.
 
17582
   *  \param new_son The son with which to replace. */
 
17583
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
17584
  /** Get the parent node.
 
17585
   *  \return The parent node or NULL. */
 
17586
  virtual CTree *Parent () const { return (CTree*)_parent; }
 
17587
 
 
17588
public: // semantic information
 
17589
  /** Get the semantic type of the node.
 
17590
   *  \return The type object or NULL. */
 
17591
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
17592
  /** Get the calculated value of the expression.
 
17593
   *  \return The value object or NULL. */
 
17594
  virtual CExprValue *Value () const { return (CExprValue*)0; }
 
17595
  
 
17596
  /** Get the semantic scope of the node.
 
17597
   *  \return The scope object or NULL. */
 
17598
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
17599
  /** Get the semantic value of the node.
 
17600
   *  \return The value object or NULL. */
 
17601
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
17602
  /** Get the semantic object of the node.
 
17603
   *  \return The semantic object or NULL. */
 
17604
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
 
17605
  
 
17606
public: // node classification function
 
17607
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
17608
   *  \return The CT_SimpleName node or NULL. */
 
17609
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
17610
  /** Get a pointer to CT_String if the current node represents a string.
 
17611
   *  \return The CT_String node or NULL. */
 
17612
  virtual CT_String *IsString () { return 0; }
 
17613
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
17614
   *  \return The CT_Declarator pointer or NULL. */
 
17615
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
17616
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
17617
   *  \return The CT_Statement pointer or NULL. */
 
17618
  virtual CT_Statement *IsStatement () { return 0; }
 
17619
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
17620
   *  \return The CT_Expression pointer or NULL. */
 
17621
  virtual CT_Expression *IsExpression () { return 0; }
 
17622
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
17623
   *  \return The CT_Decl pointer or NULL. */
 
17624
  virtual CT_Decl *IsDeclaration () { return 0; }
 
17625
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
17626
   *  \return The CT_Call pointer or NULL. */
 
17627
  virtual CT_Call *IsCall () { return 0; }
 
17628
   private:
 
17629
  typedef CTree CCExprResolveCTree;
 
17630
 
 
17631
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
17632
 public :
 
17633
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
17634
  typedef CTree CExprResolveCTree;
 
17635
 
 
17636
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
17637
 public :
 
17638
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
17639
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17640
};
 
17641
 
 
17642
/** \class CT_Error CTree.h Puma/CTree.h
 
17643
 *  Error tree node that is inserted into the tree for syntactic constructs
 
17644
 *  that could not be parsed. */
 
17645
 
 
17646
#line 17647 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
17647
} // closed Puma
 
17648
class CCExprResolve;
 
17649
class CExprResolve;
 
17650
class WinIfExists;
 
17651
class WinImportHandler;
 
17652
class WinMacros;
 
17653
class WinAsm;
 
17654
class WinDeclSpecs;
 
17655
class WinMemberExplSpec;
 
17656
class WinTypeKeywords;
 
17657
class WinFriend;
 
17658
class ExtAC;
 
17659
class ExtACBuilderCoupling;
 
17660
class ExtACSyntaxCoupling;
 
17661
class ExtACTree;
 
17662
class ExtACKeywords;
 
17663
class ExtGnu;
 
17664
class PragmaOnceUnitState;
 
17665
class PragmaOnce;
 
17666
class CMatchSyntax;
 
17667
namespace Puma {
 
17668
 
 
17669
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17670
class CT_Error : public CTree {
 
17671
#line 17672 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
17672
  friend class ::CCExprResolve;
 
17673
  friend class ::CExprResolve;
 
17674
  friend class ::WinIfExists;
 
17675
  friend class ::WinImportHandler;
 
17676
  friend class ::WinMacros;
 
17677
  friend class ::WinAsm;
 
17678
  friend class ::WinDeclSpecs;
 
17679
  friend class ::WinMemberExplSpec;
 
17680
  friend class ::WinTypeKeywords;
 
17681
  friend class ::WinFriend;
 
17682
  friend class ::ExtAC;
 
17683
  friend class ::ExtACBuilderCoupling;
 
17684
  friend class ::ExtACSyntaxCoupling;
 
17685
  friend class ::ExtACTree;
 
17686
  friend class ::ExtACKeywords;
 
17687
  friend class ::ExtGnu;
 
17688
  friend class ::PragmaOnceUnitState;
 
17689
  friend class ::PragmaOnce;
 
17690
  friend class ::CMatchSyntax;
 
17691
 
 
17692
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17693
 
 
17694
public:
 
17695
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
17696
  static const char *NodeId ();
 
17697
  /** Get the name of the node. Can be compared with NodeId(). */
 
17698
  const char *NodeName () const { return NodeId (); }
 
17699
  /** Get the number of sons. */
 
17700
  int Sons () const { return 0; }
 
17701
};
 
17702
 
 
17703
/** \class CT_Token CTree.h Puma/CTree.h
 
17704
 *  Tree node representing a single token in the source code. */
 
17705
 
 
17706
#line 17707 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
17707
} // closed Puma
 
17708
class CCExprResolve;
 
17709
class CExprResolve;
 
17710
class WinIfExists;
 
17711
class WinImportHandler;
 
17712
class WinMacros;
 
17713
class WinAsm;
 
17714
class WinDeclSpecs;
 
17715
class WinMemberExplSpec;
 
17716
class WinTypeKeywords;
 
17717
class WinFriend;
 
17718
class ExtAC;
 
17719
class ExtACBuilderCoupling;
 
17720
class ExtACSyntaxCoupling;
 
17721
class ExtACTree;
 
17722
class ExtACKeywords;
 
17723
class ExtGnu;
 
17724
class PragmaOnceUnitState;
 
17725
class PragmaOnce;
 
17726
class CMatchSyntax;
 
17727
namespace Puma {
 
17728
 
 
17729
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17730
class CT_Token : public CTree {
 
17731
#line 17732 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
17732
  friend class ::CCExprResolve;
 
17733
  friend class ::CExprResolve;
 
17734
  friend class ::WinIfExists;
 
17735
  friend class ::WinImportHandler;
 
17736
  friend class ::WinMacros;
 
17737
  friend class ::WinAsm;
 
17738
  friend class ::WinDeclSpecs;
 
17739
  friend class ::WinMemberExplSpec;
 
17740
  friend class ::WinTypeKeywords;
 
17741
  friend class ::WinFriend;
 
17742
  friend class ::ExtAC;
 
17743
  friend class ::ExtACBuilderCoupling;
 
17744
  friend class ::ExtACSyntaxCoupling;
 
17745
  friend class ::ExtACTree;
 
17746
  friend class ::ExtACKeywords;
 
17747
  friend class ::ExtGnu;
 
17748
  friend class ::PragmaOnceUnitState;
 
17749
  friend class ::PragmaOnce;
 
17750
  friend class ::CMatchSyntax;
 
17751
 
 
17752
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17753
 
 
17754
  Token *_token;
 
17755
  unsigned long int _number;
 
17756
  
 
17757
public:
 
17758
  /** Constructor. 
 
17759
   *  \param token The represented token.
 
17760
   *  \param number The token number (a consecutive number). */
 
17761
  CT_Token (Token *token, unsigned long int number = 0) : 
 
17762
    _token (token), _number (number) {}
 
17763
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
17764
  static const char *NodeId ();
 
17765
  /** Get the name of the node. Can be compared with NodeId(). */
 
17766
  const char *NodeName () const { return NodeId (); }
 
17767
  /** Get the number of sons. */
 
17768
  int Sons () const { return 0; }
 
17769
  /** Get the represented token. */
 
17770
  Token *token () const { return _token; }
 
17771
  /** Get the represented token. */
 
17772
  Token *end_token () const { return _token; }
 
17773
  /** Get this. */
 
17774
  CT_Token *token_node () const { return (CT_Token*)this; }
 
17775
  /** Get this. */
 
17776
  CT_Token *end_token_node () const { return (CT_Token*)this; }
 
17777
  /** Set the token number. 
 
17778
   *  \param number The token number. */ 
 
17779
  void Number (unsigned long int number) { _number = number; }
 
17780
  /** Get the token number. Can be used to indentify this token. */
 
17781
  unsigned long int Number () const { return _number; }
 
17782
  
 
17783
public:
 
17784
  /** Own new operator reusing memory. */
 
17785
  void *operator new (size_t);
 
17786
  /** Own delete operator. */
 
17787
  void operator delete (void *);
 
17788
};
 
17789
 
 
17790
/*****************************************************************************/
 
17791
/*                                                                           */
 
17792
/*                              List nodes                                   */
 
17793
/*                                                                           */
 
17794
/*****************************************************************************/
 
17795
 
 
17796
/** \class CT_List CTree.h Puma/CTree.h
 
17797
 *  Base class for tree nodes representing lists. */
 
17798
 
 
17799
#line 17800 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
17800
} // closed Puma
 
17801
class CCExprResolve;
 
17802
class CExprResolve;
 
17803
class WinIfExists;
 
17804
class WinImportHandler;
 
17805
class WinMacros;
 
17806
class WinAsm;
 
17807
class WinDeclSpecs;
 
17808
class WinMemberExplSpec;
 
17809
class WinTypeKeywords;
 
17810
class WinFriend;
 
17811
class ExtAC;
 
17812
class ExtACBuilderCoupling;
 
17813
class ExtACSyntaxCoupling;
 
17814
class ExtACTree;
 
17815
class ExtACKeywords;
 
17816
class ExtGnu;
 
17817
class PragmaOnceUnitState;
 
17818
class PragmaOnce;
 
17819
class CMatchSyntax;
 
17820
namespace Puma {
 
17821
 
 
17822
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17823
class CT_List : public CTree {
 
17824
#line 17825 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
17825
  friend class ::CCExprResolve;
 
17826
  friend class ::CExprResolve;
 
17827
  friend class ::WinIfExists;
 
17828
  friend class ::WinImportHandler;
 
17829
  friend class ::WinMacros;
 
17830
  friend class ::WinAsm;
 
17831
  friend class ::WinDeclSpecs;
 
17832
  friend class ::WinMemberExplSpec;
 
17833
  friend class ::WinTypeKeywords;
 
17834
  friend class ::WinFriend;
 
17835
  friend class ::ExtAC;
 
17836
  friend class ::ExtACBuilderCoupling;
 
17837
  friend class ::ExtACSyntaxCoupling;
 
17838
  friend class ::ExtACTree;
 
17839
  friend class ::ExtACKeywords;
 
17840
  friend class ::ExtGnu;
 
17841
  friend class ::PragmaOnceUnitState;
 
17842
  friend class ::PragmaOnce;
 
17843
  friend class ::CMatchSyntax;
 
17844
 
 
17845
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17846
 
 
17847
  Array<CTree*> _sons;
 
17848
  int _properties;
 
17849
 
 
17850
protected:
 
17851
  /** Constructor.
 
17852
   *  \param size The initial list size.
 
17853
   *  \param incr The initial increment count. 
 
17854
   *  \param props The list properties (bit array). */
 
17855
  CT_List(int size = 5, int incr = 5, int props = 0) : 
 
17856
    _sons (size, incr), _properties (props) {}
 
17857
 
 
17858
public:
 
17859
  /** List properties. */
 
17860
  enum {
 
17861
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
17862
    CLOSE = 2,        /** List has an end token */
 
17863
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
17864
    SEPARATORS = 4,   /** List has separators, like ',' */
 
17865
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
17866
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
17867
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
17868
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
 
17869
  };
 
17870
 
 
17871
  /** Get the number of list entries. */
 
17872
  int Entries () const;
 
17873
  /** Get the n-th list entry.
 
17874
   *  \param n The index of the entry. 
 
17875
   *  \return The list entry or NULL. */
 
17876
  CTree *Entry (int n) const;
 
17877
  /** Get the number of sons. */
 
17878
  int Sons () const { return _sons.length (); }
 
17879
  /** Get the n-th son.
 
17880
   *  \param n The index of the son. 
 
17881
   *  \return The n-th son or NULL. */
 
17882
  CTree *Son (int n) const { return _sons.lookup (n); }
 
17883
  /** Get the list properties. */
 
17884
  int GetProperties () const { return _properties; }
 
17885
  /** Add a list property.
 
17886
   *  \param p The property to add. */
 
17887
  void AddProperties (int p) { _properties |= p; }
 
17888
  /** Add a son.
 
17889
   *  \param s The son to add. */
 
17890
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
17891
  /** Prepend a son.
 
17892
   *  \param s The son to prepend. */
 
17893
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
17894
  /** Insert a son before another son.
 
17895
   *  \param before The son to insert the new son before.
 
17896
   *  \param son The son to insert. */
 
17897
  void InsertSon (CTree *before, CTree *son); 
 
17898
  /** Replace a son.
 
17899
   *  \param old_son The son to replace.
 
17900
   *  \param new_son The new son. */
 
17901
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
17902
  /** Remove a son.
 
17903
   *  \param son The son to remove. */
 
17904
  void RemoveSon (CTree *son);
 
17905
  /** Insert a son at the given index. 
 
17906
   *  \param idx The index at which to insert.
 
17907
   *  \param s The son to insert. */
 
17908
  void InsertSon (int idx, CTree *s)
 
17909
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
17910
  /** Replace the son at the given index.
 
17911
   *  \param idx The index of the son to replace.
 
17912
   *  \param s The new son. */
 
17913
  void ReplaceSon (int idx, CTree *s) 
 
17914
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
17915
  /** Remove the son at the given index. 
 
17916
   *  \param idx The index of the son to remove. */
 
17917
  void RemoveSon (int idx) 
 
17918
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
 
17919
};
 
17920
 
 
17921
/** \class CT_ExprList CTree.h Puma/CTree.h
 
17922
 *  Tree node representing an expression list. */
 
17923
 
 
17924
#line 17925 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
17925
} // closed Puma
 
17926
class CCExprResolve;
 
17927
class CExprResolve;
 
17928
class WinIfExists;
 
17929
class WinImportHandler;
 
17930
class WinMacros;
 
17931
class WinAsm;
 
17932
class WinDeclSpecs;
 
17933
class WinMemberExplSpec;
 
17934
class WinTypeKeywords;
 
17935
class WinFriend;
 
17936
class ExtAC;
 
17937
class ExtACBuilderCoupling;
 
17938
class ExtACSyntaxCoupling;
 
17939
class ExtACTree;
 
17940
class ExtACKeywords;
 
17941
class ExtGnu;
 
17942
class PragmaOnceUnitState;
 
17943
class PragmaOnce;
 
17944
class CMatchSyntax;
 
17945
namespace Puma {
 
17946
 
 
17947
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17948
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
 
17949
#line 17950 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
17950
  friend class ::CCExprResolve;
 
17951
  friend class ::CExprResolve;
 
17952
  friend class ::WinIfExists;
 
17953
  friend class ::WinImportHandler;
 
17954
  friend class ::WinMacros;
 
17955
  friend class ::WinAsm;
 
17956
  friend class ::WinDeclSpecs;
 
17957
  friend class ::WinMemberExplSpec;
 
17958
  friend class ::WinTypeKeywords;
 
17959
  friend class ::WinFriend;
 
17960
  friend class ::ExtAC;
 
17961
  friend class ::ExtACBuilderCoupling;
 
17962
  friend class ::ExtACSyntaxCoupling;
 
17963
  friend class ::ExtACTree;
 
17964
  friend class ::ExtACKeywords;
 
17965
  friend class ::ExtGnu;
 
17966
  friend class ::PragmaOnceUnitState;
 
17967
  friend class ::PragmaOnce;
 
17968
  friend class ::CMatchSyntax;
 
17969
 
 
17970
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17971
 
 
17972
public:
 
17973
  /** Constructor. */
 
17974
  CT_ExprList () { AddProperties (SEPARATORS); }
 
17975
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
17976
  static const char *NodeId ();
 
17977
  /** Get the name of the node. Can be compared with NodeId(). */
 
17978
  const char *NodeName () const { return NodeId (); }
 
17979
 
 
17980
  /** Get the type of the last expression in the expression list.
 
17981
   *  \return The type or NULL. */
 
17982
  CTypeInfo *Type () const { return type; }
 
17983
  /** Get the value of the last expression in the expression list.
 
17984
   *  \return The value of NULL. */
 
17985
  CExprValue *Value () const { return value; }
 
17986
  /** Get the semantic value of the node. */
 
17987
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
17988
  /** Get the semantic object of the node. */
 
17989
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
17990
};
 
17991
 
 
17992
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
17993
 *  Tree node representing a list of declarators. */
 
17994
 
 
17995
#line 17996 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
17996
} // closed Puma
 
17997
class CCExprResolve;
 
17998
class CExprResolve;
 
17999
class WinIfExists;
 
18000
class WinImportHandler;
 
18001
class WinMacros;
 
18002
class WinAsm;
 
18003
class WinDeclSpecs;
 
18004
class WinMemberExplSpec;
 
18005
class WinTypeKeywords;
 
18006
class WinFriend;
 
18007
class ExtAC;
 
18008
class ExtACBuilderCoupling;
 
18009
class ExtACSyntaxCoupling;
 
18010
class ExtACTree;
 
18011
class ExtACKeywords;
 
18012
class ExtGnu;
 
18013
class PragmaOnceUnitState;
 
18014
class PragmaOnce;
 
18015
class CMatchSyntax;
 
18016
namespace Puma {
 
18017
 
 
18018
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18019
class CT_DeclaratorList : public CT_List {
 
18020
#line 18021 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18021
  friend class ::CCExprResolve;
 
18022
  friend class ::CExprResolve;
 
18023
  friend class ::WinIfExists;
 
18024
  friend class ::WinImportHandler;
 
18025
  friend class ::WinMacros;
 
18026
  friend class ::WinAsm;
 
18027
  friend class ::WinDeclSpecs;
 
18028
  friend class ::WinMemberExplSpec;
 
18029
  friend class ::WinTypeKeywords;
 
18030
  friend class ::WinFriend;
 
18031
  friend class ::ExtAC;
 
18032
  friend class ::ExtACBuilderCoupling;
 
18033
  friend class ::ExtACSyntaxCoupling;
 
18034
  friend class ::ExtACTree;
 
18035
  friend class ::ExtACKeywords;
 
18036
  friend class ::ExtGnu;
 
18037
  friend class ::PragmaOnceUnitState;
 
18038
  friend class ::PragmaOnce;
 
18039
  friend class ::CMatchSyntax;
 
18040
 
 
18041
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18042
 
 
18043
public:
 
18044
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18045
  static const char *NodeId ();
 
18046
  /** Get the name of the node. Can be compared with NodeId(). */
 
18047
  const char *NodeName () const { return NodeId (); }
 
18048
};
 
18049
 
 
18050
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
18051
 *  Tree node representing a list of enumerator constants. */
 
18052
 
 
18053
#line 18054 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18054
} // closed Puma
 
18055
class CCExprResolve;
 
18056
class CExprResolve;
 
18057
class WinIfExists;
 
18058
class WinImportHandler;
 
18059
class WinMacros;
 
18060
class WinAsm;
 
18061
class WinDeclSpecs;
 
18062
class WinMemberExplSpec;
 
18063
class WinTypeKeywords;
 
18064
class WinFriend;
 
18065
class ExtAC;
 
18066
class ExtACBuilderCoupling;
 
18067
class ExtACSyntaxCoupling;
 
18068
class ExtACTree;
 
18069
class ExtACKeywords;
 
18070
class ExtGnu;
 
18071
class PragmaOnceUnitState;
 
18072
class PragmaOnce;
 
18073
class CMatchSyntax;
 
18074
namespace Puma {
 
18075
 
 
18076
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18077
class CT_EnumeratorList : public CT_List {
 
18078
#line 18079 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18079
  friend class ::CCExprResolve;
 
18080
  friend class ::CExprResolve;
 
18081
  friend class ::WinIfExists;
 
18082
  friend class ::WinImportHandler;
 
18083
  friend class ::WinMacros;
 
18084
  friend class ::WinAsm;
 
18085
  friend class ::WinDeclSpecs;
 
18086
  friend class ::WinMemberExplSpec;
 
18087
  friend class ::WinTypeKeywords;
 
18088
  friend class ::WinFriend;
 
18089
  friend class ::ExtAC;
 
18090
  friend class ::ExtACBuilderCoupling;
 
18091
  friend class ::ExtACSyntaxCoupling;
 
18092
  friend class ::ExtACTree;
 
18093
  friend class ::ExtACKeywords;
 
18094
  friend class ::ExtGnu;
 
18095
  friend class ::PragmaOnceUnitState;
 
18096
  friend class ::PragmaOnce;
 
18097
  friend class ::CMatchSyntax;
 
18098
 
 
18099
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18100
 
 
18101
public:
 
18102
  /** Constructor. */
 
18103
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
18104
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18105
  static const char *NodeId ();
 
18106
  /** Get the name of the node. Can be compared with NodeId(). */
 
18107
  const char *NodeName () const { return NodeId (); }
 
18108
};
 
18109
   
 
18110
/** \class CT_DeclList CTree.h Puma/CTree.h
 
18111
 *  Tree node representing a list of declarations. */
 
18112
 
 
18113
#line 18114 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18114
} // closed Puma
 
18115
class CCExprResolve;
 
18116
class CExprResolve;
 
18117
class WinIfExists;
 
18118
class WinImportHandler;
 
18119
class WinMacros;
 
18120
class WinAsm;
 
18121
class WinDeclSpecs;
 
18122
class WinMemberExplSpec;
 
18123
class WinTypeKeywords;
 
18124
class WinFriend;
 
18125
class ExtAC;
 
18126
class ExtACBuilderCoupling;
 
18127
class ExtACSyntaxCoupling;
 
18128
class ExtACTree;
 
18129
class ExtACKeywords;
 
18130
class ExtGnu;
 
18131
class PragmaOnceUnitState;
 
18132
class PragmaOnce;
 
18133
class CMatchSyntax;
 
18134
namespace Puma {
 
18135
 
 
18136
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18137
class CT_DeclList : public CT_List {
 
18138
#line 18139 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18139
  friend class ::CCExprResolve;
 
18140
  friend class ::CExprResolve;
 
18141
  friend class ::WinIfExists;
 
18142
  friend class ::WinImportHandler;
 
18143
  friend class ::WinMacros;
 
18144
  friend class ::WinAsm;
 
18145
  friend class ::WinDeclSpecs;
 
18146
  friend class ::WinMemberExplSpec;
 
18147
  friend class ::WinTypeKeywords;
 
18148
  friend class ::WinFriend;
 
18149
  friend class ::ExtAC;
 
18150
  friend class ::ExtACBuilderCoupling;
 
18151
  friend class ::ExtACSyntaxCoupling;
 
18152
  friend class ::ExtACTree;
 
18153
  friend class ::ExtACKeywords;
 
18154
  friend class ::ExtGnu;
 
18155
  friend class ::PragmaOnceUnitState;
 
18156
  friend class ::PragmaOnce;
 
18157
  friend class ::CMatchSyntax;
 
18158
 
 
18159
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18160
 
 
18161
public:
 
18162
  /** Constructor. 
 
18163
   *  \param size The initial size of the list.
 
18164
   *  \param incr The initial increment count of the list. */
 
18165
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
18166
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18167
  static const char *NodeId ();
 
18168
  /** Get the name of the node. Can be compared with NodeId(). */
 
18169
  const char *NodeName () const { return NodeId (); }
 
18170
  /** Set the linkage specifiers to each declaration in the list.
 
18171
   *  \param l The linkage specifiers node. */
 
18172
  void Linkage (CT_LinkageSpec *l);
 
18173
};
 
18174
 
 
18175
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
18176
 *  Tree node representing a sequence of declaration specifiers. */
 
18177
 
 
18178
#line 18179 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18179
} // closed Puma
 
18180
class CCExprResolve;
 
18181
class CExprResolve;
 
18182
class WinIfExists;
 
18183
class WinImportHandler;
 
18184
class WinMacros;
 
18185
class WinAsm;
 
18186
class WinDeclSpecs;
 
18187
class WinMemberExplSpec;
 
18188
class WinTypeKeywords;
 
18189
class WinFriend;
 
18190
class ExtAC;
 
18191
class ExtACBuilderCoupling;
 
18192
class ExtACSyntaxCoupling;
 
18193
class ExtACTree;
 
18194
class ExtACKeywords;
 
18195
class ExtGnu;
 
18196
class PragmaOnceUnitState;
 
18197
class PragmaOnce;
 
18198
class CMatchSyntax;
 
18199
namespace Puma {
 
18200
 
 
18201
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18202
class CT_DeclSpecSeq : public CT_List {
 
18203
#line 18204 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18204
  friend class ::CCExprResolve;
 
18205
  friend class ::CExprResolve;
 
18206
  friend class ::WinIfExists;
 
18207
  friend class ::WinImportHandler;
 
18208
  friend class ::WinMacros;
 
18209
  friend class ::WinAsm;
 
18210
  friend class ::WinDeclSpecs;
 
18211
  friend class ::WinMemberExplSpec;
 
18212
  friend class ::WinTypeKeywords;
 
18213
  friend class ::WinFriend;
 
18214
  friend class ::ExtAC;
 
18215
  friend class ::ExtACBuilderCoupling;
 
18216
  friend class ::ExtACSyntaxCoupling;
 
18217
  friend class ::ExtACTree;
 
18218
  friend class ::ExtACKeywords;
 
18219
  friend class ::ExtGnu;
 
18220
  friend class ::PragmaOnceUnitState;
 
18221
  friend class ::PragmaOnce;
 
18222
  friend class ::CMatchSyntax;
 
18223
 
 
18224
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18225
 
 
18226
public:
 
18227
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18228
  static const char *NodeId ();
 
18229
  /** Get the name of the node. Can be compared with NodeId(). */
 
18230
  const char *NodeName () const { return NodeId (); }
 
18231
};
 
18232
 
 
18233
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
18234
 *  Tree node representing a compound statement. */
 
18235
 
 
18236
#line 18237 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18237
} // closed Puma
 
18238
class CCExprResolve;
 
18239
class CExprResolve;
 
18240
class WinIfExists;
 
18241
class WinImportHandler;
 
18242
class WinMacros;
 
18243
class WinAsm;
 
18244
class WinDeclSpecs;
 
18245
class WinMemberExplSpec;
 
18246
class WinTypeKeywords;
 
18247
class WinFriend;
 
18248
class ExtAC;
 
18249
class ExtACBuilderCoupling;
 
18250
class ExtACSyntaxCoupling;
 
18251
class ExtACTree;
 
18252
class ExtACKeywords;
 
18253
class ExtGnu;
 
18254
class PragmaOnceUnitState;
 
18255
class PragmaOnce;
 
18256
class CMatchSyntax;
 
18257
namespace Puma {
 
18258
 
 
18259
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18260
class CT_CmpdStmt : public CT_List, public CSemScope {
 
18261
#line 18262 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18262
  friend class ::CCExprResolve;
 
18263
  friend class ::CExprResolve;
 
18264
  friend class ::WinIfExists;
 
18265
  friend class ::WinImportHandler;
 
18266
  friend class ::WinMacros;
 
18267
  friend class ::WinAsm;
 
18268
  friend class ::WinDeclSpecs;
 
18269
  friend class ::WinMemberExplSpec;
 
18270
  friend class ::WinTypeKeywords;
 
18271
  friend class ::WinFriend;
 
18272
  friend class ::ExtAC;
 
18273
  friend class ::ExtACBuilderCoupling;
 
18274
  friend class ::ExtACSyntaxCoupling;
 
18275
  friend class ::ExtACTree;
 
18276
  friend class ::ExtACKeywords;
 
18277
  friend class ::ExtGnu;
 
18278
  friend class ::PragmaOnceUnitState;
 
18279
  friend class ::PragmaOnce;
 
18280
  friend class ::CMatchSyntax;
 
18281
 
 
18282
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18283
 
 
18284
public:
 
18285
  /* Constructor. */
 
18286
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
18287
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18288
  static const char *NodeId ();
 
18289
  /** Get the name of the node. Can be compared with NodeId(). */
 
18290
  const char *NodeName () const { return NodeId (); }
 
18291
  /** Get the local scope of the compound statement. */
 
18292
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
18293
};
 
18294
 
 
18295
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
18296
 *  Tree node representing an exception handler sequence. */
 
18297
 
 
18298
#line 18299 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18299
} // closed Puma
 
18300
class CCExprResolve;
 
18301
class CExprResolve;
 
18302
class WinIfExists;
 
18303
class WinImportHandler;
 
18304
class WinMacros;
 
18305
class WinAsm;
 
18306
class WinDeclSpecs;
 
18307
class WinMemberExplSpec;
 
18308
class WinTypeKeywords;
 
18309
class WinFriend;
 
18310
class ExtAC;
 
18311
class ExtACBuilderCoupling;
 
18312
class ExtACSyntaxCoupling;
 
18313
class ExtACTree;
 
18314
class ExtACKeywords;
 
18315
class ExtGnu;
 
18316
class PragmaOnceUnitState;
 
18317
class PragmaOnce;
 
18318
class CMatchSyntax;
 
18319
namespace Puma {
 
18320
 
 
18321
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18322
class CT_HandlerSeq : public CT_List {
 
18323
#line 18324 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18324
  friend class ::CCExprResolve;
 
18325
  friend class ::CExprResolve;
 
18326
  friend class ::WinIfExists;
 
18327
  friend class ::WinImportHandler;
 
18328
  friend class ::WinMacros;
 
18329
  friend class ::WinAsm;
 
18330
  friend class ::WinDeclSpecs;
 
18331
  friend class ::WinMemberExplSpec;
 
18332
  friend class ::WinTypeKeywords;
 
18333
  friend class ::WinFriend;
 
18334
  friend class ::ExtAC;
 
18335
  friend class ::ExtACBuilderCoupling;
 
18336
  friend class ::ExtACSyntaxCoupling;
 
18337
  friend class ::ExtACTree;
 
18338
  friend class ::ExtACKeywords;
 
18339
  friend class ::ExtGnu;
 
18340
  friend class ::PragmaOnceUnitState;
 
18341
  friend class ::PragmaOnce;
 
18342
  friend class ::CMatchSyntax;
 
18343
 
 
18344
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18345
 
 
18346
public:
 
18347
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18348
  static const char *NodeId ();
 
18349
  /** Get the name of the node. Can be compared with NodeId(). */
 
18350
  const char *NodeName () const { return NodeId (); }
 
18351
};
 
18352
 
 
18353
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
18354
 *  Tree node representing a template parameter list. */
 
18355
 
 
18356
#line 18357 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18357
} // closed Puma
 
18358
class CCExprResolve;
 
18359
class CExprResolve;
 
18360
class WinIfExists;
 
18361
class WinImportHandler;
 
18362
class WinMacros;
 
18363
class WinAsm;
 
18364
class WinDeclSpecs;
 
18365
class WinMemberExplSpec;
 
18366
class WinTypeKeywords;
 
18367
class WinFriend;
 
18368
class ExtAC;
 
18369
class ExtACBuilderCoupling;
 
18370
class ExtACSyntaxCoupling;
 
18371
class ExtACTree;
 
18372
class ExtACKeywords;
 
18373
class ExtGnu;
 
18374
class PragmaOnceUnitState;
 
18375
class PragmaOnce;
 
18376
class CMatchSyntax;
 
18377
namespace Puma {
 
18378
 
 
18379
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18380
class CT_TemplateParamList : public CT_List, public CSemScope {
 
18381
#line 18382 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18382
  friend class ::CCExprResolve;
 
18383
  friend class ::CExprResolve;
 
18384
  friend class ::WinIfExists;
 
18385
  friend class ::WinImportHandler;
 
18386
  friend class ::WinMacros;
 
18387
  friend class ::WinAsm;
 
18388
  friend class ::WinDeclSpecs;
 
18389
  friend class ::WinMemberExplSpec;
 
18390
  friend class ::WinTypeKeywords;
 
18391
  friend class ::WinFriend;
 
18392
  friend class ::ExtAC;
 
18393
  friend class ::ExtACBuilderCoupling;
 
18394
  friend class ::ExtACSyntaxCoupling;
 
18395
  friend class ::ExtACTree;
 
18396
  friend class ::ExtACKeywords;
 
18397
  friend class ::ExtGnu;
 
18398
  friend class ::PragmaOnceUnitState;
 
18399
  friend class ::PragmaOnce;
 
18400
  friend class ::CMatchSyntax;
 
18401
 
 
18402
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18403
 
 
18404
public:
 
18405
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
18406
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18407
  static const char *NodeId ();
 
18408
  /** Get the name of the node. Can be compared with NodeId(). */
 
18409
  const char *NodeName () const { return NodeId (); }
 
18410
  /** Get the scope of the template parameter list. */
 
18411
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
18412
};
 
18413
 
 
18414
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
18415
 *  Tree node representing a template argument list. */
 
18416
 
 
18417
#line 18418 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18418
} // closed Puma
 
18419
class CCExprResolve;
 
18420
class CExprResolve;
 
18421
class WinIfExists;
 
18422
class WinImportHandler;
 
18423
class WinMacros;
 
18424
class WinAsm;
 
18425
class WinDeclSpecs;
 
18426
class WinMemberExplSpec;
 
18427
class WinTypeKeywords;
 
18428
class WinFriend;
 
18429
class ExtAC;
 
18430
class ExtACBuilderCoupling;
 
18431
class ExtACSyntaxCoupling;
 
18432
class ExtACTree;
 
18433
class ExtACKeywords;
 
18434
class ExtGnu;
 
18435
class PragmaOnceUnitState;
 
18436
class PragmaOnce;
 
18437
class CMatchSyntax;
 
18438
namespace Puma {
 
18439
 
 
18440
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18441
class CT_TemplateArgList : public CT_List {
 
18442
#line 18443 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18443
  friend class ::CCExprResolve;
 
18444
  friend class ::CExprResolve;
 
18445
  friend class ::WinIfExists;
 
18446
  friend class ::WinImportHandler;
 
18447
  friend class ::WinMacros;
 
18448
  friend class ::WinAsm;
 
18449
  friend class ::WinDeclSpecs;
 
18450
  friend class ::WinMemberExplSpec;
 
18451
  friend class ::WinTypeKeywords;
 
18452
  friend class ::WinFriend;
 
18453
  friend class ::ExtAC;
 
18454
  friend class ::ExtACBuilderCoupling;
 
18455
  friend class ::ExtACSyntaxCoupling;
 
18456
  friend class ::ExtACTree;
 
18457
  friend class ::ExtACKeywords;
 
18458
  friend class ::ExtGnu;
 
18459
  friend class ::PragmaOnceUnitState;
 
18460
  friend class ::PragmaOnce;
 
18461
  friend class ::CMatchSyntax;
 
18462
 
 
18463
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18464
 
 
18465
public:
 
18466
  /** Constructor. */
 
18467
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
18468
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18469
  static const char *NodeId ();
 
18470
  /** Get the name of the node. Can be compared with NodeId(). */
 
18471
  const char *NodeName () const { return NodeId (); }
 
18472
};
 
18473
 
 
18474
/*****************************************************************************/
 
18475
/*                                                                           */
 
18476
/*                              Expressions                                  */
 
18477
/*                                                                           */
 
18478
/*****************************************************************************/
 
18479
 
 
18480
/** \class CT_Expression CTree.h Puma/CTree.h
 
18481
 *  Base class for all expression tree nodes. */
 
18482
 
 
18483
#line 18484 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18484
} // closed Puma
 
18485
class CCExprResolve;
 
18486
class CExprResolve;
 
18487
class WinIfExists;
 
18488
class WinImportHandler;
 
18489
class WinMacros;
 
18490
class WinAsm;
 
18491
class WinDeclSpecs;
 
18492
class WinMemberExplSpec;
 
18493
class WinTypeKeywords;
 
18494
class WinFriend;
 
18495
class ExtAC;
 
18496
class ExtACBuilderCoupling;
 
18497
class ExtACSyntaxCoupling;
 
18498
class ExtACTree;
 
18499
class ExtACKeywords;
 
18500
class ExtGnu;
 
18501
class PragmaOnceUnitState;
 
18502
class PragmaOnce;
 
18503
class CMatchSyntax;
 
18504
namespace Puma {
 
18505
 
 
18506
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18507
 
 
18508
#line 18509 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18509
} // closed Puma
 
18510
 
 
18511
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18512
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18513
#include "CCExprResolveH.ah"
 
18514
#endif
 
18515
namespace Puma {
 
18516
 
 
18517
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18518
 
 
18519
#line 18520 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18520
} // closed Puma
 
18521
 
 
18522
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18523
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18524
#include "CExprResolveH.ah"
 
18525
#endif
 
18526
namespace Puma {
 
18527
 
 
18528
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18529
class CT_Expression : public CTree, public CSemValue {
 
18530
#line 18531 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18531
  friend class ::CCExprResolve;
 
18532
  friend class ::CExprResolve;
 
18533
  friend class ::WinIfExists;
 
18534
  friend class ::WinImportHandler;
 
18535
  friend class ::WinMacros;
 
18536
  friend class ::WinAsm;
 
18537
  friend class ::WinDeclSpecs;
 
18538
  friend class ::WinMemberExplSpec;
 
18539
  friend class ::WinTypeKeywords;
 
18540
  friend class ::WinFriend;
 
18541
  friend class ::ExtAC;
 
18542
  friend class ::ExtACBuilderCoupling;
 
18543
  friend class ::ExtACSyntaxCoupling;
 
18544
  friend class ::ExtACTree;
 
18545
  friend class ::ExtACKeywords;
 
18546
  friend class ::ExtGnu;
 
18547
  friend class ::PragmaOnceUnitState;
 
18548
  friend class ::PragmaOnce;
 
18549
  friend class ::CMatchSyntax;
 
18550
 
 
18551
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18552
 
 
18553
protected:
 
18554
  /** Constructor. */
 
18555
  CT_Expression () {}
 
18556
 
 
18557
public:
 
18558
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18559
  static const char *NodeId ();
 
18560
  /** Get the name of the node. Can be compared with NodeId(). */
 
18561
  const char *NodeName () const { return NodeId (); }
 
18562
  /** Get the type of the expression.
 
18563
   *  \return The type information object or NULL. */
 
18564
  CTypeInfo *Type () const { return type; }
 
18565
  /** Get the value of the expression.
 
18566
   *  \return The value object or NULL. */
 
18567
  CExprValue *Value () const { return value; }
 
18568
  /** Get the semantic value information of the expression.
 
18569
   *  \return The value object or NULL. */
 
18570
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
18571
  /** Get this. */
 
18572
  virtual CT_Expression *IsExpression () { return this; }
 
18573
   private:
 
18574
  typedef CT_Expression CCExprResolveExpr;
 
18575
 
 
18576
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
18577
 public :
 
18578
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
18579
  typedef CT_Expression CExprResolveExpr;
 
18580
 
 
18581
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
18582
 public :
 
18583
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
18584
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18585
};
 
18586
 
 
18587
/** \class CT_Call CTree.h Puma/CTree.h
 
18588
 *  Tree node representing explicit or implicit function calls 
 
18589
 *  including built-in or user-defined functions and overloaded
 
18590
 *  operators. */
 
18591
 
 
18592
#line 18593 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18593
} // closed Puma
 
18594
class CCExprResolve;
 
18595
class CExprResolve;
 
18596
class WinIfExists;
 
18597
class WinImportHandler;
 
18598
class WinMacros;
 
18599
class WinAsm;
 
18600
class WinDeclSpecs;
 
18601
class WinMemberExplSpec;
 
18602
class WinTypeKeywords;
 
18603
class WinFriend;
 
18604
class ExtAC;
 
18605
class ExtACBuilderCoupling;
 
18606
class ExtACSyntaxCoupling;
 
18607
class ExtACTree;
 
18608
class ExtACKeywords;
 
18609
class ExtGnu;
 
18610
class PragmaOnceUnitState;
 
18611
class PragmaOnce;
 
18612
class CMatchSyntax;
 
18613
namespace Puma {
 
18614
 
 
18615
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18616
 
 
18617
#line 18618 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18618
} // closed Puma
 
18619
 
 
18620
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18621
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18622
#include "CCExprResolveH.ah"
 
18623
#endif
 
18624
namespace Puma {
 
18625
 
 
18626
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18627
 
 
18628
#line 18629 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18629
} // closed Puma
 
18630
 
 
18631
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18632
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18633
#include "CExprResolveH.ah"
 
18634
#endif
 
18635
namespace Puma {
 
18636
 
 
18637
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18638
class CT_Call : public CT_Expression, public CSemObject {
 
18639
#line 18640 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18640
  friend class ::CCExprResolve;
 
18641
  friend class ::CExprResolve;
 
18642
  friend class ::WinIfExists;
 
18643
  friend class ::WinImportHandler;
 
18644
  friend class ::WinMacros;
 
18645
  friend class ::WinAsm;
 
18646
  friend class ::WinDeclSpecs;
 
18647
  friend class ::WinMemberExplSpec;
 
18648
  friend class ::WinTypeKeywords;
 
18649
  friend class ::WinFriend;
 
18650
  friend class ::ExtAC;
 
18651
  friend class ::ExtACBuilderCoupling;
 
18652
  friend class ::ExtACSyntaxCoupling;
 
18653
  friend class ::ExtACTree;
 
18654
  friend class ::ExtACKeywords;
 
18655
  friend class ::ExtGnu;
 
18656
  friend class ::PragmaOnceUnitState;
 
18657
  friend class ::PragmaOnce;
 
18658
  friend class ::CMatchSyntax;
 
18659
 
 
18660
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18661
 
 
18662
protected:
 
18663
  /** Constructor. */
 
18664
  CT_Call () {}
 
18665
  
 
18666
public:
 
18667
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18668
  static const char *NodeId ();
 
18669
  /** Get the name of the node. Can be compared with NodeId(). */
 
18670
  const char *NodeName () const { return NodeId (); }
 
18671
  /** Get the semantic information of the call.
 
18672
   *  \return The semantic information or NULL. */
 
18673
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
18674
  /** Get this. */
 
18675
  CT_Call *IsCall () { return this; }
 
18676
   private:
 
18677
  typedef CT_Call CCExprResolveExpr;
 
18678
 
 
18679
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
18680
 public :
 
18681
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
18682
  typedef CT_Call CExprResolveExpr;
 
18683
 
 
18684
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
18685
 public :
 
18686
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
18687
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18688
};
 
18689
 
 
18690
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
18691
 *  Tree node representing implicit function calls detected by
 
18692
 *  the semantic analysis. */
 
18693
 
 
18694
#line 18695 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18695
} // closed Puma
 
18696
class CCExprResolve;
 
18697
class CExprResolve;
 
18698
class WinIfExists;
 
18699
class WinImportHandler;
 
18700
class WinMacros;
 
18701
class WinAsm;
 
18702
class WinDeclSpecs;
 
18703
class WinMemberExplSpec;
 
18704
class WinTypeKeywords;
 
18705
class WinFriend;
 
18706
class ExtAC;
 
18707
class ExtACBuilderCoupling;
 
18708
class ExtACSyntaxCoupling;
 
18709
class ExtACTree;
 
18710
class ExtACKeywords;
 
18711
class ExtGnu;
 
18712
class PragmaOnceUnitState;
 
18713
class PragmaOnce;
 
18714
class CMatchSyntax;
 
18715
namespace Puma {
 
18716
 
 
18717
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18718
 
 
18719
#line 18720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18720
} // closed Puma
 
18721
 
 
18722
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18723
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18724
#include "CCExprResolveH.ah"
 
18725
#endif
 
18726
namespace Puma {
 
18727
 
 
18728
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18729
 
 
18730
#line 18731 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18731
} // closed Puma
 
18732
 
 
18733
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18734
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18735
#include "CExprResolveH.ah"
 
18736
#endif
 
18737
namespace Puma {
 
18738
 
 
18739
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18740
class CT_ImplicitCall : public CT_Call {
 
18741
#line 18742 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18742
  friend class ::CCExprResolve;
 
18743
  friend class ::CExprResolve;
 
18744
  friend class ::WinIfExists;
 
18745
  friend class ::WinImportHandler;
 
18746
  friend class ::WinMacros;
 
18747
  friend class ::WinAsm;
 
18748
  friend class ::WinDeclSpecs;
 
18749
  friend class ::WinMemberExplSpec;
 
18750
  friend class ::WinTypeKeywords;
 
18751
  friend class ::WinFriend;
 
18752
  friend class ::ExtAC;
 
18753
  friend class ::ExtACBuilderCoupling;
 
18754
  friend class ::ExtACSyntaxCoupling;
 
18755
  friend class ::ExtACTree;
 
18756
  friend class ::ExtACKeywords;
 
18757
  friend class ::ExtGnu;
 
18758
  friend class ::PragmaOnceUnitState;
 
18759
  friend class ::PragmaOnce;
 
18760
  friend class ::CMatchSyntax;
 
18761
 
 
18762
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18763
 
 
18764
  CTree *_arg;
 
18765
 
 
18766
public:
 
18767
  /** Constructor.
 
18768
   *  \param arg The call argument. */
 
18769
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
18770
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18771
  static const char *NodeId ();
 
18772
  /** Get the name of the node. Can be compared with NodeId(). */
 
18773
  const char *NodeName () const { return NodeId (); }
 
18774
  /** Get the number of sons. */
 
18775
  int Sons () const { return 1; }
 
18776
  /** Get the n-th son.
 
18777
   *  \param n The index of the son.
 
18778
   *  \return The n-th son or NULL. */
 
18779
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
18780
  /** Replace a son.
 
18781
   *  \param old_son The son to replace.
 
18782
   *  \param new_son The new son. */
 
18783
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
18784
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
18785
   private:
 
18786
  typedef CT_ImplicitCall CCExprResolveExpr;
 
18787
 
 
18788
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
18789
 public :
 
18790
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
18791
  typedef CT_ImplicitCall CExprResolveExpr;
 
18792
 
 
18793
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
18794
 public :
 
18795
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
18796
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18797
};
 
18798
 
 
18799
/** \class CT_String CTree.h Puma/CTree.h
 
18800
 *  Tree node representing a string literal. */
 
18801
 
 
18802
#line 18803 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18803
} // closed Puma
 
18804
class CCExprResolve;
 
18805
class CExprResolve;
 
18806
class WinIfExists;
 
18807
class WinImportHandler;
 
18808
class WinMacros;
 
18809
class WinAsm;
 
18810
class WinDeclSpecs;
 
18811
class WinMemberExplSpec;
 
18812
class WinTypeKeywords;
 
18813
class WinFriend;
 
18814
class ExtAC;
 
18815
class ExtACBuilderCoupling;
 
18816
class ExtACSyntaxCoupling;
 
18817
class ExtACTree;
 
18818
class ExtACKeywords;
 
18819
class ExtGnu;
 
18820
class PragmaOnceUnitState;
 
18821
class PragmaOnce;
 
18822
class CMatchSyntax;
 
18823
namespace Puma {
 
18824
 
 
18825
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18826
 
 
18827
#line 18828 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18828
} // closed Puma
 
18829
 
 
18830
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18831
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18832
#include "CCExprResolveH.ah"
 
18833
#endif
 
18834
namespace Puma {
 
18835
 
 
18836
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18837
 
 
18838
#line 18839 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18839
} // closed Puma
 
18840
 
 
18841
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18842
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18843
#include "CExprResolveH.ah"
 
18844
#endif
 
18845
namespace Puma {
 
18846
 
 
18847
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18848
class CT_String : public CT_List, public CSemValue {
 
18849
#line 18850 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18850
  friend class ::CCExprResolve;
 
18851
  friend class ::CExprResolve;
 
18852
  friend class ::WinIfExists;
 
18853
  friend class ::WinImportHandler;
 
18854
  friend class ::WinMacros;
 
18855
  friend class ::WinAsm;
 
18856
  friend class ::WinDeclSpecs;
 
18857
  friend class ::WinMemberExplSpec;
 
18858
  friend class ::WinTypeKeywords;
 
18859
  friend class ::WinFriend;
 
18860
  friend class ::ExtAC;
 
18861
  friend class ::ExtACBuilderCoupling;
 
18862
  friend class ::ExtACSyntaxCoupling;
 
18863
  friend class ::ExtACTree;
 
18864
  friend class ::ExtACKeywords;
 
18865
  friend class ::ExtGnu;
 
18866
  friend class ::PragmaOnceUnitState;
 
18867
  friend class ::PragmaOnce;
 
18868
  friend class ::CMatchSyntax;
 
18869
 
 
18870
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18871
 
 
18872
public:
 
18873
  /** Constructor. 
 
18874
   *  \param size The number of sub-strings. */
 
18875
  CT_String (int size) : CT_List (size, 1) {}
 
18876
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18877
  static const char *NodeId ();
 
18878
  /** Get the name of the node. Can be compared with NodeId(). */
 
18879
  const char *NodeName () const { return NodeId (); }
 
18880
 
 
18881
  /** Get the type of the string. 
 
18882
   *  \return The type or NULL. */
 
18883
  CTypeInfo *Type () const { return type; }
 
18884
  /** Get the string value.
 
18885
   *  \return The value or NULL. */
 
18886
  CExprValue *Value () const { return value; }
 
18887
  /** Get the semantic value info object.
 
18888
   *  \return The semantic value object or NULL. */
 
18889
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
18890
  /** Get this. */
 
18891
  virtual CT_String *IsString () { return this; }
 
18892
   private:
 
18893
  typedef CT_String CCExprResolveExpr;
 
18894
 
 
18895
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
18896
 public :
 
18897
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
18898
  typedef CT_String CExprResolveExpr;
 
18899
 
 
18900
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
18901
 public :
 
18902
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
18903
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18904
};
 
18905
 
 
18906
/** \class CT_WideString CTree.h Puma/CTree.h
 
18907
 *  Tree node representing a wide string literal. */
 
18908
 
 
18909
#line 18910 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18910
} // closed Puma
 
18911
class CCExprResolve;
 
18912
class CExprResolve;
 
18913
class WinIfExists;
 
18914
class WinImportHandler;
 
18915
class WinMacros;
 
18916
class WinAsm;
 
18917
class WinDeclSpecs;
 
18918
class WinMemberExplSpec;
 
18919
class WinTypeKeywords;
 
18920
class WinFriend;
 
18921
class ExtAC;
 
18922
class ExtACBuilderCoupling;
 
18923
class ExtACSyntaxCoupling;
 
18924
class ExtACTree;
 
18925
class ExtACKeywords;
 
18926
class ExtGnu;
 
18927
class PragmaOnceUnitState;
 
18928
class PragmaOnce;
 
18929
class CMatchSyntax;
 
18930
namespace Puma {
 
18931
 
 
18932
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18933
 
 
18934
#line 18935 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18935
} // closed Puma
 
18936
 
 
18937
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18938
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
18939
#include "CCExprResolveH.ah"
 
18940
#endif
 
18941
namespace Puma {
 
18942
 
 
18943
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18944
 
 
18945
#line 18946 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18946
} // closed Puma
 
18947
 
 
18948
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18949
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
18950
#include "CExprResolveH.ah"
 
18951
#endif
 
18952
namespace Puma {
 
18953
 
 
18954
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18955
class CT_WideString : public CT_String {
 
18956
#line 18957 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
18957
  friend class ::CCExprResolve;
 
18958
  friend class ::CExprResolve;
 
18959
  friend class ::WinIfExists;
 
18960
  friend class ::WinImportHandler;
 
18961
  friend class ::WinMacros;
 
18962
  friend class ::WinAsm;
 
18963
  friend class ::WinDeclSpecs;
 
18964
  friend class ::WinMemberExplSpec;
 
18965
  friend class ::WinTypeKeywords;
 
18966
  friend class ::WinFriend;
 
18967
  friend class ::ExtAC;
 
18968
  friend class ::ExtACBuilderCoupling;
 
18969
  friend class ::ExtACSyntaxCoupling;
 
18970
  friend class ::ExtACTree;
 
18971
  friend class ::ExtACKeywords;
 
18972
  friend class ::ExtGnu;
 
18973
  friend class ::PragmaOnceUnitState;
 
18974
  friend class ::PragmaOnce;
 
18975
  friend class ::CMatchSyntax;
 
18976
 
 
18977
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18978
 
 
18979
public:
 
18980
  /** Constructor.
 
18981
   *  \param size The number of sub-strings. */
 
18982
  CT_WideString (int size) : CT_String (size) {}
 
18983
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
18984
  static const char *NodeId ();
 
18985
  /** Get the name of the node. Can be compared with NodeId(). */
 
18986
  const char *NodeName () const { return NodeId (); }
 
18987
   private:
 
18988
  typedef CT_WideString CCExprResolveExpr;
 
18989
 
 
18990
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
18991
 public :
 
18992
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
18993
  typedef CT_WideString CExprResolveExpr;
 
18994
 
 
18995
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
18996
 public :
 
18997
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
18998
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18999
};
 
19000
 
 
19001
/** \class CT_Integer CTree.h Puma/CTree.h
 
19002
 *  Tree node representing an integer constant. */
 
19003
 
 
19004
#line 19005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19005
} // closed Puma
 
19006
class CCExprResolve;
 
19007
class CExprResolve;
 
19008
class WinIfExists;
 
19009
class WinImportHandler;
 
19010
class WinMacros;
 
19011
class WinAsm;
 
19012
class WinDeclSpecs;
 
19013
class WinMemberExplSpec;
 
19014
class WinTypeKeywords;
 
19015
class WinFriend;
 
19016
class ExtAC;
 
19017
class ExtACBuilderCoupling;
 
19018
class ExtACSyntaxCoupling;
 
19019
class ExtACTree;
 
19020
class ExtACKeywords;
 
19021
class ExtGnu;
 
19022
class PragmaOnceUnitState;
 
19023
class PragmaOnce;
 
19024
class CMatchSyntax;
 
19025
namespace Puma {
 
19026
 
 
19027
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19028
 
 
19029
#line 19030 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19030
} // closed Puma
 
19031
 
 
19032
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19033
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19034
#include "CCExprResolveH.ah"
 
19035
#endif
 
19036
namespace Puma {
 
19037
 
 
19038
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19039
 
 
19040
#line 19041 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19041
} // closed Puma
 
19042
 
 
19043
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19044
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19045
#include "CExprResolveH.ah"
 
19046
#endif
 
19047
namespace Puma {
 
19048
 
 
19049
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19050
class CT_Integer : public CT_Expression {
 
19051
#line 19052 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19052
  friend class ::CCExprResolve;
 
19053
  friend class ::CExprResolve;
 
19054
  friend class ::WinIfExists;
 
19055
  friend class ::WinImportHandler;
 
19056
  friend class ::WinMacros;
 
19057
  friend class ::WinAsm;
 
19058
  friend class ::WinDeclSpecs;
 
19059
  friend class ::WinMemberExplSpec;
 
19060
  friend class ::WinTypeKeywords;
 
19061
  friend class ::WinFriend;
 
19062
  friend class ::ExtAC;
 
19063
  friend class ::ExtACBuilderCoupling;
 
19064
  friend class ::ExtACSyntaxCoupling;
 
19065
  friend class ::ExtACTree;
 
19066
  friend class ::ExtACKeywords;
 
19067
  friend class ::ExtGnu;
 
19068
  friend class ::PragmaOnceUnitState;
 
19069
  friend class ::PragmaOnce;
 
19070
  friend class ::CMatchSyntax;
 
19071
 
 
19072
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19073
 
 
19074
  CTree *_value;  // CT_Token
 
19075
 
 
19076
public:
 
19077
  /** Constructor.
 
19078
   *  \param token The token containing the integer value. */
 
19079
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
19080
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
19081
  static const char *NodeId ();
 
19082
  /** Get the name of the node. Can be compared with NodeId(). */
 
19083
  const char *NodeName () const { return NodeId (); }
 
19084
  /** Get the number of sons. */
 
19085
  int Sons () const { return _value ? 1 : 0; }
 
19086
  /** Get the n-th son.
 
19087
   *  \param n The index of the son.
 
19088
   *  \return The n-th son or NULL. */
 
19089
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
19090
  /** Replace a son.
 
19091
   *  \param old_son The son to replace.
 
19092
   *  \param new_son The new son. */
 
19093
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
19094
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
19095
   private:
 
19096
  typedef CT_Integer CCExprResolveExpr;
 
19097
 
 
19098
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
19099
 public :
 
19100
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
19101
  typedef CT_Integer CExprResolveExpr;
 
19102
 
 
19103
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
19104
 public :
 
19105
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
19106
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19107
};
 
19108
 
 
19109
/** \class CT_Character CTree.h Puma/CTree.h
 
19110
 *  Tree node representing a single character constant. */
 
19111
 
 
19112
#line 19113 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19113
} // closed Puma
 
19114
class CCExprResolve;
 
19115
class CExprResolve;
 
19116
class WinIfExists;
 
19117
class WinImportHandler;
 
19118
class WinMacros;
 
19119
class WinAsm;
 
19120
class WinDeclSpecs;
 
19121
class WinMemberExplSpec;
 
19122
class WinTypeKeywords;
 
19123
class WinFriend;
 
19124
class ExtAC;
 
19125
class ExtACBuilderCoupling;
 
19126
class ExtACSyntaxCoupling;
 
19127
class ExtACTree;
 
19128
class ExtACKeywords;
 
19129
class ExtGnu;
 
19130
class PragmaOnceUnitState;
 
19131
class PragmaOnce;
 
19132
class CMatchSyntax;
 
19133
namespace Puma {
 
19134
 
 
19135
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19136
 
 
19137
#line 19138 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19138
} // closed Puma
 
19139
 
 
19140
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19141
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19142
#include "CCExprResolveH.ah"
 
19143
#endif
 
19144
namespace Puma {
 
19145
 
 
19146
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19147
 
 
19148
#line 19149 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19149
} // closed Puma
 
19150
 
 
19151
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19152
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19153
#include "CExprResolveH.ah"
 
19154
#endif
 
19155
namespace Puma {
 
19156
 
 
19157
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19158
class CT_Character : public CT_Expression {
 
19159
#line 19160 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19160
  friend class ::CCExprResolve;
 
19161
  friend class ::CExprResolve;
 
19162
  friend class ::WinIfExists;
 
19163
  friend class ::WinImportHandler;
 
19164
  friend class ::WinMacros;
 
19165
  friend class ::WinAsm;
 
19166
  friend class ::WinDeclSpecs;
 
19167
  friend class ::WinMemberExplSpec;
 
19168
  friend class ::WinTypeKeywords;
 
19169
  friend class ::WinFriend;
 
19170
  friend class ::ExtAC;
 
19171
  friend class ::ExtACBuilderCoupling;
 
19172
  friend class ::ExtACSyntaxCoupling;
 
19173
  friend class ::ExtACTree;
 
19174
  friend class ::ExtACKeywords;
 
19175
  friend class ::ExtGnu;
 
19176
  friend class ::PragmaOnceUnitState;
 
19177
  friend class ::PragmaOnce;
 
19178
  friend class ::CMatchSyntax;
 
19179
 
 
19180
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19181
 
 
19182
  CTree *_value;  // CT_Token
 
19183
 
 
19184
public:
 
19185
  /** Constructor.
 
19186
   *  \param token The token containing the character value. */
 
19187
  CT_Character (CTree *token) { AddSon (_value, token); }
 
19188
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
19189
  static const char *NodeId ();
 
19190
  /** Get the name of the node. Can be compared with NodeId(). */
 
19191
  const char *NodeName () const { return NodeId (); }
 
19192
  /** Get the number of sons. */
 
19193
  int Sons () const { return 1; }
 
19194
  /** Get the n-th son.
 
19195
   *  \param n The index of the son.
 
19196
   *  \return The n-th son or NULL. */
 
19197
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
19198
  /** Replace a son.
 
19199
   *  \param old_son The son to replace.
 
19200
   *  \param new_son The new son. */
 
19201
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
19202
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
19203
   private:
 
19204
  typedef CT_Character CCExprResolveExpr;
 
19205
 
 
19206
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
19207
 public :
 
19208
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
19209
  typedef CT_Character CExprResolveExpr;
 
19210
 
 
19211
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
19212
 public :
 
19213
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
19214
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19215
};
 
19216
 
 
19217
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
19218
 *  Tree node representing a wide character constant. */
 
19219
 
 
19220
#line 19221 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19221
} // closed Puma
 
19222
class CCExprResolve;
 
19223
class CExprResolve;
 
19224
class WinIfExists;
 
19225
class WinImportHandler;
 
19226
class WinMacros;
 
19227
class WinAsm;
 
19228
class WinDeclSpecs;
 
19229
class WinMemberExplSpec;
 
19230
class WinTypeKeywords;
 
19231
class WinFriend;
 
19232
class ExtAC;
 
19233
class ExtACBuilderCoupling;
 
19234
class ExtACSyntaxCoupling;
 
19235
class ExtACTree;
 
19236
class ExtACKeywords;
 
19237
class ExtGnu;
 
19238
class PragmaOnceUnitState;
 
19239
class PragmaOnce;
 
19240
class CMatchSyntax;
 
19241
namespace Puma {
 
19242
 
 
19243
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19244
 
 
19245
#line 19246 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19246
} // closed Puma
 
19247
 
 
19248
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19249
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19250
#include "CCExprResolveH.ah"
 
19251
#endif
 
19252
namespace Puma {
 
19253
 
 
19254
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19255
 
 
19256
#line 19257 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19257
} // closed Puma
 
19258
 
 
19259
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19260
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19261
#include "CExprResolveH.ah"
 
19262
#endif
 
19263
namespace Puma {
 
19264
 
 
19265
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19266
class CT_WideCharacter : public CT_Character {
 
19267
#line 19268 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19268
  friend class ::CCExprResolve;
 
19269
  friend class ::CExprResolve;
 
19270
  friend class ::WinIfExists;
 
19271
  friend class ::WinImportHandler;
 
19272
  friend class ::WinMacros;
 
19273
  friend class ::WinAsm;
 
19274
  friend class ::WinDeclSpecs;
 
19275
  friend class ::WinMemberExplSpec;
 
19276
  friend class ::WinTypeKeywords;
 
19277
  friend class ::WinFriend;
 
19278
  friend class ::ExtAC;
 
19279
  friend class ::ExtACBuilderCoupling;
 
19280
  friend class ::ExtACSyntaxCoupling;
 
19281
  friend class ::ExtACTree;
 
19282
  friend class ::ExtACKeywords;
 
19283
  friend class ::ExtGnu;
 
19284
  friend class ::PragmaOnceUnitState;
 
19285
  friend class ::PragmaOnce;
 
19286
  friend class ::CMatchSyntax;
 
19287
 
 
19288
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19289
 
 
19290
public:
 
19291
  /** Constructor.
 
19292
   *  \param token The token containing the wide character value. */
 
19293
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
19294
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
19295
  static const char *NodeId ();
 
19296
  /** Get the name of the node. Can be compared with NodeId(). */
 
19297
  const char *NodeName () const { return NodeId (); }
 
19298
   private:
 
19299
  typedef CT_WideCharacter CCExprResolveExpr;
 
19300
 
 
19301
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
19302
 public :
 
19303
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
19304
  typedef CT_WideCharacter CExprResolveExpr;
 
19305
 
 
19306
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
19307
 public :
 
19308
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
19309
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19310
};
 
19311
 
 
19312
/** \class CT_Float CTree.h Puma/CTree.h
 
19313
 *  Tree node representing a floating point constant. */
 
19314
 
 
19315
#line 19316 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19316
} // closed Puma
 
19317
class CCExprResolve;
 
19318
class CExprResolve;
 
19319
class WinIfExists;
 
19320
class WinImportHandler;
 
19321
class WinMacros;
 
19322
class WinAsm;
 
19323
class WinDeclSpecs;
 
19324
class WinMemberExplSpec;
 
19325
class WinTypeKeywords;
 
19326
class WinFriend;
 
19327
class ExtAC;
 
19328
class ExtACBuilderCoupling;
 
19329
class ExtACSyntaxCoupling;
 
19330
class ExtACTree;
 
19331
class ExtACKeywords;
 
19332
class ExtGnu;
 
19333
class PragmaOnceUnitState;
 
19334
class PragmaOnce;
 
19335
class CMatchSyntax;
 
19336
namespace Puma {
 
19337
 
 
19338
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19339
 
 
19340
#line 19341 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19341
} // closed Puma
 
19342
 
 
19343
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19344
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19345
#include "CCExprResolveH.ah"
 
19346
#endif
 
19347
namespace Puma {
 
19348
 
 
19349
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19350
 
 
19351
#line 19352 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19352
} // closed Puma
 
19353
 
 
19354
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19355
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19356
#include "CExprResolveH.ah"
 
19357
#endif
 
19358
namespace Puma {
 
19359
 
 
19360
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19361
class CT_Float : public CT_Expression {
 
19362
#line 19363 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19363
  friend class ::CCExprResolve;
 
19364
  friend class ::CExprResolve;
 
19365
  friend class ::WinIfExists;
 
19366
  friend class ::WinImportHandler;
 
19367
  friend class ::WinMacros;
 
19368
  friend class ::WinAsm;
 
19369
  friend class ::WinDeclSpecs;
 
19370
  friend class ::WinMemberExplSpec;
 
19371
  friend class ::WinTypeKeywords;
 
19372
  friend class ::WinFriend;
 
19373
  friend class ::ExtAC;
 
19374
  friend class ::ExtACBuilderCoupling;
 
19375
  friend class ::ExtACSyntaxCoupling;
 
19376
  friend class ::ExtACTree;
 
19377
  friend class ::ExtACKeywords;
 
19378
  friend class ::ExtGnu;
 
19379
  friend class ::PragmaOnceUnitState;
 
19380
  friend class ::PragmaOnce;
 
19381
  friend class ::CMatchSyntax;
 
19382
 
 
19383
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19384
 
 
19385
  CTree *_value;  // CT_Token
 
19386
 
 
19387
public:
 
19388
  /** Constructor.
 
19389
   *  \param token The token containing the floating point value. */
 
19390
  CT_Float (CTree *token) { AddSon (_value, token); }
 
19391
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
19392
  static const char *NodeId ();
 
19393
  /** Get the name of the node. Can be compared with NodeId(). */
 
19394
  const char *NodeName () const { return NodeId (); }
 
19395
  /** Get the number of sons. */
 
19396
  int Sons () const { return 1; }
 
19397
  /** Get the n-th son.
 
19398
   *  \param n The index of the son.
 
19399
   *  \return The n-th son or NULL. */
 
19400
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
19401
  /** Replace a son.
 
19402
   *  \param old_son The son to replace.
 
19403
   *  \param new_son The new son. */
 
19404
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
19405
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
19406
   private:
 
19407
  typedef CT_Float CCExprResolveExpr;
 
19408
 
 
19409
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
19410
 public :
 
19411
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
19412
  typedef CT_Float CExprResolveExpr;
 
19413
 
 
19414
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
19415
 public :
 
19416
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
19417
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19418
};
 
19419
 
 
19420
/** \class CT_Bool CTree.h Puma/CTree.h
 
19421
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
 
19422
 
 
19423
#line 19424 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19424
} // closed Puma
 
19425
class CCExprResolve;
 
19426
class CExprResolve;
 
19427
class WinIfExists;
 
19428
class WinImportHandler;
 
19429
class WinMacros;
 
19430
class WinAsm;
 
19431
class WinDeclSpecs;
 
19432
class WinMemberExplSpec;
 
19433
class WinTypeKeywords;
 
19434
class WinFriend;
 
19435
class ExtAC;
 
19436
class ExtACBuilderCoupling;
 
19437
class ExtACSyntaxCoupling;
 
19438
class ExtACTree;
 
19439
class ExtACKeywords;
 
19440
class ExtGnu;
 
19441
class PragmaOnceUnitState;
 
19442
class PragmaOnce;
 
19443
class CMatchSyntax;
 
19444
namespace Puma {
 
19445
 
 
19446
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19447
 
 
19448
#line 19449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19449
} // closed Puma
 
19450
 
 
19451
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19452
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19453
#include "CCExprResolveH.ah"
 
19454
#endif
 
19455
namespace Puma {
 
19456
 
 
19457
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19458
 
 
19459
#line 19460 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19460
} // closed Puma
 
19461
 
 
19462
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19463
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19464
#include "CExprResolveH.ah"
 
19465
#endif
 
19466
namespace Puma {
 
19467
 
 
19468
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19469
class CT_Bool : public CT_Expression {
 
19470
#line 19471 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19471
  friend class ::CCExprResolve;
 
19472
  friend class ::CExprResolve;
 
19473
  friend class ::WinIfExists;
 
19474
  friend class ::WinImportHandler;
 
19475
  friend class ::WinMacros;
 
19476
  friend class ::WinAsm;
 
19477
  friend class ::WinDeclSpecs;
 
19478
  friend class ::WinMemberExplSpec;
 
19479
  friend class ::WinTypeKeywords;
 
19480
  friend class ::WinFriend;
 
19481
  friend class ::ExtAC;
 
19482
  friend class ::ExtACBuilderCoupling;
 
19483
  friend class ::ExtACSyntaxCoupling;
 
19484
  friend class ::ExtACTree;
 
19485
  friend class ::ExtACKeywords;
 
19486
  friend class ::ExtGnu;
 
19487
  friend class ::PragmaOnceUnitState;
 
19488
  friend class ::PragmaOnce;
 
19489
  friend class ::CMatchSyntax;
 
19490
 
 
19491
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19492
 
 
19493
  CTree *_value;  // CT_Token
 
19494
 
 
19495
public:
 
19496
  /** Constructor.
 
19497
   *  \param token The token containing the boolean value. */
 
19498
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
19499
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
19500
  static const char *NodeId ();
 
19501
  /** Get the name of the node. Can be compared with NodeId(). */
 
19502
  const char *NodeName () const { return NodeId (); }
 
19503
  /** Get the number of sons. */
 
19504
  int Sons () const { return 1; }
 
19505
  /** Get the n-th son.
 
19506
   *  \param n The index of the son.
 
19507
   *  \return The n-th son or NULL. */
 
19508
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
19509
  /** Replace a son.
 
19510
   *  \param old_son The son to replace.
 
19511
   *  \param new_son The new son. */
 
19512
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
19513
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
19514
   private:
 
19515
  typedef CT_Bool CCExprResolveExpr;
 
19516
 
 
19517
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
19518
 public :
 
19519
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
19520
  typedef CT_Bool CExprResolveExpr;
 
19521
 
 
19522
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
19523
 public :
 
19524
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
19525
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19526
};
 
19527
 
 
19528
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
19529
 *  Tree node representing a braced expression, e.g. (a+b). */
 
19530
 
 
19531
#line 19532 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19532
} // closed Puma
 
19533
class CCExprResolve;
 
19534
class CExprResolve;
 
19535
class WinIfExists;
 
19536
class WinImportHandler;
 
19537
class WinMacros;
 
19538
class WinAsm;
 
19539
class WinDeclSpecs;
 
19540
class WinMemberExplSpec;
 
19541
class WinTypeKeywords;
 
19542
class WinFriend;
 
19543
class ExtAC;
 
19544
class ExtACBuilderCoupling;
 
19545
class ExtACSyntaxCoupling;
 
19546
class ExtACTree;
 
19547
class ExtACKeywords;
 
19548
class ExtGnu;
 
19549
class PragmaOnceUnitState;
 
19550
class PragmaOnce;
 
19551
class CMatchSyntax;
 
19552
namespace Puma {
 
19553
 
 
19554
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19555
 
 
19556
#line 19557 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19557
} // closed Puma
 
19558
 
 
19559
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19560
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19561
#include "CCExprResolveH.ah"
 
19562
#endif
 
19563
namespace Puma {
 
19564
 
 
19565
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19566
 
 
19567
#line 19568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19568
} // closed Puma
 
19569
 
 
19570
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19571
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19572
#include "CExprResolveH.ah"
 
19573
#endif
 
19574
namespace Puma {
 
19575
 
 
19576
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19577
class CT_BracedExpr : public CT_Expression {
 
19578
#line 19579 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19579
  friend class ::CCExprResolve;
 
19580
  friend class ::CExprResolve;
 
19581
  friend class ::WinIfExists;
 
19582
  friend class ::WinImportHandler;
 
19583
  friend class ::WinMacros;
 
19584
  friend class ::WinAsm;
 
19585
  friend class ::WinDeclSpecs;
 
19586
  friend class ::WinMemberExplSpec;
 
19587
  friend class ::WinTypeKeywords;
 
19588
  friend class ::WinFriend;
 
19589
  friend class ::ExtAC;
 
19590
  friend class ::ExtACBuilderCoupling;
 
19591
  friend class ::ExtACSyntaxCoupling;
 
19592
  friend class ::ExtACTree;
 
19593
  friend class ::ExtACKeywords;
 
19594
  friend class ::ExtGnu;
 
19595
  friend class ::PragmaOnceUnitState;
 
19596
  friend class ::PragmaOnce;
 
19597
  friend class ::CMatchSyntax;
 
19598
 
 
19599
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19600
 
 
19601
  CTree *sons[3]; // open, expr, close
 
19602
 
 
19603
public:
 
19604
  /** Constructor.
 
19605
   *  \param o The opening brace.
 
19606
   *  \param e The enclosed expression.
 
19607
   *  \param c The closing brace. */
 
19608
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
 
19609
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
 
19610
  }
 
19611
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
19612
  static const char *NodeId ();
 
19613
  /** Get the name of the node. Can be compared with NodeId(). */
 
19614
  const char *NodeName () const { return NodeId (); }
 
19615
  /** Get the number of sons. */
 
19616
  int Sons () const { return 3; }
 
19617
  /** Get the n-th son.
 
19618
   *  \param n The index of the son.
 
19619
   *  \return The n-th son or NULL. */
 
19620
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
19621
  /** Get the enclosed expression. */
 
19622
  CTree *Expr () const { return sons[1]; }
 
19623
  /** Get the type of the enclosed expression. */
 
19624
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
19625
  /** Get the value of the enclosed expression. */
 
19626
  CExprValue *Value () const { return Expr ()->Value (); }
 
19627
  /** Get the semantic value object. */
 
19628
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
19629
  /** Replace a son.
 
19630
   *  \param old_son The son to replace.
 
19631
   *  \param new_son The new son. */
 
19632
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
19633
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
19634
  }
 
19635
   private:
 
19636
  typedef CT_BracedExpr CCExprResolveExpr;
 
19637
 
 
19638
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
19639
 public :
 
19640
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
19641
  typedef CT_BracedExpr CExprResolveExpr;
 
19642
 
 
19643
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
19644
 public :
 
19645
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
19646
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19647
};
 
19648
 
 
19649
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
19650
 *  Base class for all tree nodes representing a name. */
 
19651
 
 
19652
#line 19653 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19653
} // closed Puma
 
19654
class CCExprResolve;
 
19655
class CExprResolve;
 
19656
class WinIfExists;
 
19657
class WinImportHandler;
 
19658
class WinMacros;
 
19659
class WinAsm;
 
19660
class WinDeclSpecs;
 
19661
class WinMemberExplSpec;
 
19662
class WinTypeKeywords;
 
19663
class WinFriend;
 
19664
class ExtAC;
 
19665
class ExtACBuilderCoupling;
 
19666
class ExtACSyntaxCoupling;
 
19667
class ExtACTree;
 
19668
class ExtACKeywords;
 
19669
class ExtGnu;
 
19670
class PragmaOnceUnitState;
 
19671
class PragmaOnce;
 
19672
class CMatchSyntax;
 
19673
namespace Puma {
 
19674
 
 
19675
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19676
 
 
19677
#line 19678 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19678
} // closed Puma
 
19679
 
 
19680
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19681
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19682
#include "CCExprResolveH.ah"
 
19683
#endif
 
19684
namespace Puma {
 
19685
 
 
19686
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19687
 
 
19688
#line 19689 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19689
} // closed Puma
 
19690
 
 
19691
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19692
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19693
#include "CExprResolveH.ah"
 
19694
#endif
 
19695
namespace Puma {
 
19696
 
 
19697
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19698
class CT_SimpleName : public CT_List, public Printable, 
 
19699
                      public CSemValue, public CSemObject {
 
19700
#line 19701 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19701
  friend class ::CCExprResolve;
 
19702
  friend class ::CExprResolve;
 
19703
  friend class ::WinIfExists;
 
19704
  friend class ::WinImportHandler;
 
19705
  friend class ::WinMacros;
 
19706
  friend class ::WinAsm;
 
19707
  friend class ::WinDeclSpecs;
 
19708
  friend class ::WinMemberExplSpec;
 
19709
  friend class ::WinTypeKeywords;
 
19710
  friend class ::WinFriend;
 
19711
  friend class ::ExtAC;
 
19712
  friend class ::ExtACBuilderCoupling;
 
19713
  friend class ::ExtACSyntaxCoupling;
 
19714
  friend class ::ExtACTree;
 
19715
  friend class ::ExtACKeywords;
 
19716
  friend class ::ExtGnu;
 
19717
  friend class ::PragmaOnceUnitState;
 
19718
  friend class ::PragmaOnce;
 
19719
  friend class ::CMatchSyntax;
 
19720
 
 
19721
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19722
 
 
19723
protected:
 
19724
  /** Constructor.
 
19725
   *  \param size The number of sub-names (for qualified names). */
 
19726
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
19727
  /** Constructor.
 
19728
   *  \param size The number of sub-names (for qualified names). 
 
19729
   *  \param properties Additional name list properties (for root qualified names). */
 
19730
  CT_SimpleName (int size, int properties) : 
 
19731
    CT_List (size, 2, properties) {}
 
19732
  
 
19733
public:
 
19734
  /** Constructor.
 
19735
   *  \param n The sub-tree containing the name. */
 
19736
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
19737
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
19738
  static const char *NodeId ();
 
19739
  /** Get the name of the node. Can be compared with NodeId(). */
 
19740
  const char *NodeName () const { return NodeId (); }
 
19741
  /** Get the string containing the name. */
 
19742
  virtual const char *Text () const 
 
19743
   { return Son (Sons ()-1)->token ()->text (); }
 
19744
  /** Print the name on the given stream. 
 
19745
   *  \param os The output stream. */
 
19746
  virtual void print (ostream &os) const { os << Text (); }
 
19747
  /** Get this. */
 
19748
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
19749
  /** Get the type of the entity represented by the name. */
 
19750
  CTypeInfo *Type () const { return type; }
 
19751
  /** Get the value of the entity represented by the name. */ 
 
19752
  CExprValue *Value () const { return value; }
 
19753
  /** Get the sematic value information object. */
 
19754
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
19755
  /** Get the sematic information object. */
 
19756
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
19757
  /** Get this. */
 
19758
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
19759
 
 
19760
public:
 
19761
  /** Own new operator reusing memory. */
 
19762
  void *operator new (size_t);
 
19763
  /** Own delete operator. */
 
19764
  void operator delete (void *);
 
19765
   private:
 
19766
  typedef CT_SimpleName CCExprResolveExpr;
 
19767
 
 
19768
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
19769
 public :
 
19770
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
19771
  typedef CT_SimpleName CExprResolveExpr;
 
19772
 
 
19773
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
19774
 public :
 
19775
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
19776
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19777
};
 
19778
 
 
19779
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
19780
 *  Base class for tree nodes representing a special name, like destructor names. */
 
19781
 
 
19782
#line 19783 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19783
} // closed Puma
 
19784
class CCExprResolve;
 
19785
class CExprResolve;
 
19786
class WinIfExists;
 
19787
class WinImportHandler;
 
19788
class WinMacros;
 
19789
class WinAsm;
 
19790
class WinDeclSpecs;
 
19791
class WinMemberExplSpec;
 
19792
class WinTypeKeywords;
 
19793
class WinFriend;
 
19794
class ExtAC;
 
19795
class ExtACBuilderCoupling;
 
19796
class ExtACSyntaxCoupling;
 
19797
class ExtACTree;
 
19798
class ExtACKeywords;
 
19799
class ExtGnu;
 
19800
class PragmaOnceUnitState;
 
19801
class PragmaOnce;
 
19802
class CMatchSyntax;
 
19803
namespace Puma {
 
19804
 
 
19805
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19806
 
 
19807
#line 19808 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19808
} // closed Puma
 
19809
 
 
19810
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19811
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19812
#include "CCExprResolveH.ah"
 
19813
#endif
 
19814
namespace Puma {
 
19815
 
 
19816
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19817
 
 
19818
#line 19819 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19819
} // closed Puma
 
19820
 
 
19821
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19822
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19823
#include "CExprResolveH.ah"
 
19824
#endif
 
19825
namespace Puma {
 
19826
 
 
19827
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19828
class CT_SpecialName : public CT_SimpleName {
 
19829
#line 19830 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19830
  friend class ::CCExprResolve;
 
19831
  friend class ::CExprResolve;
 
19832
  friend class ::WinIfExists;
 
19833
  friend class ::WinImportHandler;
 
19834
  friend class ::WinMacros;
 
19835
  friend class ::WinAsm;
 
19836
  friend class ::WinDeclSpecs;
 
19837
  friend class ::WinMemberExplSpec;
 
19838
  friend class ::WinTypeKeywords;
 
19839
  friend class ::WinFriend;
 
19840
  friend class ::ExtAC;
 
19841
  friend class ::ExtACBuilderCoupling;
 
19842
  friend class ::ExtACSyntaxCoupling;
 
19843
  friend class ::ExtACTree;
 
19844
  friend class ::ExtACKeywords;
 
19845
  friend class ::ExtGnu;
 
19846
  friend class ::PragmaOnceUnitState;
 
19847
  friend class ::PragmaOnce;
 
19848
  friend class ::CMatchSyntax;
 
19849
 
 
19850
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19851
 
 
19852
  char *_name;
 
19853
  
 
19854
protected:
 
19855
  /** Constructor.
 
19856
   *  \param size The number of sub-names (for qualified names). */
 
19857
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
 
19858
  
 
19859
public:
 
19860
  /** Destructor. Deletes the name string. */
 
19861
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
19862
  /** Get the string containing the name. */
 
19863
  const char *Text () const { return _name; }
 
19864
  /** Set the name. The name is copied.
 
19865
   *  \param n The name. */
 
19866
  void Name (const char *n) { 
 
19867
    if (n) { 
 
19868
      _name = new char[strlen(n) + 1];
 
19869
      strcpy (_name,n);
 
19870
    }
 
19871
  }
 
19872
 
 
19873
public:
 
19874
  /** Own new operator reusing memory. */
 
19875
  void *operator new (size_t);
 
19876
  /** Own delete operator. */
 
19877
  void operator delete (void *);
 
19878
   private:
 
19879
  typedef CT_SpecialName CCExprResolveExpr;
 
19880
 
 
19881
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
19882
 public :
 
19883
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
19884
  typedef CT_SpecialName CExprResolveExpr;
 
19885
 
 
19886
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
19887
 public :
 
19888
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
19889
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19890
};
 
19891
 
 
19892
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
19893
 *  Tree node representing a private name. Private names 
 
19894
 *  are generated names for abstract declarators etc. */
 
19895
 
 
19896
#line 19897 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19897
} // closed Puma
 
19898
class CCExprResolve;
 
19899
class CExprResolve;
 
19900
class WinIfExists;
 
19901
class WinImportHandler;
 
19902
class WinMacros;
 
19903
class WinAsm;
 
19904
class WinDeclSpecs;
 
19905
class WinMemberExplSpec;
 
19906
class WinTypeKeywords;
 
19907
class WinFriend;
 
19908
class ExtAC;
 
19909
class ExtACBuilderCoupling;
 
19910
class ExtACSyntaxCoupling;
 
19911
class ExtACTree;
 
19912
class ExtACKeywords;
 
19913
class ExtGnu;
 
19914
class PragmaOnceUnitState;
 
19915
class PragmaOnce;
 
19916
class CMatchSyntax;
 
19917
namespace Puma {
 
19918
 
 
19919
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19920
 
 
19921
#line 19922 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19922
} // closed Puma
 
19923
 
 
19924
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19925
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
19926
#include "CCExprResolveH.ah"
 
19927
#endif
 
19928
namespace Puma {
 
19929
 
 
19930
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19931
 
 
19932
#line 19933 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19933
} // closed Puma
 
19934
 
 
19935
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19936
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
19937
#include "CExprResolveH.ah"
 
19938
#endif
 
19939
namespace Puma {
 
19940
 
 
19941
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19942
class CT_PrivateName : public CT_SpecialName {
 
19943
#line 19944 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
19944
  friend class ::CCExprResolve;
 
19945
  friend class ::CExprResolve;
 
19946
  friend class ::WinIfExists;
 
19947
  friend class ::WinImportHandler;
 
19948
  friend class ::WinMacros;
 
19949
  friend class ::WinAsm;
 
19950
  friend class ::WinDeclSpecs;
 
19951
  friend class ::WinMemberExplSpec;
 
19952
  friend class ::WinTypeKeywords;
 
19953
  friend class ::WinFriend;
 
19954
  friend class ::ExtAC;
 
19955
  friend class ::ExtACBuilderCoupling;
 
19956
  friend class ::ExtACSyntaxCoupling;
 
19957
  friend class ::ExtACTree;
 
19958
  friend class ::ExtACKeywords;
 
19959
  friend class ::ExtGnu;
 
19960
  friend class ::PragmaOnceUnitState;
 
19961
  friend class ::PragmaOnce;
 
19962
  friend class ::CMatchSyntax;
 
19963
 
 
19964
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19965
 
 
19966
public:
 
19967
  /** Constructor.
 
19968
   *  \param n The private (generated) name. */
 
19969
  CT_PrivateName (const char *n) { Name (n); }
 
19970
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
19971
  static const char *NodeId ();
 
19972
  /** Get the name of the node. Can be compared with NodeId(). */
 
19973
  const char *NodeName () const { return NodeId (); }
 
19974
  /** Get the number of sons. */
 
19975
  int Sons () const { return 0; }
 
19976
  /** Get the n-th son.
 
19977
   *  \param n The index of the son.
 
19978
   *  \return The n-th son or NULL. */
 
19979
  CTree *Son (int n) const { return (CTree*)0; }
 
19980
 
 
19981
public:
 
19982
  /** Own new operator reusing memory. */
 
19983
  void *operator new (size_t);
 
19984
  /** Own delete operator. */
 
19985
  void operator delete (void *);
 
19986
   private:
 
19987
  typedef CT_PrivateName CCExprResolveExpr;
 
19988
 
 
19989
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
19990
 public :
 
19991
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
19992
  typedef CT_PrivateName CExprResolveExpr;
 
19993
 
 
19994
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
19995
 public :
 
19996
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
19997
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19998
};
 
19999
 
 
20000
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
20001
 *  Tree node representing a destructor name. */
 
20002
 
 
20003
#line 20004 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20004
} // closed Puma
 
20005
class CCExprResolve;
 
20006
class CExprResolve;
 
20007
class WinIfExists;
 
20008
class WinImportHandler;
 
20009
class WinMacros;
 
20010
class WinAsm;
 
20011
class WinDeclSpecs;
 
20012
class WinMemberExplSpec;
 
20013
class WinTypeKeywords;
 
20014
class WinFriend;
 
20015
class ExtAC;
 
20016
class ExtACBuilderCoupling;
 
20017
class ExtACSyntaxCoupling;
 
20018
class ExtACTree;
 
20019
class ExtACKeywords;
 
20020
class ExtGnu;
 
20021
class PragmaOnceUnitState;
 
20022
class PragmaOnce;
 
20023
class CMatchSyntax;
 
20024
namespace Puma {
 
20025
 
 
20026
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20027
 
 
20028
#line 20029 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20029
} // closed Puma
 
20030
 
 
20031
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20032
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20033
#include "CCExprResolveH.ah"
 
20034
#endif
 
20035
namespace Puma {
 
20036
 
 
20037
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20038
 
 
20039
#line 20040 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20040
} // closed Puma
 
20041
 
 
20042
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20043
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20044
#include "CExprResolveH.ah"
 
20045
#endif
 
20046
namespace Puma {
 
20047
 
 
20048
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20049
class CT_DestructorName : public CT_SpecialName {
 
20050
#line 20051 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20051
  friend class ::CCExprResolve;
 
20052
  friend class ::CExprResolve;
 
20053
  friend class ::WinIfExists;
 
20054
  friend class ::WinImportHandler;
 
20055
  friend class ::WinMacros;
 
20056
  friend class ::WinAsm;
 
20057
  friend class ::WinDeclSpecs;
 
20058
  friend class ::WinMemberExplSpec;
 
20059
  friend class ::WinTypeKeywords;
 
20060
  friend class ::WinFriend;
 
20061
  friend class ::ExtAC;
 
20062
  friend class ::ExtACBuilderCoupling;
 
20063
  friend class ::ExtACSyntaxCoupling;
 
20064
  friend class ::ExtACTree;
 
20065
  friend class ::ExtACKeywords;
 
20066
  friend class ::ExtGnu;
 
20067
  friend class ::PragmaOnceUnitState;
 
20068
  friend class ::PragmaOnce;
 
20069
  friend class ::CMatchSyntax;
 
20070
 
 
20071
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20072
 
 
20073
public:
 
20074
  /** Constructor.
 
20075
   *  \param t The tilde operator.
 
20076
   *  \param n The class name. */
 
20077
  CT_DestructorName (CTree *t, CTree *n);
 
20078
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
20079
  static const char *NodeId ();
 
20080
  /** Get the name of the node. Can be compared with NodeId(). */
 
20081
  const char *NodeName () const { return NodeId (); }
 
20082
 
 
20083
public:
 
20084
  /** Own new operator reusing memory. */
 
20085
  void *operator new (size_t);
 
20086
  /** Own delete operator. */
 
20087
  void operator delete (void *);
 
20088
   private:
 
20089
  typedef CT_DestructorName CCExprResolveExpr;
 
20090
 
 
20091
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20092
 public :
 
20093
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
20094
  typedef CT_DestructorName CExprResolveExpr;
 
20095
 
 
20096
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20097
 public :
 
20098
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20099
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20100
};
 
20101
 
 
20102
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
20103
 *  Tree node representing a template name. */
 
20104
 
 
20105
#line 20106 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20106
} // closed Puma
 
20107
class CCExprResolve;
 
20108
class CExprResolve;
 
20109
class WinIfExists;
 
20110
class WinImportHandler;
 
20111
class WinMacros;
 
20112
class WinAsm;
 
20113
class WinDeclSpecs;
 
20114
class WinMemberExplSpec;
 
20115
class WinTypeKeywords;
 
20116
class WinFriend;
 
20117
class ExtAC;
 
20118
class ExtACBuilderCoupling;
 
20119
class ExtACSyntaxCoupling;
 
20120
class ExtACTree;
 
20121
class ExtACKeywords;
 
20122
class ExtGnu;
 
20123
class PragmaOnceUnitState;
 
20124
class PragmaOnce;
 
20125
class CMatchSyntax;
 
20126
namespace Puma {
 
20127
 
 
20128
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20129
 
 
20130
#line 20131 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20131
} // closed Puma
 
20132
 
 
20133
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20134
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20135
#include "CCExprResolveH.ah"
 
20136
#endif
 
20137
namespace Puma {
 
20138
 
 
20139
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20140
 
 
20141
#line 20142 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20142
} // closed Puma
 
20143
 
 
20144
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20145
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20146
#include "CExprResolveH.ah"
 
20147
#endif
 
20148
namespace Puma {
 
20149
 
 
20150
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20151
class CT_TemplateName : public CT_SpecialName {
 
20152
#line 20153 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20153
  friend class ::CCExprResolve;
 
20154
  friend class ::CExprResolve;
 
20155
  friend class ::WinIfExists;
 
20156
  friend class ::WinImportHandler;
 
20157
  friend class ::WinMacros;
 
20158
  friend class ::WinAsm;
 
20159
  friend class ::WinDeclSpecs;
 
20160
  friend class ::WinMemberExplSpec;
 
20161
  friend class ::WinTypeKeywords;
 
20162
  friend class ::WinFriend;
 
20163
  friend class ::ExtAC;
 
20164
  friend class ::ExtACBuilderCoupling;
 
20165
  friend class ::ExtACSyntaxCoupling;
 
20166
  friend class ::ExtACTree;
 
20167
  friend class ::ExtACKeywords;
 
20168
  friend class ::ExtGnu;
 
20169
  friend class ::PragmaOnceUnitState;
 
20170
  friend class ::PragmaOnce;
 
20171
  friend class ::CMatchSyntax;
 
20172
 
 
20173
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20174
 
 
20175
public:
 
20176
  /** Constructor.
 
20177
   *  \param n The template class or function name.
 
20178
   *  \param a The template argument list. */
 
20179
  CT_TemplateName (CTree *n, CTree *a) 
 
20180
   { AddSon (n); AddSon (a); }
 
20181
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
20182
  static const char *NodeId ();
 
20183
  /** Get the name of the node. Can be compared with NodeId(). */
 
20184
  const char *NodeName () const { return NodeId (); }
 
20185
  /** Get the template argument list. */
 
20186
  CT_TemplateArgList *Arguments () const 
 
20187
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
20188
  /** Get the template class or function name. */
 
20189
  CT_SimpleName *TemplateName () const 
 
20190
   { return (CT_SimpleName*)Son (Sons ()-2); }
 
20191
  // may change in the future
 
20192
  const char *Text () const { return TemplateName ()->Text (); }
 
20193
 
 
20194
public:
 
20195
  /** Own new operator reusing memory. */
 
20196
  void *operator new (size_t);
 
20197
  /** Own delete operator. */
 
20198
  void operator delete (void *);
 
20199
   private:
 
20200
  typedef CT_TemplateName CCExprResolveExpr;
 
20201
 
 
20202
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20203
 public :
 
20204
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
20205
  typedef CT_TemplateName CExprResolveExpr;
 
20206
 
 
20207
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20208
 public :
 
20209
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20210
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20211
};
 
20212
 
 
20213
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
20214
 *  Tree node representing the name of an overloaded operator. */
 
20215
 
 
20216
#line 20217 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20217
} // closed Puma
 
20218
class CCExprResolve;
 
20219
class CExprResolve;
 
20220
class WinIfExists;
 
20221
class WinImportHandler;
 
20222
class WinMacros;
 
20223
class WinAsm;
 
20224
class WinDeclSpecs;
 
20225
class WinMemberExplSpec;
 
20226
class WinTypeKeywords;
 
20227
class WinFriend;
 
20228
class ExtAC;
 
20229
class ExtACBuilderCoupling;
 
20230
class ExtACSyntaxCoupling;
 
20231
class ExtACTree;
 
20232
class ExtACKeywords;
 
20233
class ExtGnu;
 
20234
class PragmaOnceUnitState;
 
20235
class PragmaOnce;
 
20236
class CMatchSyntax;
 
20237
namespace Puma {
 
20238
 
 
20239
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20240
 
 
20241
#line 20242 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20242
} // closed Puma
 
20243
 
 
20244
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20245
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20246
#include "CCExprResolveH.ah"
 
20247
#endif
 
20248
namespace Puma {
 
20249
 
 
20250
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20251
 
 
20252
#line 20253 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20253
} // closed Puma
 
20254
 
 
20255
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20256
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20257
#include "CExprResolveH.ah"
 
20258
#endif
 
20259
namespace Puma {
 
20260
 
 
20261
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20262
class CT_OperatorName : public CT_SpecialName {
 
20263
#line 20264 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20264
  friend class ::CCExprResolve;
 
20265
  friend class ::CExprResolve;
 
20266
  friend class ::WinIfExists;
 
20267
  friend class ::WinImportHandler;
 
20268
  friend class ::WinMacros;
 
20269
  friend class ::WinAsm;
 
20270
  friend class ::WinDeclSpecs;
 
20271
  friend class ::WinMemberExplSpec;
 
20272
  friend class ::WinTypeKeywords;
 
20273
  friend class ::WinFriend;
 
20274
  friend class ::ExtAC;
 
20275
  friend class ::ExtACBuilderCoupling;
 
20276
  friend class ::ExtACSyntaxCoupling;
 
20277
  friend class ::ExtACTree;
 
20278
  friend class ::ExtACKeywords;
 
20279
  friend class ::ExtGnu;
 
20280
  friend class ::PragmaOnceUnitState;
 
20281
  friend class ::PragmaOnce;
 
20282
  friend class ::CMatchSyntax;
 
20283
 
 
20284
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20285
 
 
20286
  int _oper;
 
20287
 
 
20288
public:
 
20289
  /** Complex operator types. */
 
20290
  enum { 
 
20291
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
20292
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
20293
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
20294
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
 
20295
  };
 
20296
 
 
20297
public:
 
20298
  /** Constructor.
 
20299
   *  \param op The token containing the operator. */
 
20300
  CT_OperatorName (CTree *op);
 
20301
  /** Constructor.
 
20302
   *  \param f The operator function keyword 'operator'.
 
20303
   *  \param op The token containing the operator. 
 
20304
   *  \param o The token of '[' or '('.
 
20305
   *  \param c The token of ']' or ')'. */
 
20306
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
20307
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
20308
  static const char *NodeId ();
 
20309
  /** Get the name of the node. Can be compared with NodeId(). */
 
20310
  const char *NodeName () const { return NodeId (); }
 
20311
  /** Get the operator type (either the token type or one of 
 
20312
   *  the complex operator types). */
 
20313
  int Operator () const { return _oper; }
 
20314
 
 
20315
public:
 
20316
  /** Own new operator reusing memory. */
 
20317
  void *operator new (size_t);
 
20318
  /** Own delete operator. */
 
20319
  void operator delete (void *);
 
20320
   private:
 
20321
  typedef CT_OperatorName CCExprResolveExpr;
 
20322
 
 
20323
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20324
 public :
 
20325
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
20326
  typedef CT_OperatorName CExprResolveExpr;
 
20327
 
 
20328
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20329
 public :
 
20330
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20331
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20332
};
 
20333
 
 
20334
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
20335
 *  Tree node representing the name of a conversion function. */
 
20336
 
 
20337
#line 20338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20338
} // closed Puma
 
20339
class CCExprResolve;
 
20340
class CExprResolve;
 
20341
class WinIfExists;
 
20342
class WinImportHandler;
 
20343
class WinMacros;
 
20344
class WinAsm;
 
20345
class WinDeclSpecs;
 
20346
class WinMemberExplSpec;
 
20347
class WinTypeKeywords;
 
20348
class WinFriend;
 
20349
class ExtAC;
 
20350
class ExtACBuilderCoupling;
 
20351
class ExtACSyntaxCoupling;
 
20352
class ExtACTree;
 
20353
class ExtACKeywords;
 
20354
class ExtGnu;
 
20355
class PragmaOnceUnitState;
 
20356
class PragmaOnce;
 
20357
class CMatchSyntax;
 
20358
namespace Puma {
 
20359
 
 
20360
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20361
 
 
20362
#line 20363 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20363
} // closed Puma
 
20364
 
 
20365
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20366
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20367
#include "CCExprResolveH.ah"
 
20368
#endif
 
20369
namespace Puma {
 
20370
 
 
20371
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20372
 
 
20373
#line 20374 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20374
} // closed Puma
 
20375
 
 
20376
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20377
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20378
#include "CExprResolveH.ah"
 
20379
#endif
 
20380
namespace Puma {
 
20381
 
 
20382
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20383
class CT_ConversionName : public CT_SpecialName {
 
20384
#line 20385 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20385
  friend class ::CCExprResolve;
 
20386
  friend class ::CExprResolve;
 
20387
  friend class ::WinIfExists;
 
20388
  friend class ::WinImportHandler;
 
20389
  friend class ::WinMacros;
 
20390
  friend class ::WinAsm;
 
20391
  friend class ::WinDeclSpecs;
 
20392
  friend class ::WinMemberExplSpec;
 
20393
  friend class ::WinTypeKeywords;
 
20394
  friend class ::WinFriend;
 
20395
  friend class ::ExtAC;
 
20396
  friend class ::ExtACBuilderCoupling;
 
20397
  friend class ::ExtACSyntaxCoupling;
 
20398
  friend class ::ExtACTree;
 
20399
  friend class ::ExtACKeywords;
 
20400
  friend class ::ExtGnu;
 
20401
  friend class ::PragmaOnceUnitState;
 
20402
  friend class ::PragmaOnce;
 
20403
  friend class ::CMatchSyntax;
 
20404
 
 
20405
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20406
 
 
20407
public:
 
20408
  /** Constructor.
 
20409
   *  \param f The operator function keyword 'operator'.
 
20410
   *  \param t The sub-tree containing the conversion type. */
 
20411
  CT_ConversionName (CTree *f, CTree *t);
 
20412
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
20413
  static const char *NodeId ();
 
20414
  /** Get the name of the node. Can be compared with NodeId(). */
 
20415
  const char *NodeName () const { return NodeId (); }
 
20416
  /** Get the conversion type. */
 
20417
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
 
20418
 
 
20419
public:
 
20420
  /** Own new operator reusing memory. */
 
20421
  void *operator new (size_t);
 
20422
  /** Own delete operator. */
 
20423
  void operator delete (void *);
 
20424
   private:
 
20425
  typedef CT_ConversionName CCExprResolveExpr;
 
20426
 
 
20427
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20428
 public :
 
20429
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
20430
  typedef CT_ConversionName CExprResolveExpr;
 
20431
 
 
20432
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20433
 public :
 
20434
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20435
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20436
};
 
20437
 
 
20438
/** \class CT_QualName CTree.h Puma/CTree.h
 
20439
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
 
20440
 
 
20441
#line 20442 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20442
} // closed Puma
 
20443
class CCExprResolve;
 
20444
class CExprResolve;
 
20445
class WinIfExists;
 
20446
class WinImportHandler;
 
20447
class WinMacros;
 
20448
class WinAsm;
 
20449
class WinDeclSpecs;
 
20450
class WinMemberExplSpec;
 
20451
class WinTypeKeywords;
 
20452
class WinFriend;
 
20453
class ExtAC;
 
20454
class ExtACBuilderCoupling;
 
20455
class ExtACSyntaxCoupling;
 
20456
class ExtACTree;
 
20457
class ExtACKeywords;
 
20458
class ExtGnu;
 
20459
class PragmaOnceUnitState;
 
20460
class PragmaOnce;
 
20461
class CMatchSyntax;
 
20462
namespace Puma {
 
20463
 
 
20464
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20465
 
 
20466
#line 20467 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20467
} // closed Puma
 
20468
 
 
20469
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20470
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20471
#include "CCExprResolveH.ah"
 
20472
#endif
 
20473
namespace Puma {
 
20474
 
 
20475
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20476
 
 
20477
#line 20478 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20478
} // closed Puma
 
20479
 
 
20480
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20481
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20482
#include "CExprResolveH.ah"
 
20483
#endif
 
20484
namespace Puma {
 
20485
 
 
20486
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20487
class CT_QualName : public CT_SimpleName {
 
20488
#line 20489 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20489
  friend class ::CCExprResolve;
 
20490
  friend class ::CExprResolve;
 
20491
  friend class ::WinIfExists;
 
20492
  friend class ::WinImportHandler;
 
20493
  friend class ::WinMacros;
 
20494
  friend class ::WinAsm;
 
20495
  friend class ::WinDeclSpecs;
 
20496
  friend class ::WinMemberExplSpec;
 
20497
  friend class ::WinTypeKeywords;
 
20498
  friend class ::WinFriend;
 
20499
  friend class ::ExtAC;
 
20500
  friend class ::ExtACBuilderCoupling;
 
20501
  friend class ::ExtACSyntaxCoupling;
 
20502
  friend class ::ExtACTree;
 
20503
  friend class ::ExtACKeywords;
 
20504
  friend class ::ExtGnu;
 
20505
  friend class ::PragmaOnceUnitState;
 
20506
  friend class ::PragmaOnce;
 
20507
  friend class ::CMatchSyntax;
 
20508
 
 
20509
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20510
 
 
20511
public:
 
20512
  /** Constructor.
 
20513
   *  \param size The initial number sub-names plus separators. */
 
20514
  CT_QualName (int size = 3) : 
 
20515
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
20516
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
20517
  static const char *NodeId ();
 
20518
  /** Get the name of the node. Can be compared with NodeId(). */
 
20519
  const char *NodeName () const { return NodeId (); }
 
20520
  /** Print the qualified name on the given stream. 
 
20521
   *  \param os The output stream. */
 
20522
  void print (ostream &os) const;
 
20523
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
 
20524
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
20525
  /** Get the string containing the last name of the qualified name. */
 
20526
  const char *Text () const { return Name ()->Text (); }
 
20527
  /** Get the type of the last name. */
 
20528
  CTypeInfo *Type () const { return Name ()->Type (); }
 
20529
  /** Get the value of the last name. */
 
20530
  CExprValue *Value () const { return Name ()->Value (); }
 
20531
  /** Get the semantic value object of the last name. */
 
20532
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
20533
  /** Get the semantic information object of the last name. */
 
20534
  CSemObject *SemObject () const { return Name ()->SemObject (); }
 
20535
 
 
20536
public:
 
20537
  /** Own new operator reusing memory. */
 
20538
  void *operator new (size_t);
 
20539
  /** Own delete operator. */
 
20540
  void operator delete (void *);
 
20541
   private:
 
20542
  typedef CT_QualName CCExprResolveExpr;
 
20543
 
 
20544
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20545
 public :
 
20546
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
20547
  typedef CT_QualName CExprResolveExpr;
 
20548
 
 
20549
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20550
 public :
 
20551
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20552
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20553
};
 
20554
 
 
20555
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
20556
 *  Tree node representing a qualified name with introducing name separator,
 
20557
 *  e.g. ::X::Y::Z. */
 
20558
 
 
20559
#line 20560 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20560
} // closed Puma
 
20561
class CCExprResolve;
 
20562
class CExprResolve;
 
20563
class WinIfExists;
 
20564
class WinImportHandler;
 
20565
class WinMacros;
 
20566
class WinAsm;
 
20567
class WinDeclSpecs;
 
20568
class WinMemberExplSpec;
 
20569
class WinTypeKeywords;
 
20570
class WinFriend;
 
20571
class ExtAC;
 
20572
class ExtACBuilderCoupling;
 
20573
class ExtACSyntaxCoupling;
 
20574
class ExtACTree;
 
20575
class ExtACKeywords;
 
20576
class ExtGnu;
 
20577
class PragmaOnceUnitState;
 
20578
class PragmaOnce;
 
20579
class CMatchSyntax;
 
20580
namespace Puma {
 
20581
 
 
20582
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20583
 
 
20584
#line 20585 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20585
} // closed Puma
 
20586
 
 
20587
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20588
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20589
#include "CCExprResolveH.ah"
 
20590
#endif
 
20591
namespace Puma {
 
20592
 
 
20593
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20594
 
 
20595
#line 20596 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20596
} // closed Puma
 
20597
 
 
20598
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20599
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20600
#include "CExprResolveH.ah"
 
20601
#endif
 
20602
namespace Puma {
 
20603
 
 
20604
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20605
class CT_RootQualName : public CT_QualName {
 
20606
#line 20607 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20607
  friend class ::CCExprResolve;
 
20608
  friend class ::CExprResolve;
 
20609
  friend class ::WinIfExists;
 
20610
  friend class ::WinImportHandler;
 
20611
  friend class ::WinMacros;
 
20612
  friend class ::WinAsm;
 
20613
  friend class ::WinDeclSpecs;
 
20614
  friend class ::WinMemberExplSpec;
 
20615
  friend class ::WinTypeKeywords;
 
20616
  friend class ::WinFriend;
 
20617
  friend class ::ExtAC;
 
20618
  friend class ::ExtACBuilderCoupling;
 
20619
  friend class ::ExtACSyntaxCoupling;
 
20620
  friend class ::ExtACTree;
 
20621
  friend class ::ExtACKeywords;
 
20622
  friend class ::ExtGnu;
 
20623
  friend class ::PragmaOnceUnitState;
 
20624
  friend class ::PragmaOnce;
 
20625
  friend class ::CMatchSyntax;
 
20626
 
 
20627
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20628
 
 
20629
public:
 
20630
  /** Constructor.
 
20631
   *  \param size Initial number of sub-name plus separator. */
 
20632
  CT_RootQualName (int size = 2) : 
 
20633
    CT_QualName (size) { AddProperties (INTRO); }
 
20634
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
20635
  static const char *NodeId ();
 
20636
  /** Get the name of the node. Can be compared with NodeId(). */
 
20637
  const char *NodeName () const { return NodeId (); }
 
20638
 
 
20639
public:
 
20640
  /** Own new operator reusing memory. */
 
20641
  void *operator new (size_t);
 
20642
  /** Own delete operator. */
 
20643
  void operator delete (void *);
 
20644
   private:
 
20645
  typedef CT_RootQualName CCExprResolveExpr;
 
20646
 
 
20647
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20648
 public :
 
20649
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
20650
  typedef CT_RootQualName CExprResolveExpr;
 
20651
 
 
20652
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20653
 public :
 
20654
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20655
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20656
};
 
20657
 
 
20658
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
20659
 *  Tree node representing a binary expression, e.g. a+b. */
 
20660
 
 
20661
#line 20662 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20662
} // closed Puma
 
20663
class CCExprResolve;
 
20664
class CExprResolve;
 
20665
class WinIfExists;
 
20666
class WinImportHandler;
 
20667
class WinMacros;
 
20668
class WinAsm;
 
20669
class WinDeclSpecs;
 
20670
class WinMemberExplSpec;
 
20671
class WinTypeKeywords;
 
20672
class WinFriend;
 
20673
class ExtAC;
 
20674
class ExtACBuilderCoupling;
 
20675
class ExtACSyntaxCoupling;
 
20676
class ExtACTree;
 
20677
class ExtACKeywords;
 
20678
class ExtGnu;
 
20679
class PragmaOnceUnitState;
 
20680
class PragmaOnce;
 
20681
class CMatchSyntax;
 
20682
namespace Puma {
 
20683
 
 
20684
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20685
 
 
20686
#line 20687 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20687
} // closed Puma
 
20688
 
 
20689
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20690
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20691
#include "CCExprResolveH.ah"
 
20692
#endif
 
20693
namespace Puma {
 
20694
 
 
20695
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20696
 
 
20697
#line 20698 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20698
} // closed Puma
 
20699
 
 
20700
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20701
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20702
#include "CExprResolveH.ah"
 
20703
#endif
 
20704
namespace Puma {
 
20705
 
 
20706
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20707
class CT_BinaryExpr : public CT_Call {
 
20708
#line 20709 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20709
  friend class ::CCExprResolve;
 
20710
  friend class ::CExprResolve;
 
20711
  friend class ::WinIfExists;
 
20712
  friend class ::WinImportHandler;
 
20713
  friend class ::WinMacros;
 
20714
  friend class ::WinAsm;
 
20715
  friend class ::WinDeclSpecs;
 
20716
  friend class ::WinMemberExplSpec;
 
20717
  friend class ::WinTypeKeywords;
 
20718
  friend class ::WinFriend;
 
20719
  friend class ::ExtAC;
 
20720
  friend class ::ExtACBuilderCoupling;
 
20721
  friend class ::ExtACSyntaxCoupling;
 
20722
  friend class ::ExtACTree;
 
20723
  friend class ::ExtACKeywords;
 
20724
  friend class ::ExtGnu;
 
20725
  friend class ::PragmaOnceUnitState;
 
20726
  friend class ::PragmaOnce;
 
20727
  friend class ::CMatchSyntax;
 
20728
 
 
20729
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20730
 
 
20731
  CTree *sons[3]; // expr, oper, expr
 
20732
 
 
20733
public:
 
20734
  /** Constructor. 
 
20735
   *  \param l Left hand side of the expression. 
 
20736
   *  \param o The operator token. 
 
20737
   *  \param r Right hand side of the expression. */
 
20738
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
 
20739
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
 
20740
  }
 
20741
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
20742
  static const char *NodeId ();
 
20743
  /** Get the name of the node. Can be compared with NodeId(). */
 
20744
  const char *NodeName () const { return NodeId (); }
 
20745
  /** Get the number of sons. */
 
20746
  int Sons () const { return 3; }
 
20747
  /** Get the n-th son.
 
20748
   *  \param n The index of the son.
 
20749
   *  \return The n-th son or NULL. */
 
20750
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
20751
  /** Replace a son.
 
20752
   *  \param old_son The son to replace.
 
20753
   *  \param new_son The new son. */
 
20754
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
20755
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
20756
  }
 
20757
   private:
 
20758
  typedef CT_BinaryExpr CCExprResolveExpr;
 
20759
 
 
20760
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20761
 public :
 
20762
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
20763
  typedef CT_BinaryExpr CExprResolveExpr;
 
20764
 
 
20765
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20766
 public :
 
20767
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20768
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20769
};
 
20770
 
 
20771
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
20772
 *  Tree node representing a member pointer expression, e.g. a->b. */
 
20773
 
 
20774
#line 20775 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20775
} // closed Puma
 
20776
class CCExprResolve;
 
20777
class CExprResolve;
 
20778
class WinIfExists;
 
20779
class WinImportHandler;
 
20780
class WinMacros;
 
20781
class WinAsm;
 
20782
class WinDeclSpecs;
 
20783
class WinMemberExplSpec;
 
20784
class WinTypeKeywords;
 
20785
class WinFriend;
 
20786
class ExtAC;
 
20787
class ExtACBuilderCoupling;
 
20788
class ExtACSyntaxCoupling;
 
20789
class ExtACTree;
 
20790
class ExtACKeywords;
 
20791
class ExtGnu;
 
20792
class PragmaOnceUnitState;
 
20793
class PragmaOnce;
 
20794
class CMatchSyntax;
 
20795
namespace Puma {
 
20796
 
 
20797
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20798
 
 
20799
#line 20800 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20800
} // closed Puma
 
20801
 
 
20802
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20803
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20804
#include "CCExprResolveH.ah"
 
20805
#endif
 
20806
namespace Puma {
 
20807
 
 
20808
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20809
 
 
20810
#line 20811 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20811
} // closed Puma
 
20812
 
 
20813
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20814
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20815
#include "CExprResolveH.ah"
 
20816
#endif
 
20817
namespace Puma {
 
20818
 
 
20819
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20820
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
20821
#line 20822 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20822
  friend class ::CCExprResolve;
 
20823
  friend class ::CExprResolve;
 
20824
  friend class ::WinIfExists;
 
20825
  friend class ::WinImportHandler;
 
20826
  friend class ::WinMacros;
 
20827
  friend class ::WinAsm;
 
20828
  friend class ::WinDeclSpecs;
 
20829
  friend class ::WinMemberExplSpec;
 
20830
  friend class ::WinTypeKeywords;
 
20831
  friend class ::WinFriend;
 
20832
  friend class ::ExtAC;
 
20833
  friend class ::ExtACBuilderCoupling;
 
20834
  friend class ::ExtACSyntaxCoupling;
 
20835
  friend class ::ExtACTree;
 
20836
  friend class ::ExtACKeywords;
 
20837
  friend class ::ExtGnu;
 
20838
  friend class ::PragmaOnceUnitState;
 
20839
  friend class ::PragmaOnce;
 
20840
  friend class ::CMatchSyntax;
 
20841
 
 
20842
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20843
 
 
20844
  CTree *sons[3]; // expr, oper, expr
 
20845
  
 
20846
public:
 
20847
  /** Constructor.
 
20848
   *  \param e Expression on which to call the member.
 
20849
   *  \param o The arrow operator token.
 
20850
   *  \param i The member name. */
 
20851
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
20852
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
20853
  }
 
20854
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
20855
  static const char *NodeId ();
 
20856
  /** Get the name of the node. Can be compared with NodeId(). */
 
20857
  const char *NodeName () const { return NodeId (); }
 
20858
  /** Get the number of sons. */
 
20859
  int Sons () const { return 3; }
 
20860
  /** Get the n-th son.
 
20861
   *  \param n The index of the son.
 
20862
   *  \return The n-th son or NULL. */
 
20863
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
20864
  /** Replace a son.
 
20865
   *  \param old_son The son to replace.
 
20866
   *  \param new_son The new son. */
 
20867
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
20868
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
20869
  }
 
20870
   private:
 
20871
  typedef CT_MembPtrExpr CCExprResolveExpr;
 
20872
 
 
20873
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20874
 public :
 
20875
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
20876
  typedef CT_MembPtrExpr CExprResolveExpr;
 
20877
 
 
20878
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20879
 public :
 
20880
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20881
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20882
};
 
20883
 
 
20884
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
20885
 *  Tree node representing a member reference expression, e.g. a.b. */
 
20886
 
 
20887
#line 20888 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20888
} // closed Puma
 
20889
class CCExprResolve;
 
20890
class CExprResolve;
 
20891
class WinIfExists;
 
20892
class WinImportHandler;
 
20893
class WinMacros;
 
20894
class WinAsm;
 
20895
class WinDeclSpecs;
 
20896
class WinMemberExplSpec;
 
20897
class WinTypeKeywords;
 
20898
class WinFriend;
 
20899
class ExtAC;
 
20900
class ExtACBuilderCoupling;
 
20901
class ExtACSyntaxCoupling;
 
20902
class ExtACTree;
 
20903
class ExtACKeywords;
 
20904
class ExtGnu;
 
20905
class PragmaOnceUnitState;
 
20906
class PragmaOnce;
 
20907
class CMatchSyntax;
 
20908
namespace Puma {
 
20909
 
 
20910
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20911
 
 
20912
#line 20913 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20913
} // closed Puma
 
20914
 
 
20915
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20916
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
20917
#include "CCExprResolveH.ah"
 
20918
#endif
 
20919
namespace Puma {
 
20920
 
 
20921
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20922
 
 
20923
#line 20924 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20924
} // closed Puma
 
20925
 
 
20926
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20927
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
20928
#include "CExprResolveH.ah"
 
20929
#endif
 
20930
namespace Puma {
 
20931
 
 
20932
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20933
class CT_MembRefExpr : public CT_MembPtrExpr {
 
20934
#line 20935 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20935
  friend class ::CCExprResolve;
 
20936
  friend class ::CExprResolve;
 
20937
  friend class ::WinIfExists;
 
20938
  friend class ::WinImportHandler;
 
20939
  friend class ::WinMacros;
 
20940
  friend class ::WinAsm;
 
20941
  friend class ::WinDeclSpecs;
 
20942
  friend class ::WinMemberExplSpec;
 
20943
  friend class ::WinTypeKeywords;
 
20944
  friend class ::WinFriend;
 
20945
  friend class ::ExtAC;
 
20946
  friend class ::ExtACBuilderCoupling;
 
20947
  friend class ::ExtACSyntaxCoupling;
 
20948
  friend class ::ExtACTree;
 
20949
  friend class ::ExtACKeywords;
 
20950
  friend class ::ExtGnu;
 
20951
  friend class ::PragmaOnceUnitState;
 
20952
  friend class ::PragmaOnce;
 
20953
  friend class ::CMatchSyntax;
 
20954
 
 
20955
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20956
 
 
20957
public:
 
20958
  /** Constructor.
 
20959
   *  \param e Expression on which to call the member.
 
20960
   *  \param o The dot operator.
 
20961
   *  \param i The member name. */
 
20962
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
 
20963
    CT_MembPtrExpr (e, o, i) {}
 
20964
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
20965
  static const char *NodeId ();
 
20966
  /** Get the name of the node. Can be compared with NodeId(). */
 
20967
  const char *NodeName () const { return NodeId (); }
 
20968
   private:
 
20969
  typedef CT_MembRefExpr CCExprResolveExpr;
 
20970
 
 
20971
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
20972
 public :
 
20973
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
20974
  typedef CT_MembRefExpr CExprResolveExpr;
 
20975
 
 
20976
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
20977
 public :
 
20978
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
20979
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20980
};
 
20981
 
 
20982
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
20983
 *  Base class for tree nodes representing unary expressions. */
 
20984
 
 
20985
#line 20986 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
20986
} // closed Puma
 
20987
class CCExprResolve;
 
20988
class CExprResolve;
 
20989
class WinIfExists;
 
20990
class WinImportHandler;
 
20991
class WinMacros;
 
20992
class WinAsm;
 
20993
class WinDeclSpecs;
 
20994
class WinMemberExplSpec;
 
20995
class WinTypeKeywords;
 
20996
class WinFriend;
 
20997
class ExtAC;
 
20998
class ExtACBuilderCoupling;
 
20999
class ExtACSyntaxCoupling;
 
21000
class ExtACTree;
 
21001
class ExtACKeywords;
 
21002
class ExtGnu;
 
21003
class PragmaOnceUnitState;
 
21004
class PragmaOnce;
 
21005
class CMatchSyntax;
 
21006
namespace Puma {
 
21007
 
 
21008
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21009
 
 
21010
#line 21011 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21011
} // closed Puma
 
21012
 
 
21013
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21014
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21015
#include "CCExprResolveH.ah"
 
21016
#endif
 
21017
namespace Puma {
 
21018
 
 
21019
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21020
 
 
21021
#line 21022 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21022
} // closed Puma
 
21023
 
 
21024
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21025
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21026
#include "CExprResolveH.ah"
 
21027
#endif
 
21028
namespace Puma {
 
21029
 
 
21030
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21031
class CT_UnaryExpr : public CT_Call {
 
21032
#line 21033 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21033
  friend class ::CCExprResolve;
 
21034
  friend class ::CExprResolve;
 
21035
  friend class ::WinIfExists;
 
21036
  friend class ::WinImportHandler;
 
21037
  friend class ::WinMacros;
 
21038
  friend class ::WinAsm;
 
21039
  friend class ::WinDeclSpecs;
 
21040
  friend class ::WinMemberExplSpec;
 
21041
  friend class ::WinTypeKeywords;
 
21042
  friend class ::WinFriend;
 
21043
  friend class ::ExtAC;
 
21044
  friend class ::ExtACBuilderCoupling;
 
21045
  friend class ::ExtACSyntaxCoupling;
 
21046
  friend class ::ExtACTree;
 
21047
  friend class ::ExtACKeywords;
 
21048
  friend class ::ExtGnu;
 
21049
  friend class ::PragmaOnceUnitState;
 
21050
  friend class ::PragmaOnce;
 
21051
  friend class ::CMatchSyntax;
 
21052
 
 
21053
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21054
 
 
21055
  CTree *sons[2]; // oper, expr
 
21056
 
 
21057
public:
 
21058
  /** Constructor.
 
21059
   *  \param o The unary operator.
 
21060
   *  \param e The expression on which the operator is invoked. */
 
21061
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
21062
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
21063
  static const char *NodeId ();
 
21064
  /** Get the name of the node. Can be compared with NodeId(). */
 
21065
  const char *NodeName () const { return NodeId (); }
 
21066
  /** Get the number of sons. */
 
21067
  int Sons () const { return 2; }
 
21068
  /** Get the n-th son.
 
21069
   *  \param n The index of the son.
 
21070
   *  \return The n-th son or NULL. */
 
21071
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
21072
  /** Replace a son.
 
21073
   *  \param old_son The son to replace.
 
21074
   *  \param new_son The new son. */
 
21075
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
21076
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
21077
  }
 
21078
  /** Get the expression node. */
 
21079
  CTree *Expr () const { return sons[1]; }
 
21080
   private:
 
21081
  typedef CT_UnaryExpr CCExprResolveExpr;
 
21082
 
 
21083
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21084
 public :
 
21085
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
21086
  typedef CT_UnaryExpr CExprResolveExpr;
 
21087
 
 
21088
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21089
 public :
 
21090
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21091
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21092
};
 
21093
 
 
21094
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
21095
 *  Tree node representing a postfix expression, e.g. a++. */
 
21096
 
 
21097
#line 21098 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21098
} // closed Puma
 
21099
class CCExprResolve;
 
21100
class CExprResolve;
 
21101
class WinIfExists;
 
21102
class WinImportHandler;
 
21103
class WinMacros;
 
21104
class WinAsm;
 
21105
class WinDeclSpecs;
 
21106
class WinMemberExplSpec;
 
21107
class WinTypeKeywords;
 
21108
class WinFriend;
 
21109
class ExtAC;
 
21110
class ExtACBuilderCoupling;
 
21111
class ExtACSyntaxCoupling;
 
21112
class ExtACTree;
 
21113
class ExtACKeywords;
 
21114
class ExtGnu;
 
21115
class PragmaOnceUnitState;
 
21116
class PragmaOnce;
 
21117
class CMatchSyntax;
 
21118
namespace Puma {
 
21119
 
 
21120
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21121
 
 
21122
#line 21123 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21123
} // closed Puma
 
21124
 
 
21125
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21126
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21127
#include "CCExprResolveH.ah"
 
21128
#endif
 
21129
namespace Puma {
 
21130
 
 
21131
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21132
 
 
21133
#line 21134 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21134
} // closed Puma
 
21135
 
 
21136
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21137
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21138
#include "CExprResolveH.ah"
 
21139
#endif
 
21140
namespace Puma {
 
21141
 
 
21142
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21143
class CT_PostfixExpr : public CT_UnaryExpr {
 
21144
#line 21145 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21145
  friend class ::CCExprResolve;
 
21146
  friend class ::CExprResolve;
 
21147
  friend class ::WinIfExists;
 
21148
  friend class ::WinImportHandler;
 
21149
  friend class ::WinMacros;
 
21150
  friend class ::WinAsm;
 
21151
  friend class ::WinDeclSpecs;
 
21152
  friend class ::WinMemberExplSpec;
 
21153
  friend class ::WinTypeKeywords;
 
21154
  friend class ::WinFriend;
 
21155
  friend class ::ExtAC;
 
21156
  friend class ::ExtACBuilderCoupling;
 
21157
  friend class ::ExtACSyntaxCoupling;
 
21158
  friend class ::ExtACTree;
 
21159
  friend class ::ExtACKeywords;
 
21160
  friend class ::ExtGnu;
 
21161
  friend class ::PragmaOnceUnitState;
 
21162
  friend class ::PragmaOnce;
 
21163
  friend class ::CMatchSyntax;
 
21164
 
 
21165
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21166
 
 
21167
public:
 
21168
  /** Constructor.
 
21169
   *  \param e The expression on which to invoke the operator. 
 
21170
   *  \param o The postfix operator. */
 
21171
  CT_PostfixExpr (CTree *e, CTree *o) :
 
21172
    CT_UnaryExpr (e, o) {}
 
21173
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
21174
  static const char *NodeId ();
 
21175
  /** Get the name of the node. Can be compared with NodeId(). */
 
21176
  const char *NodeName () const { return NodeId (); }
 
21177
   private:
 
21178
  typedef CT_PostfixExpr CCExprResolveExpr;
 
21179
 
 
21180
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21181
 public :
 
21182
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
21183
  typedef CT_PostfixExpr CExprResolveExpr;
 
21184
 
 
21185
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21186
 public :
 
21187
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21188
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21189
};
 
21190
 
 
21191
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
21192
 *  Tree node representing an address expression, e.g. &a. */
 
21193
 
 
21194
#line 21195 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21195
} // closed Puma
 
21196
class CCExprResolve;
 
21197
class CExprResolve;
 
21198
class WinIfExists;
 
21199
class WinImportHandler;
 
21200
class WinMacros;
 
21201
class WinAsm;
 
21202
class WinDeclSpecs;
 
21203
class WinMemberExplSpec;
 
21204
class WinTypeKeywords;
 
21205
class WinFriend;
 
21206
class ExtAC;
 
21207
class ExtACBuilderCoupling;
 
21208
class ExtACSyntaxCoupling;
 
21209
class ExtACTree;
 
21210
class ExtACKeywords;
 
21211
class ExtGnu;
 
21212
class PragmaOnceUnitState;
 
21213
class PragmaOnce;
 
21214
class CMatchSyntax;
 
21215
namespace Puma {
 
21216
 
 
21217
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21218
 
 
21219
#line 21220 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21220
} // closed Puma
 
21221
 
 
21222
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21223
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21224
#include "CCExprResolveH.ah"
 
21225
#endif
 
21226
namespace Puma {
 
21227
 
 
21228
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21229
 
 
21230
#line 21231 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21231
} // closed Puma
 
21232
 
 
21233
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21234
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21235
#include "CExprResolveH.ah"
 
21236
#endif
 
21237
namespace Puma {
 
21238
 
 
21239
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21240
class CT_AddrExpr : public CT_UnaryExpr {
 
21241
#line 21242 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21242
  friend class ::CCExprResolve;
 
21243
  friend class ::CExprResolve;
 
21244
  friend class ::WinIfExists;
 
21245
  friend class ::WinImportHandler;
 
21246
  friend class ::WinMacros;
 
21247
  friend class ::WinAsm;
 
21248
  friend class ::WinDeclSpecs;
 
21249
  friend class ::WinMemberExplSpec;
 
21250
  friend class ::WinTypeKeywords;
 
21251
  friend class ::WinFriend;
 
21252
  friend class ::ExtAC;
 
21253
  friend class ::ExtACBuilderCoupling;
 
21254
  friend class ::ExtACSyntaxCoupling;
 
21255
  friend class ::ExtACTree;
 
21256
  friend class ::ExtACKeywords;
 
21257
  friend class ::ExtGnu;
 
21258
  friend class ::PragmaOnceUnitState;
 
21259
  friend class ::PragmaOnce;
 
21260
  friend class ::CMatchSyntax;
 
21261
 
 
21262
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21263
 
 
21264
public:
 
21265
  /** Constructor.
 
21266
   *  \param o The address operator, i.e. '&'.
 
21267
   *  \param e The expression from which to take the address. */
 
21268
  CT_AddrExpr (CTree *o, CTree *e) :
 
21269
    CT_UnaryExpr (o, e) {}
 
21270
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
21271
  static const char *NodeId ();
 
21272
  /** Get the name of the node. Can be compared with NodeId(). */
 
21273
  const char *NodeName () const { return NodeId (); }
 
21274
   private:
 
21275
  typedef CT_AddrExpr CCExprResolveExpr;
 
21276
 
 
21277
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21278
 public :
 
21279
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
21280
  typedef CT_AddrExpr CExprResolveExpr;
 
21281
 
 
21282
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21283
 public :
 
21284
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21285
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21286
};
 
21287
 
 
21288
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
21289
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
 
21290
 
 
21291
#line 21292 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21292
} // closed Puma
 
21293
class CCExprResolve;
 
21294
class CExprResolve;
 
21295
class WinIfExists;
 
21296
class WinImportHandler;
 
21297
class WinMacros;
 
21298
class WinAsm;
 
21299
class WinDeclSpecs;
 
21300
class WinMemberExplSpec;
 
21301
class WinTypeKeywords;
 
21302
class WinFriend;
 
21303
class ExtAC;
 
21304
class ExtACBuilderCoupling;
 
21305
class ExtACSyntaxCoupling;
 
21306
class ExtACTree;
 
21307
class ExtACKeywords;
 
21308
class ExtGnu;
 
21309
class PragmaOnceUnitState;
 
21310
class PragmaOnce;
 
21311
class CMatchSyntax;
 
21312
namespace Puma {
 
21313
 
 
21314
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21315
 
 
21316
#line 21317 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21317
} // closed Puma
 
21318
 
 
21319
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21320
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21321
#include "CCExprResolveH.ah"
 
21322
#endif
 
21323
namespace Puma {
 
21324
 
 
21325
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21326
 
 
21327
#line 21328 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21328
} // closed Puma
 
21329
 
 
21330
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21331
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21332
#include "CExprResolveH.ah"
 
21333
#endif
 
21334
namespace Puma {
 
21335
 
 
21336
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21337
class CT_DerefExpr : public CT_UnaryExpr {
 
21338
#line 21339 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21339
  friend class ::CCExprResolve;
 
21340
  friend class ::CExprResolve;
 
21341
  friend class ::WinIfExists;
 
21342
  friend class ::WinImportHandler;
 
21343
  friend class ::WinMacros;
 
21344
  friend class ::WinAsm;
 
21345
  friend class ::WinDeclSpecs;
 
21346
  friend class ::WinMemberExplSpec;
 
21347
  friend class ::WinTypeKeywords;
 
21348
  friend class ::WinFriend;
 
21349
  friend class ::ExtAC;
 
21350
  friend class ::ExtACBuilderCoupling;
 
21351
  friend class ::ExtACSyntaxCoupling;
 
21352
  friend class ::ExtACTree;
 
21353
  friend class ::ExtACKeywords;
 
21354
  friend class ::ExtGnu;
 
21355
  friend class ::PragmaOnceUnitState;
 
21356
  friend class ::PragmaOnce;
 
21357
  friend class ::CMatchSyntax;
 
21358
 
 
21359
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21360
 
 
21361
public:
 
21362
  /** Constructor.
 
21363
   *  \param o The dereferencing operator, i.e. '*'.
 
21364
   *  \param e The expression to dereference. */
 
21365
  CT_DerefExpr (CTree *o, CTree *e) :
 
21366
    CT_UnaryExpr (o, e) {}
 
21367
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
21368
  static const char *NodeId ();
 
21369
  /** Get the name of the node. Can be compared with NodeId(). */
 
21370
  const char *NodeName () const { return NodeId (); }
 
21371
   private:
 
21372
  typedef CT_DerefExpr CCExprResolveExpr;
 
21373
 
 
21374
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21375
 public :
 
21376
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
21377
  typedef CT_DerefExpr CExprResolveExpr;
 
21378
 
 
21379
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21380
 public :
 
21381
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21382
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21383
};
 
21384
 
 
21385
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
21386
 *  Tree node representing a delete expression, e.g. delete a. */
 
21387
 
 
21388
#line 21389 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21389
} // closed Puma
 
21390
class CCExprResolve;
 
21391
class CExprResolve;
 
21392
class WinIfExists;
 
21393
class WinImportHandler;
 
21394
class WinMacros;
 
21395
class WinAsm;
 
21396
class WinDeclSpecs;
 
21397
class WinMemberExplSpec;
 
21398
class WinTypeKeywords;
 
21399
class WinFriend;
 
21400
class ExtAC;
 
21401
class ExtACBuilderCoupling;
 
21402
class ExtACSyntaxCoupling;
 
21403
class ExtACTree;
 
21404
class ExtACKeywords;
 
21405
class ExtGnu;
 
21406
class PragmaOnceUnitState;
 
21407
class PragmaOnce;
 
21408
class CMatchSyntax;
 
21409
namespace Puma {
 
21410
 
 
21411
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21412
 
 
21413
#line 21414 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21414
} // closed Puma
 
21415
 
 
21416
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21417
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21418
#include "CCExprResolveH.ah"
 
21419
#endif
 
21420
namespace Puma {
 
21421
 
 
21422
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21423
 
 
21424
#line 21425 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21425
} // closed Puma
 
21426
 
 
21427
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21428
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21429
#include "CExprResolveH.ah"
 
21430
#endif
 
21431
namespace Puma {
 
21432
 
 
21433
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21434
class CT_DeleteExpr : public CT_Expression, public CSemObject {
 
21435
#line 21436 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21436
  friend class ::CCExprResolve;
 
21437
  friend class ::CExprResolve;
 
21438
  friend class ::WinIfExists;
 
21439
  friend class ::WinImportHandler;
 
21440
  friend class ::WinMacros;
 
21441
  friend class ::WinAsm;
 
21442
  friend class ::WinDeclSpecs;
 
21443
  friend class ::WinMemberExplSpec;
 
21444
  friend class ::WinTypeKeywords;
 
21445
  friend class ::WinFriend;
 
21446
  friend class ::ExtAC;
 
21447
  friend class ::ExtACBuilderCoupling;
 
21448
  friend class ::ExtACSyntaxCoupling;
 
21449
  friend class ::ExtACTree;
 
21450
  friend class ::ExtACKeywords;
 
21451
  friend class ::ExtGnu;
 
21452
  friend class ::PragmaOnceUnitState;
 
21453
  friend class ::PragmaOnce;
 
21454
  friend class ::CMatchSyntax;
 
21455
 
 
21456
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21457
 
 
21458
  CTree *sons[2]; // oper, expr
 
21459
 
 
21460
public:
 
21461
  /** Constructor.
 
21462
   *  \param op The delete operator.
 
21463
   *  \param e The expression representing the object to delete. */
 
21464
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
21465
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
21466
  static const char *NodeId ();
 
21467
  /** Get the name of the node. Can be compared with NodeId(). */
 
21468
  const char *NodeName () const { return NodeId (); }
 
21469
  /** Get the number of sons. */
 
21470
  int Sons () const { return 2; }
 
21471
  /** Get the n-th son.
 
21472
   *  \param n The index of the son.
 
21473
   *  \return The n-th son or NULL. */
 
21474
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
21475
  /** Replace a son.
 
21476
   *  \param old_son The son to replace.
 
21477
   *  \param new_son The new son. */
 
21478
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
21479
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
21480
  }
 
21481
  /** Get the expression. */
 
21482
  CTree *Expr () const { return sons[1]; }
 
21483
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
 
21484
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
21485
  /** Get the semantic information object. */
 
21486
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
21487
   private:
 
21488
  typedef CT_DeleteExpr CCExprResolveExpr;
 
21489
 
 
21490
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21491
 public :
 
21492
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
21493
  typedef CT_DeleteExpr CExprResolveExpr;
 
21494
 
 
21495
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21496
 public :
 
21497
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21498
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21499
};
 
21500
 
 
21501
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
21502
 *  Tree node representing a new expression, e.g. new A(). */
 
21503
 
 
21504
#line 21505 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21505
} // closed Puma
 
21506
class CCExprResolve;
 
21507
class CExprResolve;
 
21508
class WinIfExists;
 
21509
class WinImportHandler;
 
21510
class WinMacros;
 
21511
class WinAsm;
 
21512
class WinDeclSpecs;
 
21513
class WinMemberExplSpec;
 
21514
class WinTypeKeywords;
 
21515
class WinFriend;
 
21516
class ExtAC;
 
21517
class ExtACBuilderCoupling;
 
21518
class ExtACSyntaxCoupling;
 
21519
class ExtACTree;
 
21520
class ExtACKeywords;
 
21521
class ExtGnu;
 
21522
class PragmaOnceUnitState;
 
21523
class PragmaOnce;
 
21524
class CMatchSyntax;
 
21525
namespace Puma {
 
21526
 
 
21527
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21528
 
 
21529
#line 21530 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21530
} // closed Puma
 
21531
 
 
21532
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21533
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21534
#include "CCExprResolveH.ah"
 
21535
#endif
 
21536
namespace Puma {
 
21537
 
 
21538
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21539
 
 
21540
#line 21541 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21541
} // closed Puma
 
21542
 
 
21543
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21544
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21545
#include "CExprResolveH.ah"
 
21546
#endif
 
21547
namespace Puma {
 
21548
 
 
21549
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21550
class CT_NewExpr : public CT_Expression, public CSemObject {
 
21551
#line 21552 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21552
  friend class ::CCExprResolve;
 
21553
  friend class ::CExprResolve;
 
21554
  friend class ::WinIfExists;
 
21555
  friend class ::WinImportHandler;
 
21556
  friend class ::WinMacros;
 
21557
  friend class ::WinAsm;
 
21558
  friend class ::WinDeclSpecs;
 
21559
  friend class ::WinMemberExplSpec;
 
21560
  friend class ::WinTypeKeywords;
 
21561
  friend class ::WinFriend;
 
21562
  friend class ::ExtAC;
 
21563
  friend class ::ExtACBuilderCoupling;
 
21564
  friend class ::ExtACSyntaxCoupling;
 
21565
  friend class ::ExtACTree;
 
21566
  friend class ::ExtACKeywords;
 
21567
  friend class ::ExtGnu;
 
21568
  friend class ::PragmaOnceUnitState;
 
21569
  friend class ::PragmaOnce;
 
21570
  friend class ::CMatchSyntax;
 
21571
 
 
21572
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21573
 
 
21574
  CTree *sons[6]; // oper, placement, open, type, close, init
 
21575
 
 
21576
public:
 
21577
  /** Constructor.
 
21578
   *  \param op The new operator.
 
21579
   *  \param p The optional placement expression.
 
21580
   *  \param o The optional left parenthesis around the type identifier.
 
21581
   *  \param t The type identifier specifying the type of the object to create.
 
21582
   *  \param c The optional right parenthesis around the type identifier.
 
21583
   *  \param i The optional initializer. */
 
21584
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
 
21585
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
21586
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
 
21587
  }
 
21588
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
21589
  static const char *NodeId ();
 
21590
  /** Get the name of the node. Can be compared with NodeId(). */
 
21591
  const char *NodeName () const { return NodeId (); }
 
21592
  /** Get the number of sons. */
 
21593
  int Sons () const { return CTree::Sons (sons, 6); }
 
21594
  /** Get the n-th son.
 
21595
   *  \param n The index of the son.
 
21596
   *  \return The n-th son or NULL. */
 
21597
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
21598
  /** Replace a son.
 
21599
   *  \param old_son The son to replace.
 
21600
   *  \param new_son The new son. */
 
21601
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
21602
    CTree::ReplaceSon (sons, 6, old_son, new_son);
 
21603
  }
 
21604
  /** Get the operator name. */
 
21605
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
21606
  /** Get the placement expression. */
 
21607
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
21608
  /** Get the initializer. */
 
21609
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
21610
  /** Get the type of the object to create. */
 
21611
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
21612
  /** Get the semantic information object. */
 
21613
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
21614
   private:
 
21615
  typedef CT_NewExpr CCExprResolveExpr;
 
21616
 
 
21617
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21618
 public :
 
21619
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
21620
  typedef CT_NewExpr CExprResolveExpr;
 
21621
 
 
21622
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21623
 public :
 
21624
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21625
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21626
};
 
21627
 
 
21628
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
21629
 *  Tree node representing an if-then expression, 
 
21630
 *  e.g. a>0?a:b or a?:b. */
 
21631
 
 
21632
#line 21633 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21633
} // closed Puma
 
21634
class CCExprResolve;
 
21635
class CExprResolve;
 
21636
class WinIfExists;
 
21637
class WinImportHandler;
 
21638
class WinMacros;
 
21639
class WinAsm;
 
21640
class WinDeclSpecs;
 
21641
class WinMemberExplSpec;
 
21642
class WinTypeKeywords;
 
21643
class WinFriend;
 
21644
class ExtAC;
 
21645
class ExtACBuilderCoupling;
 
21646
class ExtACSyntaxCoupling;
 
21647
class ExtACTree;
 
21648
class ExtACKeywords;
 
21649
class ExtGnu;
 
21650
class PragmaOnceUnitState;
 
21651
class PragmaOnce;
 
21652
class CMatchSyntax;
 
21653
namespace Puma {
 
21654
 
 
21655
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21656
 
 
21657
#line 21658 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21658
} // closed Puma
 
21659
 
 
21660
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21661
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21662
#include "CCExprResolveH.ah"
 
21663
#endif
 
21664
namespace Puma {
 
21665
 
 
21666
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21667
 
 
21668
#line 21669 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21669
} // closed Puma
 
21670
 
 
21671
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21672
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21673
#include "CExprResolveH.ah"
 
21674
#endif
 
21675
namespace Puma {
 
21676
 
 
21677
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21678
class CT_IfThenExpr : public CT_Expression {
 
21679
#line 21680 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21680
  friend class ::CCExprResolve;
 
21681
  friend class ::CExprResolve;
 
21682
  friend class ::WinIfExists;
 
21683
  friend class ::WinImportHandler;
 
21684
  friend class ::WinMacros;
 
21685
  friend class ::WinAsm;
 
21686
  friend class ::WinDeclSpecs;
 
21687
  friend class ::WinMemberExplSpec;
 
21688
  friend class ::WinTypeKeywords;
 
21689
  friend class ::WinFriend;
 
21690
  friend class ::ExtAC;
 
21691
  friend class ::ExtACBuilderCoupling;
 
21692
  friend class ::ExtACSyntaxCoupling;
 
21693
  friend class ::ExtACTree;
 
21694
  friend class ::ExtACKeywords;
 
21695
  friend class ::ExtGnu;
 
21696
  friend class ::PragmaOnceUnitState;
 
21697
  friend class ::PragmaOnce;
 
21698
  friend class ::CMatchSyntax;
 
21699
 
 
21700
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21701
 
 
21702
  CTree *sons[5]; // cond, oper, left, colon, right
 
21703
 
 
21704
public:
 
21705
  /** Constructor.
 
21706
   *  \param c1 The condition expression.
 
21707
   *  \param o The question mark operator. 
 
21708
   *  \param l The expression to the left of the colon.
 
21709
   *  \param c2 The colon operator.
 
21710
   *  \param r The expression to the right of the colon. */ 
 
21711
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
 
21712
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
21713
    AddSon (sons[3], c2); AddSon (sons[4], r);
 
21714
  }
 
21715
  /** Constructor.
 
21716
   *  \param c1 The condition expression.
 
21717
   *  \param o The question mark operator. 
 
21718
   *  \param c2 The colon operator.
 
21719
   *  \param r The expression to the right of the colon. */ 
 
21720
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
 
21721
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
21722
    AddSon (sons[3], c2); AddSon (sons[4], r);
 
21723
  }
 
21724
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
21725
  static const char *NodeId ();
 
21726
  /** Get the name of the node. Can be compared with NodeId(). */
 
21727
  const char *NodeName () const { return NodeId (); }
 
21728
  /** Get the number of sons. */
 
21729
  int Sons () const { return CTree::Sons (sons, 5); }
 
21730
  /** Get the n-th son.
 
21731
   *  \param n The index of the son.
 
21732
   *  \return The n-th son or NULL. */
 
21733
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
21734
  /** Get the condition expression. */
 
21735
  CTree *Condition () const { return sons[0]; }
 
21736
  /** Get the left expression (condition=true). */
 
21737
  CTree *LeftOperand () const { return sons[2]; }
 
21738
  /** Get the right expression (condition=false). */
 
21739
  CTree *RightOperand () const { return sons[4]; }
 
21740
  /** Replace a son.
 
21741
   *  \param old_son The son to replace.
 
21742
   *  \param new_son The new son. */
 
21743
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
21744
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
21745
  }
 
21746
   private:
 
21747
  typedef CT_IfThenExpr CCExprResolveExpr;
 
21748
 
 
21749
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21750
 public :
 
21751
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
21752
  typedef CT_IfThenExpr CExprResolveExpr;
 
21753
 
 
21754
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21755
 public :
 
21756
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21757
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21758
};
 
21759
 
 
21760
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
21761
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
 
21762
 
 
21763
#line 21764 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21764
} // closed Puma
 
21765
class CCExprResolve;
 
21766
class CExprResolve;
 
21767
class WinIfExists;
 
21768
class WinImportHandler;
 
21769
class WinMacros;
 
21770
class WinAsm;
 
21771
class WinDeclSpecs;
 
21772
class WinMemberExplSpec;
 
21773
class WinTypeKeywords;
 
21774
class WinFriend;
 
21775
class ExtAC;
 
21776
class ExtACBuilderCoupling;
 
21777
class ExtACSyntaxCoupling;
 
21778
class ExtACTree;
 
21779
class ExtACKeywords;
 
21780
class ExtGnu;
 
21781
class PragmaOnceUnitState;
 
21782
class PragmaOnce;
 
21783
class CMatchSyntax;
 
21784
namespace Puma {
 
21785
 
 
21786
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21787
 
 
21788
#line 21789 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21789
} // closed Puma
 
21790
 
 
21791
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21792
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21793
#include "CCExprResolveH.ah"
 
21794
#endif
 
21795
namespace Puma {
 
21796
 
 
21797
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21798
 
 
21799
#line 21800 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21800
} // closed Puma
 
21801
 
 
21802
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21803
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21804
#include "CExprResolveH.ah"
 
21805
#endif
 
21806
namespace Puma {
 
21807
 
 
21808
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21809
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
 
21810
#line 21811 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21811
  friend class ::CCExprResolve;
 
21812
  friend class ::CExprResolve;
 
21813
  friend class ::WinIfExists;
 
21814
  friend class ::WinImportHandler;
 
21815
  friend class ::WinMacros;
 
21816
  friend class ::WinAsm;
 
21817
  friend class ::WinDeclSpecs;
 
21818
  friend class ::WinMemberExplSpec;
 
21819
  friend class ::WinTypeKeywords;
 
21820
  friend class ::WinFriend;
 
21821
  friend class ::ExtAC;
 
21822
  friend class ::ExtACBuilderCoupling;
 
21823
  friend class ::ExtACSyntaxCoupling;
 
21824
  friend class ::ExtACTree;
 
21825
  friend class ::ExtACKeywords;
 
21826
  friend class ::ExtGnu;
 
21827
  friend class ::PragmaOnceUnitState;
 
21828
  friend class ::PragmaOnce;
 
21829
  friend class ::CMatchSyntax;
 
21830
 
 
21831
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21832
 
 
21833
  CTree *sons[4]; // open, type, close, init
 
21834
 
 
21835
public:
 
21836
  /** Constructor.
 
21837
   *  \param r Left parenthesis of the type name.
 
21838
   *  \param t The type name.
 
21839
   *  \param cr Right parenthesis of the type name.
 
21840
   *  \param i The initializer list. */
 
21841
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
 
21842
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
21843
    AddSon (sons[2], cr); AddSon (sons[3], i);
 
21844
  }
 
21845
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
21846
  static const char *NodeId ();
 
21847
  /** Get the name of the node. Can be compared with NodeId(). */
 
21848
  const char *NodeName () const { return NodeId (); }
 
21849
  /** Get the number of sons. */
 
21850
  int Sons () const { return 4; }
 
21851
  /** Get the n-th son.
 
21852
   *  \param n The index of the son.
 
21853
   *  \return The n-th son or NULL. */
 
21854
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
21855
  /** Replace a son.
 
21856
   *  \param old_son The son to replace.
 
21857
   *  \param new_son The new son. */
 
21858
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
21859
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
21860
  }
 
21861
  /** Get the type name. */
 
21862
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
21863
  /** Get the initializer list. */
 
21864
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
21865
  /** Get the semantic information object. */
 
21866
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
21867
   private:
 
21868
  typedef CT_CmpdLiteral CCExprResolveExpr;
 
21869
 
 
21870
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21871
 public :
 
21872
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
21873
  typedef CT_CmpdLiteral CExprResolveExpr;
 
21874
 
 
21875
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21876
 public :
 
21877
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21878
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21879
};
 
21880
 
 
21881
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
21882
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
 
21883
 
 
21884
#line 21885 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21885
} // closed Puma
 
21886
class CCExprResolve;
 
21887
class CExprResolve;
 
21888
class WinIfExists;
 
21889
class WinImportHandler;
 
21890
class WinMacros;
 
21891
class WinAsm;
 
21892
class WinDeclSpecs;
 
21893
class WinMemberExplSpec;
 
21894
class WinTypeKeywords;
 
21895
class WinFriend;
 
21896
class ExtAC;
 
21897
class ExtACBuilderCoupling;
 
21898
class ExtACSyntaxCoupling;
 
21899
class ExtACTree;
 
21900
class ExtACKeywords;
 
21901
class ExtGnu;
 
21902
class PragmaOnceUnitState;
 
21903
class PragmaOnce;
 
21904
class CMatchSyntax;
 
21905
namespace Puma {
 
21906
 
 
21907
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21908
 
 
21909
#line 21910 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21910
} // closed Puma
 
21911
 
 
21912
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21913
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21914
#include "CCExprResolveH.ah"
 
21915
#endif
 
21916
namespace Puma {
 
21917
 
 
21918
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21919
 
 
21920
#line 21921 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21921
} // closed Puma
 
21922
 
 
21923
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21924
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21925
#include "CExprResolveH.ah"
 
21926
#endif
 
21927
namespace Puma {
 
21928
 
 
21929
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21930
class CT_ConstructExpr : public CT_Expression, public CSemObject {
 
21931
#line 21932 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
21932
  friend class ::CCExprResolve;
 
21933
  friend class ::CExprResolve;
 
21934
  friend class ::WinIfExists;
 
21935
  friend class ::WinImportHandler;
 
21936
  friend class ::WinMacros;
 
21937
  friend class ::WinAsm;
 
21938
  friend class ::WinDeclSpecs;
 
21939
  friend class ::WinMemberExplSpec;
 
21940
  friend class ::WinTypeKeywords;
 
21941
  friend class ::WinFriend;
 
21942
  friend class ::ExtAC;
 
21943
  friend class ::ExtACBuilderCoupling;
 
21944
  friend class ::ExtACSyntaxCoupling;
 
21945
  friend class ::ExtACTree;
 
21946
  friend class ::ExtACKeywords;
 
21947
  friend class ::ExtGnu;
 
21948
  friend class ::PragmaOnceUnitState;
 
21949
  friend class ::PragmaOnce;
 
21950
  friend class ::CMatchSyntax;
 
21951
 
 
21952
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21953
 
 
21954
  CTree *sons[2]; // type, init
 
21955
 
 
21956
public:
 
21957
  /** Constructor.
 
21958
   *  \param t The type name.
 
21959
   *  \param i The initializer list. */
 
21960
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
21961
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
21962
  static const char *NodeId ();
 
21963
  /** Get the name of the node. Can be compared with NodeId(). */
 
21964
  const char *NodeName () const { return NodeId (); }
 
21965
  /** Get the number of sons. */
 
21966
  int Sons () const { return 2; }
 
21967
  /** Get the n-th son.
 
21968
   *  \param n The index of the son.
 
21969
   *  \return The n-th son or NULL. */
 
21970
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
21971
  /** Replace a son.
 
21972
   *  \param old_son The son to replace.
 
21973
   *  \param new_son The new son. */
 
21974
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
21975
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
21976
  }
 
21977
  /** Get the type name. */
 
21978
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
21979
  /** Get the initializer. */
 
21980
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
21981
  /** Get the semantic information object. */
 
21982
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
21983
   private:
 
21984
  typedef CT_ConstructExpr CCExprResolveExpr;
 
21985
 
 
21986
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21987
 public :
 
21988
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
21989
  typedef CT_ConstructExpr CExprResolveExpr;
 
21990
 
 
21991
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21992
 public :
 
21993
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21994
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21995
};
 
21996
 
 
21997
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
21998
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
 
21999
 
 
22000
#line 22001 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22001
} // closed Puma
 
22002
class CCExprResolve;
 
22003
class CExprResolve;
 
22004
class WinIfExists;
 
22005
class WinImportHandler;
 
22006
class WinMacros;
 
22007
class WinAsm;
 
22008
class WinDeclSpecs;
 
22009
class WinMemberExplSpec;
 
22010
class WinTypeKeywords;
 
22011
class WinFriend;
 
22012
class ExtAC;
 
22013
class ExtACBuilderCoupling;
 
22014
class ExtACSyntaxCoupling;
 
22015
class ExtACTree;
 
22016
class ExtACKeywords;
 
22017
class ExtGnu;
 
22018
class PragmaOnceUnitState;
 
22019
class PragmaOnce;
 
22020
class CMatchSyntax;
 
22021
namespace Puma {
 
22022
 
 
22023
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22024
 
 
22025
#line 22026 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22026
} // closed Puma
 
22027
 
 
22028
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22029
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22030
#include "CCExprResolveH.ah"
 
22031
#endif
 
22032
namespace Puma {
 
22033
 
 
22034
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22035
 
 
22036
#line 22037 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22037
} // closed Puma
 
22038
 
 
22039
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22040
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22041
#include "CExprResolveH.ah"
 
22042
#endif
 
22043
namespace Puma {
 
22044
 
 
22045
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22046
class CT_ThrowExpr : public CT_Expression {
 
22047
#line 22048 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22048
  friend class ::CCExprResolve;
 
22049
  friend class ::CExprResolve;
 
22050
  friend class ::WinIfExists;
 
22051
  friend class ::WinImportHandler;
 
22052
  friend class ::WinMacros;
 
22053
  friend class ::WinAsm;
 
22054
  friend class ::WinDeclSpecs;
 
22055
  friend class ::WinMemberExplSpec;
 
22056
  friend class ::WinTypeKeywords;
 
22057
  friend class ::WinFriend;
 
22058
  friend class ::ExtAC;
 
22059
  friend class ::ExtACBuilderCoupling;
 
22060
  friend class ::ExtACSyntaxCoupling;
 
22061
  friend class ::ExtACTree;
 
22062
  friend class ::ExtACKeywords;
 
22063
  friend class ::ExtGnu;
 
22064
  friend class ::PragmaOnceUnitState;
 
22065
  friend class ::PragmaOnce;
 
22066
  friend class ::CMatchSyntax;
 
22067
 
 
22068
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22069
 
 
22070
  CTree *sons[2]; // throw, expr
 
22071
 
 
22072
public:
 
22073
  /** Constructor.
 
22074
   *  \param t The 'throw' keyword.
 
22075
   *  \param e The expression. */
 
22076
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
22077
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
22078
  static const char *NodeId ();
 
22079
  /** Get the name of the node. Can be compared with NodeId(). */
 
22080
  const char *NodeName () const { return NodeId (); }
 
22081
  /** Get the number of sons. */
 
22082
  int Sons () const { return CTree::Sons (sons, 2); }
 
22083
  /** Get the n-th son.
 
22084
   *  \param n The index of the son.
 
22085
   *  \return The n-th son or NULL. */
 
22086
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
22087
  /** Replace a son.
 
22088
   *  \param old_son The son to replace.
 
22089
   *  \param new_son The new son. */
 
22090
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
22091
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
22092
  }
 
22093
  /** Get the expression. */
 
22094
  CTree *Expr () const { return sons[1]; }
 
22095
   private:
 
22096
  typedef CT_ThrowExpr CCExprResolveExpr;
 
22097
 
 
22098
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22099
 public :
 
22100
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
22101
  typedef CT_ThrowExpr CExprResolveExpr;
 
22102
 
 
22103
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22104
 public :
 
22105
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22106
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22107
};
 
22108
 
 
22109
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
22110
 *  Tree node representing an index expression. */
 
22111
 
 
22112
#line 22113 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22113
} // closed Puma
 
22114
class CCExprResolve;
 
22115
class CExprResolve;
 
22116
class WinIfExists;
 
22117
class WinImportHandler;
 
22118
class WinMacros;
 
22119
class WinAsm;
 
22120
class WinDeclSpecs;
 
22121
class WinMemberExplSpec;
 
22122
class WinTypeKeywords;
 
22123
class WinFriend;
 
22124
class ExtAC;
 
22125
class ExtACBuilderCoupling;
 
22126
class ExtACSyntaxCoupling;
 
22127
class ExtACTree;
 
22128
class ExtACKeywords;
 
22129
class ExtGnu;
 
22130
class PragmaOnceUnitState;
 
22131
class PragmaOnce;
 
22132
class CMatchSyntax;
 
22133
namespace Puma {
 
22134
 
 
22135
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22136
 
 
22137
#line 22138 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22138
} // closed Puma
 
22139
 
 
22140
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22141
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22142
#include "CCExprResolveH.ah"
 
22143
#endif
 
22144
namespace Puma {
 
22145
 
 
22146
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22147
 
 
22148
#line 22149 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22149
} // closed Puma
 
22150
 
 
22151
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22152
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22153
#include "CExprResolveH.ah"
 
22154
#endif
 
22155
namespace Puma {
 
22156
 
 
22157
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22158
class CT_IndexExpr : public CT_Call {
 
22159
#line 22160 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22160
  friend class ::CCExprResolve;
 
22161
  friend class ::CExprResolve;
 
22162
  friend class ::WinIfExists;
 
22163
  friend class ::WinImportHandler;
 
22164
  friend class ::WinMacros;
 
22165
  friend class ::WinAsm;
 
22166
  friend class ::WinDeclSpecs;
 
22167
  friend class ::WinMemberExplSpec;
 
22168
  friend class ::WinTypeKeywords;
 
22169
  friend class ::WinFriend;
 
22170
  friend class ::ExtAC;
 
22171
  friend class ::ExtACBuilderCoupling;
 
22172
  friend class ::ExtACSyntaxCoupling;
 
22173
  friend class ::ExtACTree;
 
22174
  friend class ::ExtACKeywords;
 
22175
  friend class ::ExtGnu;
 
22176
  friend class ::PragmaOnceUnitState;
 
22177
  friend class ::PragmaOnce;
 
22178
  friend class ::CMatchSyntax;
 
22179
 
 
22180
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22181
 
 
22182
  CTree *sons[4]; // expr, open, index, close
 
22183
 
 
22184
public:
 
22185
  /** Constructor.
 
22186
   *  \param e The expression on which to invoke the index operator.
 
22187
   *  \param o Left parenthesis of the index expression.
 
22188
   *  \param i The index expression. 
 
22189
   *  \param c Right parenthesis of the index expression. */
 
22190
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
 
22191
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
22192
    AddSon (sons[2], i); AddSon (sons[3], c);
 
22193
  }
 
22194
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
22195
  static const char *NodeId ();
 
22196
  /** Get the name of the node. Can be compared with NodeId(). */
 
22197
  const char *NodeName () const { return NodeId (); }
 
22198
  /** Get the number of sons. */
 
22199
  int Sons () const { return 4; }
 
22200
  /** Get the n-th son.
 
22201
   *  \param n The index of the son.
 
22202
   *  \return The n-th son or NULL. */
 
22203
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
22204
  /** Replace a son.
 
22205
   *  \param old_son The son to replace.
 
22206
   *  \param new_son The new son. */
 
22207
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
22208
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
22209
  }
 
22210
   private:
 
22211
  typedef CT_IndexExpr CCExprResolveExpr;
 
22212
 
 
22213
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22214
 public :
 
22215
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
22216
  typedef CT_IndexExpr CExprResolveExpr;
 
22217
 
 
22218
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22219
 public :
 
22220
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22221
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22222
};
 
22223
 
 
22224
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
22225
 *  Tree node representing a function call expression, e.g. f(i). */
 
22226
 
 
22227
#line 22228 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22228
} // closed Puma
 
22229
class CCExprResolve;
 
22230
class CExprResolve;
 
22231
class WinIfExists;
 
22232
class WinImportHandler;
 
22233
class WinMacros;
 
22234
class WinAsm;
 
22235
class WinDeclSpecs;
 
22236
class WinMemberExplSpec;
 
22237
class WinTypeKeywords;
 
22238
class WinFriend;
 
22239
class ExtAC;
 
22240
class ExtACBuilderCoupling;
 
22241
class ExtACSyntaxCoupling;
 
22242
class ExtACTree;
 
22243
class ExtACKeywords;
 
22244
class ExtGnu;
 
22245
class PragmaOnceUnitState;
 
22246
class PragmaOnce;
 
22247
class CMatchSyntax;
 
22248
namespace Puma {
 
22249
 
 
22250
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22251
 
 
22252
#line 22253 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22253
} // closed Puma
 
22254
 
 
22255
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22256
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22257
#include "CCExprResolveH.ah"
 
22258
#endif
 
22259
namespace Puma {
 
22260
 
 
22261
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22262
 
 
22263
#line 22264 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22264
} // closed Puma
 
22265
 
 
22266
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22267
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22268
#include "CExprResolveH.ah"
 
22269
#endif
 
22270
namespace Puma {
 
22271
 
 
22272
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22273
class CT_CallExpr : public CT_Call {
 
22274
#line 22275 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22275
  friend class ::CCExprResolve;
 
22276
  friend class ::CExprResolve;
 
22277
  friend class ::WinIfExists;
 
22278
  friend class ::WinImportHandler;
 
22279
  friend class ::WinMacros;
 
22280
  friend class ::WinAsm;
 
22281
  friend class ::WinDeclSpecs;
 
22282
  friend class ::WinMemberExplSpec;
 
22283
  friend class ::WinTypeKeywords;
 
22284
  friend class ::WinFriend;
 
22285
  friend class ::ExtAC;
 
22286
  friend class ::ExtACBuilderCoupling;
 
22287
  friend class ::ExtACSyntaxCoupling;
 
22288
  friend class ::ExtACTree;
 
22289
  friend class ::ExtACKeywords;
 
22290
  friend class ::ExtGnu;
 
22291
  friend class ::PragmaOnceUnitState;
 
22292
  friend class ::PragmaOnce;
 
22293
  friend class ::CMatchSyntax;
 
22294
 
 
22295
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22296
 
 
22297
  CTree *sons[2]; // expr, args
 
22298
 
 
22299
public:
 
22300
  /** Constructor.
 
22301
   *  \param e The expression on which the call is invoked. */
 
22302
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
22303
  /** Constructor.
 
22304
   *  \param e The expression on which the call is invoked.
 
22305
   *  \param l The argument list of the call. */
 
22306
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
22307
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
22308
  static const char *NodeId ();
 
22309
  /** Get the name of the node. Can be compared with NodeId(). */
 
22310
  const char *NodeName () const { return NodeId (); }
 
22311
  /** Get the number of sons. */
 
22312
  int Sons () const { return CTree::Sons (sons, 2); }
 
22313
  /** Get the n-th son.
 
22314
   *  \param n The index of the son.
 
22315
   *  \return The n-th son or NULL. */
 
22316
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
22317
  /** Replace a son.
 
22318
   *  \param old_son The son to replace.
 
22319
   *  \param new_son The new son. */
 
22320
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
22321
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
22322
  }
 
22323
  CTree *Expr () const { return sons[0]; }
 
22324
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
 
22325
   private:
 
22326
  typedef CT_CallExpr CCExprResolveExpr;
 
22327
 
 
22328
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22329
 public :
 
22330
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
22331
  typedef CT_CallExpr CExprResolveExpr;
 
22332
 
 
22333
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22334
 public :
 
22335
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22336
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22337
};
 
22338
 
 
22339
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
22340
 *  Tree node representing a cast expression, e.g. (int)a. */
 
22341
 
 
22342
#line 22343 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22343
} // closed Puma
 
22344
class CCExprResolve;
 
22345
class CExprResolve;
 
22346
class WinIfExists;
 
22347
class WinImportHandler;
 
22348
class WinMacros;
 
22349
class WinAsm;
 
22350
class WinDeclSpecs;
 
22351
class WinMemberExplSpec;
 
22352
class WinTypeKeywords;
 
22353
class WinFriend;
 
22354
class ExtAC;
 
22355
class ExtACBuilderCoupling;
 
22356
class ExtACSyntaxCoupling;
 
22357
class ExtACTree;
 
22358
class ExtACKeywords;
 
22359
class ExtGnu;
 
22360
class PragmaOnceUnitState;
 
22361
class PragmaOnce;
 
22362
class CMatchSyntax;
 
22363
namespace Puma {
 
22364
 
 
22365
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22366
 
 
22367
#line 22368 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22368
} // closed Puma
 
22369
 
 
22370
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22371
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22372
#include "CCExprResolveH.ah"
 
22373
#endif
 
22374
namespace Puma {
 
22375
 
 
22376
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22377
 
 
22378
#line 22379 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22379
} // closed Puma
 
22380
 
 
22381
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22382
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22383
#include "CExprResolveH.ah"
 
22384
#endif
 
22385
namespace Puma {
 
22386
 
 
22387
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22388
class CT_CastExpr : public CT_Expression {
 
22389
#line 22390 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22390
  friend class ::CCExprResolve;
 
22391
  friend class ::CExprResolve;
 
22392
  friend class ::WinIfExists;
 
22393
  friend class ::WinImportHandler;
 
22394
  friend class ::WinMacros;
 
22395
  friend class ::WinAsm;
 
22396
  friend class ::WinDeclSpecs;
 
22397
  friend class ::WinMemberExplSpec;
 
22398
  friend class ::WinTypeKeywords;
 
22399
  friend class ::WinFriend;
 
22400
  friend class ::ExtAC;
 
22401
  friend class ::ExtACBuilderCoupling;
 
22402
  friend class ::ExtACSyntaxCoupling;
 
22403
  friend class ::ExtACTree;
 
22404
  friend class ::ExtACKeywords;
 
22405
  friend class ::ExtGnu;
 
22406
  friend class ::PragmaOnceUnitState;
 
22407
  friend class ::PragmaOnce;
 
22408
  friend class ::CMatchSyntax;
 
22409
 
 
22410
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22411
 
 
22412
  CTree *sons[4]; // open, type, close, expr
 
22413
 
 
22414
public:
 
22415
  /** Constructor.
 
22416
   *  \param o Left parenthesis of the type name.
 
22417
   *  \param t The type to cast to.
 
22418
   *  \param c Right parenthesis of the type name. 
 
22419
   *  \param e The expression to cast. */
 
22420
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
 
22421
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
22422
    AddSon (sons[2], c); AddSon (sons[3], e);
 
22423
  }
 
22424
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
22425
  static const char *NodeId ();
 
22426
  /** Get the name of the node. Can be compared with NodeId(). */
 
22427
  const char *NodeName () const { return NodeId (); }
 
22428
  /** Get the number of sons. */
 
22429
  int Sons () const { return 4; }
 
22430
  /** Get the n-th son.
 
22431
   *  \param n The index of the son.
 
22432
   *  \return The n-th son or NULL. */
 
22433
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
22434
  /** Replace a son.
 
22435
   *  \param old_son The son to replace.
 
22436
   *  \param new_son The new son. */
 
22437
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
22438
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
22439
  }
 
22440
  /** Get the casted expression. */
 
22441
  CTree *Expr () const { return sons[3]; }
 
22442
  /** Get the type to cast to. */
 
22443
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
22444
   private:
 
22445
  typedef CT_CastExpr CCExprResolveExpr;
 
22446
 
 
22447
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22448
 public :
 
22449
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
22450
  typedef CT_CastExpr CExprResolveExpr;
 
22451
 
 
22452
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22453
 public :
 
22454
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22455
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22456
};
 
22457
 
 
22458
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
22459
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
 
22460
 
 
22461
#line 22462 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22462
} // closed Puma
 
22463
class CCExprResolve;
 
22464
class CExprResolve;
 
22465
class WinIfExists;
 
22466
class WinImportHandler;
 
22467
class WinMacros;
 
22468
class WinAsm;
 
22469
class WinDeclSpecs;
 
22470
class WinMemberExplSpec;
 
22471
class WinTypeKeywords;
 
22472
class WinFriend;
 
22473
class ExtAC;
 
22474
class ExtACBuilderCoupling;
 
22475
class ExtACSyntaxCoupling;
 
22476
class ExtACTree;
 
22477
class ExtACKeywords;
 
22478
class ExtGnu;
 
22479
class PragmaOnceUnitState;
 
22480
class PragmaOnce;
 
22481
class CMatchSyntax;
 
22482
namespace Puma {
 
22483
 
 
22484
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22485
 
 
22486
#line 22487 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22487
} // closed Puma
 
22488
 
 
22489
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22490
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22491
#include "CCExprResolveH.ah"
 
22492
#endif
 
22493
namespace Puma {
 
22494
 
 
22495
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22496
 
 
22497
#line 22498 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22498
} // closed Puma
 
22499
 
 
22500
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22501
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22502
#include "CExprResolveH.ah"
 
22503
#endif
 
22504
namespace Puma {
 
22505
 
 
22506
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22507
class CT_StaticCast : public CT_Expression {
 
22508
#line 22509 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22509
  friend class ::CCExprResolve;
 
22510
  friend class ::CExprResolve;
 
22511
  friend class ::WinIfExists;
 
22512
  friend class ::WinImportHandler;
 
22513
  friend class ::WinMacros;
 
22514
  friend class ::WinAsm;
 
22515
  friend class ::WinDeclSpecs;
 
22516
  friend class ::WinMemberExplSpec;
 
22517
  friend class ::WinTypeKeywords;
 
22518
  friend class ::WinFriend;
 
22519
  friend class ::ExtAC;
 
22520
  friend class ::ExtACBuilderCoupling;
 
22521
  friend class ::ExtACSyntaxCoupling;
 
22522
  friend class ::ExtACTree;
 
22523
  friend class ::ExtACKeywords;
 
22524
  friend class ::ExtGnu;
 
22525
  friend class ::PragmaOnceUnitState;
 
22526
  friend class ::PragmaOnce;
 
22527
  friend class ::CMatchSyntax;
 
22528
 
 
22529
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22530
 
 
22531
  CTree *sons[5]; // cast, open, type, close, expr
 
22532
 
 
22533
public:
 
22534
  /** Constructor.
 
22535
   *  \param cst The cast operator, i.e. 'static_cast'.
 
22536
   *  \param o Left arrow bracket of the type name.
 
22537
   *  \param t The type to cast to.
 
22538
   *  \param c Right array bracket of the type name.
 
22539
   *  \param e The expression to cast. */
 
22540
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
 
22541
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
22542
    AddSon (sons[3], c); AddSon (sons[4], e);
 
22543
  }
 
22544
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
22545
  static const char *NodeId ();
 
22546
  /** Get the name of the node. Can be compared with NodeId(). */
 
22547
  const char *NodeName () const { return NodeId (); }
 
22548
  /** Get the number of sons. */
 
22549
  int Sons () const { return 5; }
 
22550
  /** Get the n-th son.
 
22551
   *  \param n The index of the son.
 
22552
   *  \return The n-th son or NULL. */
 
22553
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
22554
  /** Replace a son.
 
22555
   *  \param old_son The son to replace.
 
22556
   *  \param new_son The new son. */
 
22557
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
22558
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
22559
  }
 
22560
  /** Get the casted expression. */
 
22561
  CTree *Expr () const { return sons[4]; }
 
22562
  /** Get the type to cast to. */
 
22563
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
 
22564
   private:
 
22565
  typedef CT_StaticCast CCExprResolveExpr;
 
22566
 
 
22567
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22568
 public :
 
22569
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
22570
  typedef CT_StaticCast CExprResolveExpr;
 
22571
 
 
22572
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22573
 public :
 
22574
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22575
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22576
};
 
22577
 
 
22578
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
22579
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
 
22580
 
 
22581
#line 22582 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22582
} // closed Puma
 
22583
class CCExprResolve;
 
22584
class CExprResolve;
 
22585
class WinIfExists;
 
22586
class WinImportHandler;
 
22587
class WinMacros;
 
22588
class WinAsm;
 
22589
class WinDeclSpecs;
 
22590
class WinMemberExplSpec;
 
22591
class WinTypeKeywords;
 
22592
class WinFriend;
 
22593
class ExtAC;
 
22594
class ExtACBuilderCoupling;
 
22595
class ExtACSyntaxCoupling;
 
22596
class ExtACTree;
 
22597
class ExtACKeywords;
 
22598
class ExtGnu;
 
22599
class PragmaOnceUnitState;
 
22600
class PragmaOnce;
 
22601
class CMatchSyntax;
 
22602
namespace Puma {
 
22603
 
 
22604
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22605
 
 
22606
#line 22607 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22607
} // closed Puma
 
22608
 
 
22609
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22610
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22611
#include "CCExprResolveH.ah"
 
22612
#endif
 
22613
namespace Puma {
 
22614
 
 
22615
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22616
 
 
22617
#line 22618 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22618
} // closed Puma
 
22619
 
 
22620
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22621
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22622
#include "CExprResolveH.ah"
 
22623
#endif
 
22624
namespace Puma {
 
22625
 
 
22626
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22627
class CT_ConstCast : public CT_StaticCast {
 
22628
#line 22629 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22629
  friend class ::CCExprResolve;
 
22630
  friend class ::CExprResolve;
 
22631
  friend class ::WinIfExists;
 
22632
  friend class ::WinImportHandler;
 
22633
  friend class ::WinMacros;
 
22634
  friend class ::WinAsm;
 
22635
  friend class ::WinDeclSpecs;
 
22636
  friend class ::WinMemberExplSpec;
 
22637
  friend class ::WinTypeKeywords;
 
22638
  friend class ::WinFriend;
 
22639
  friend class ::ExtAC;
 
22640
  friend class ::ExtACBuilderCoupling;
 
22641
  friend class ::ExtACSyntaxCoupling;
 
22642
  friend class ::ExtACTree;
 
22643
  friend class ::ExtACKeywords;
 
22644
  friend class ::ExtGnu;
 
22645
  friend class ::PragmaOnceUnitState;
 
22646
  friend class ::PragmaOnce;
 
22647
  friend class ::CMatchSyntax;
 
22648
 
 
22649
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22650
 
 
22651
public:
 
22652
  /** Constructor.
 
22653
   *  \param cst The cast operator, i.e. 'const_cast'.
 
22654
   *  \param o Left arrow bracket of the type name.
 
22655
   *  \param t The type to cast to.
 
22656
   *  \param c Right array bracket of the type name.
 
22657
   *  \param e The expression to cast. */
 
22658
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
22659
    CT_StaticCast (cst, o, t, c, e) {}
 
22660
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
22661
  static const char *NodeId ();
 
22662
  /** Get the name of the node. Can be compared with NodeId(). */
 
22663
  const char *NodeName () const { return NodeId (); }
 
22664
   private:
 
22665
  typedef CT_ConstCast CCExprResolveExpr;
 
22666
 
 
22667
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22668
 public :
 
22669
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
22670
  typedef CT_ConstCast CExprResolveExpr;
 
22671
 
 
22672
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22673
 public :
 
22674
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22675
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22676
};
 
22677
 
 
22678
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
22679
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
 
22680
 
 
22681
#line 22682 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22682
} // closed Puma
 
22683
class CCExprResolve;
 
22684
class CExprResolve;
 
22685
class WinIfExists;
 
22686
class WinImportHandler;
 
22687
class WinMacros;
 
22688
class WinAsm;
 
22689
class WinDeclSpecs;
 
22690
class WinMemberExplSpec;
 
22691
class WinTypeKeywords;
 
22692
class WinFriend;
 
22693
class ExtAC;
 
22694
class ExtACBuilderCoupling;
 
22695
class ExtACSyntaxCoupling;
 
22696
class ExtACTree;
 
22697
class ExtACKeywords;
 
22698
class ExtGnu;
 
22699
class PragmaOnceUnitState;
 
22700
class PragmaOnce;
 
22701
class CMatchSyntax;
 
22702
namespace Puma {
 
22703
 
 
22704
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22705
 
 
22706
#line 22707 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22707
} // closed Puma
 
22708
 
 
22709
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22710
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22711
#include "CCExprResolveH.ah"
 
22712
#endif
 
22713
namespace Puma {
 
22714
 
 
22715
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22716
 
 
22717
#line 22718 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22718
} // closed Puma
 
22719
 
 
22720
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22721
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22722
#include "CExprResolveH.ah"
 
22723
#endif
 
22724
namespace Puma {
 
22725
 
 
22726
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22727
class CT_ReintCast : public CT_StaticCast {
 
22728
#line 22729 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22729
  friend class ::CCExprResolve;
 
22730
  friend class ::CExprResolve;
 
22731
  friend class ::WinIfExists;
 
22732
  friend class ::WinImportHandler;
 
22733
  friend class ::WinMacros;
 
22734
  friend class ::WinAsm;
 
22735
  friend class ::WinDeclSpecs;
 
22736
  friend class ::WinMemberExplSpec;
 
22737
  friend class ::WinTypeKeywords;
 
22738
  friend class ::WinFriend;
 
22739
  friend class ::ExtAC;
 
22740
  friend class ::ExtACBuilderCoupling;
 
22741
  friend class ::ExtACSyntaxCoupling;
 
22742
  friend class ::ExtACTree;
 
22743
  friend class ::ExtACKeywords;
 
22744
  friend class ::ExtGnu;
 
22745
  friend class ::PragmaOnceUnitState;
 
22746
  friend class ::PragmaOnce;
 
22747
  friend class ::CMatchSyntax;
 
22748
 
 
22749
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22750
 
 
22751
public:
 
22752
  /** Constructor.
 
22753
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
22754
   *  \param o Left arrow bracket of the type name.
 
22755
   *  \param t The type to cast to.
 
22756
   *  \param c Right array bracket of the type name.
 
22757
   *  \param e The expression to cast. */
 
22758
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
22759
    CT_StaticCast (cst, o, t, c, e) {}
 
22760
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
22761
  static const char *NodeId ();
 
22762
  /** Get the name of the node. Can be compared with NodeId(). */
 
22763
  const char *NodeName () const { return NodeId (); }
 
22764
   private:
 
22765
  typedef CT_ReintCast CCExprResolveExpr;
 
22766
 
 
22767
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22768
 public :
 
22769
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
22770
  typedef CT_ReintCast CExprResolveExpr;
 
22771
 
 
22772
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22773
 public :
 
22774
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22775
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22776
};
 
22777
 
 
22778
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
22779
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
 
22780
 
 
22781
#line 22782 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22782
} // closed Puma
 
22783
class CCExprResolve;
 
22784
class CExprResolve;
 
22785
class WinIfExists;
 
22786
class WinImportHandler;
 
22787
class WinMacros;
 
22788
class WinAsm;
 
22789
class WinDeclSpecs;
 
22790
class WinMemberExplSpec;
 
22791
class WinTypeKeywords;
 
22792
class WinFriend;
 
22793
class ExtAC;
 
22794
class ExtACBuilderCoupling;
 
22795
class ExtACSyntaxCoupling;
 
22796
class ExtACTree;
 
22797
class ExtACKeywords;
 
22798
class ExtGnu;
 
22799
class PragmaOnceUnitState;
 
22800
class PragmaOnce;
 
22801
class CMatchSyntax;
 
22802
namespace Puma {
 
22803
 
 
22804
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22805
 
 
22806
#line 22807 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22807
} // closed Puma
 
22808
 
 
22809
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22810
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22811
#include "CCExprResolveH.ah"
 
22812
#endif
 
22813
namespace Puma {
 
22814
 
 
22815
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22816
 
 
22817
#line 22818 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22818
} // closed Puma
 
22819
 
 
22820
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22821
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22822
#include "CExprResolveH.ah"
 
22823
#endif
 
22824
namespace Puma {
 
22825
 
 
22826
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22827
class CT_DynamicCast : public CT_StaticCast {
 
22828
#line 22829 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22829
  friend class ::CCExprResolve;
 
22830
  friend class ::CExprResolve;
 
22831
  friend class ::WinIfExists;
 
22832
  friend class ::WinImportHandler;
 
22833
  friend class ::WinMacros;
 
22834
  friend class ::WinAsm;
 
22835
  friend class ::WinDeclSpecs;
 
22836
  friend class ::WinMemberExplSpec;
 
22837
  friend class ::WinTypeKeywords;
 
22838
  friend class ::WinFriend;
 
22839
  friend class ::ExtAC;
 
22840
  friend class ::ExtACBuilderCoupling;
 
22841
  friend class ::ExtACSyntaxCoupling;
 
22842
  friend class ::ExtACTree;
 
22843
  friend class ::ExtACKeywords;
 
22844
  friend class ::ExtGnu;
 
22845
  friend class ::PragmaOnceUnitState;
 
22846
  friend class ::PragmaOnce;
 
22847
  friend class ::CMatchSyntax;
 
22848
 
 
22849
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22850
 
 
22851
public:
 
22852
  /** Constructor.
 
22853
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
22854
   *  \param o Left arrow bracket of the type name.
 
22855
   *  \param t The type to cast to.
 
22856
   *  \param c Right array bracket of the type name.
 
22857
   *  \param e The expression to cast. */
 
22858
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
22859
    CT_StaticCast (cst, o, t, c, e) {}
 
22860
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
22861
  static const char *NodeId ();
 
22862
  /** Get the name of the node. Can be compared with NodeId(). */
 
22863
  const char *NodeName () const { return NodeId (); }
 
22864
   private:
 
22865
  typedef CT_DynamicCast CCExprResolveExpr;
 
22866
 
 
22867
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22868
 public :
 
22869
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
22870
  typedef CT_DynamicCast CExprResolveExpr;
 
22871
 
 
22872
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22873
 public :
 
22874
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22875
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22876
};
 
22877
 
 
22878
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
22879
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
22880
 *  where 1.2 is implicitely casted from float to int. */
 
22881
 
 
22882
#line 22883 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22883
} // closed Puma
 
22884
class CCExprResolve;
 
22885
class CExprResolve;
 
22886
class WinIfExists;
 
22887
class WinImportHandler;
 
22888
class WinMacros;
 
22889
class WinAsm;
 
22890
class WinDeclSpecs;
 
22891
class WinMemberExplSpec;
 
22892
class WinTypeKeywords;
 
22893
class WinFriend;
 
22894
class ExtAC;
 
22895
class ExtACBuilderCoupling;
 
22896
class ExtACSyntaxCoupling;
 
22897
class ExtACTree;
 
22898
class ExtACKeywords;
 
22899
class ExtGnu;
 
22900
class PragmaOnceUnitState;
 
22901
class PragmaOnce;
 
22902
class CMatchSyntax;
 
22903
namespace Puma {
 
22904
 
 
22905
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22906
 
 
22907
#line 22908 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22908
} // closed Puma
 
22909
 
 
22910
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22911
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
22912
#include "CCExprResolveH.ah"
 
22913
#endif
 
22914
namespace Puma {
 
22915
 
 
22916
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22917
 
 
22918
#line 22919 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22919
} // closed Puma
 
22920
 
 
22921
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22922
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
22923
#include "CExprResolveH.ah"
 
22924
#endif
 
22925
namespace Puma {
 
22926
 
 
22927
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22928
class CT_ImplicitCast : public CT_Expression {
 
22929
#line 22930 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22930
  friend class ::CCExprResolve;
 
22931
  friend class ::CExprResolve;
 
22932
  friend class ::WinIfExists;
 
22933
  friend class ::WinImportHandler;
 
22934
  friend class ::WinMacros;
 
22935
  friend class ::WinAsm;
 
22936
  friend class ::WinDeclSpecs;
 
22937
  friend class ::WinMemberExplSpec;
 
22938
  friend class ::WinTypeKeywords;
 
22939
  friend class ::WinFriend;
 
22940
  friend class ::ExtAC;
 
22941
  friend class ::ExtACBuilderCoupling;
 
22942
  friend class ::ExtACSyntaxCoupling;
 
22943
  friend class ::ExtACTree;
 
22944
  friend class ::ExtACKeywords;
 
22945
  friend class ::ExtGnu;
 
22946
  friend class ::PragmaOnceUnitState;
 
22947
  friend class ::PragmaOnce;
 
22948
  friend class ::CMatchSyntax;
 
22949
 
 
22950
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22951
 
 
22952
  CTree *_expr; // casted expression
 
22953
 
 
22954
public:
 
22955
  /** Constructor.
 
22956
   *  \param e The expression that is implicitely casted. */
 
22957
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
22958
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
22959
  static const char *NodeId ();
 
22960
  /** Get the name of the node. Can be compared with NodeId(). */
 
22961
  const char *NodeName () const { return NodeId (); }
 
22962
  /** Get the number of sons. */
 
22963
  int Sons () const { return 1; }
 
22964
  /** Get the n-th son.
 
22965
   *  \param n The index of the son.
 
22966
   *  \return The n-th son or NULL. */
 
22967
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
22968
  /** Get the casted expression. */
 
22969
  CTree *Expr () const { return _expr; }
 
22970
  /** Replace a son.
 
22971
   *  \param old_son The son to replace.
 
22972
   *  \param new_son The new son. */
 
22973
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
22974
   { CTree::ReplaceSon (_expr, old_son, new_son); }
 
22975
   private:
 
22976
  typedef CT_ImplicitCast CCExprResolveExpr;
 
22977
 
 
22978
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
22979
 public :
 
22980
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
22981
  typedef CT_ImplicitCast CExprResolveExpr;
 
22982
 
 
22983
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
22984
 public :
 
22985
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
22986
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22987
};
 
22988
 
 
22989
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
22990
 *  Tree node representing a typeid expression, e.g. typeid(X). */
 
22991
 
 
22992
#line 22993 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
22993
} // closed Puma
 
22994
class CCExprResolve;
 
22995
class CExprResolve;
 
22996
class WinIfExists;
 
22997
class WinImportHandler;
 
22998
class WinMacros;
 
22999
class WinAsm;
 
23000
class WinDeclSpecs;
 
23001
class WinMemberExplSpec;
 
23002
class WinTypeKeywords;
 
23003
class WinFriend;
 
23004
class ExtAC;
 
23005
class ExtACBuilderCoupling;
 
23006
class ExtACSyntaxCoupling;
 
23007
class ExtACTree;
 
23008
class ExtACKeywords;
 
23009
class ExtGnu;
 
23010
class PragmaOnceUnitState;
 
23011
class PragmaOnce;
 
23012
class CMatchSyntax;
 
23013
namespace Puma {
 
23014
 
 
23015
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23016
 
 
23017
#line 23018 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23018
} // closed Puma
 
23019
 
 
23020
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23021
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23022
#include "CCExprResolveH.ah"
 
23023
#endif
 
23024
namespace Puma {
 
23025
 
 
23026
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23027
 
 
23028
#line 23029 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23029
} // closed Puma
 
23030
 
 
23031
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23032
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23033
#include "CExprResolveH.ah"
 
23034
#endif
 
23035
namespace Puma {
 
23036
 
 
23037
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23038
class CT_TypeidExpr : public CT_Expression {
 
23039
#line 23040 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23040
  friend class ::CCExprResolve;
 
23041
  friend class ::CExprResolve;
 
23042
  friend class ::WinIfExists;
 
23043
  friend class ::WinImportHandler;
 
23044
  friend class ::WinMacros;
 
23045
  friend class ::WinAsm;
 
23046
  friend class ::WinDeclSpecs;
 
23047
  friend class ::WinMemberExplSpec;
 
23048
  friend class ::WinTypeKeywords;
 
23049
  friend class ::WinFriend;
 
23050
  friend class ::ExtAC;
 
23051
  friend class ::ExtACBuilderCoupling;
 
23052
  friend class ::ExtACSyntaxCoupling;
 
23053
  friend class ::ExtACTree;
 
23054
  friend class ::ExtACKeywords;
 
23055
  friend class ::ExtGnu;
 
23056
  friend class ::PragmaOnceUnitState;
 
23057
  friend class ::PragmaOnce;
 
23058
  friend class ::CMatchSyntax;
 
23059
 
 
23060
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23061
 
 
23062
  CTree *sons[4]; // typeid, open, type_id/expr, close
 
23063
 
 
23064
public:
 
23065
  /** Constructor.
 
23066
   *  \param tid The 'typeid' operator.
 
23067
   *  \param o The left parenthesis of the type name or expression.
 
23068
   *  \param e The expression or type name for which to get the type identifier.
 
23069
   *  \param c The right parenthesis of the type name or expression. */
 
23070
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
 
23071
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
23072
    AddSon (sons[2], e); AddSon (sons[3], c);
 
23073
  }
 
23074
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
23075
  static const char *NodeId ();
 
23076
  /** Get the name of the node. Can be compared with NodeId(). */
 
23077
  const char *NodeName () const { return NodeId (); }
 
23078
  /** Get the number of sons. */
 
23079
  int Sons () const { return 4; }
 
23080
  /** Get the n-th son.
 
23081
   *  \param n The index of the son.
 
23082
   *  \return The n-th son or NULL. */
 
23083
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
23084
  /** Replace a son.
 
23085
   *  \param old_son The son to replace.
 
23086
   *  \param new_son The new son. */
 
23087
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
23088
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
23089
  }
 
23090
  /** Get the typeid argument, i.e. the expression or type name for
 
23091
   *  which to get the type identifier. */
 
23092
  CTree *Arg () const { return sons[2]; }
 
23093
   private:
 
23094
  typedef CT_TypeidExpr CCExprResolveExpr;
 
23095
 
 
23096
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
23097
 public :
 
23098
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
23099
  typedef CT_TypeidExpr CExprResolveExpr;
 
23100
 
 
23101
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
23102
 public :
 
23103
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
23104
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23105
};
 
23106
 
 
23107
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
23108
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
 
23109
 
 
23110
#line 23111 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23111
} // closed Puma
 
23112
class CCExprResolve;
 
23113
class CExprResolve;
 
23114
class WinIfExists;
 
23115
class WinImportHandler;
 
23116
class WinMacros;
 
23117
class WinAsm;
 
23118
class WinDeclSpecs;
 
23119
class WinMemberExplSpec;
 
23120
class WinTypeKeywords;
 
23121
class WinFriend;
 
23122
class ExtAC;
 
23123
class ExtACBuilderCoupling;
 
23124
class ExtACSyntaxCoupling;
 
23125
class ExtACTree;
 
23126
class ExtACKeywords;
 
23127
class ExtGnu;
 
23128
class PragmaOnceUnitState;
 
23129
class PragmaOnce;
 
23130
class CMatchSyntax;
 
23131
namespace Puma {
 
23132
 
 
23133
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23134
 
 
23135
#line 23136 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23136
} // closed Puma
 
23137
 
 
23138
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23139
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23140
#include "CCExprResolveH.ah"
 
23141
#endif
 
23142
namespace Puma {
 
23143
 
 
23144
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23145
 
 
23146
#line 23147 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23147
} // closed Puma
 
23148
 
 
23149
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23150
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23151
#include "CExprResolveH.ah"
 
23152
#endif
 
23153
namespace Puma {
 
23154
 
 
23155
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23156
class CT_SizeofExpr : public CT_Expression {
 
23157
#line 23158 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23158
  friend class ::CCExprResolve;
 
23159
  friend class ::CExprResolve;
 
23160
  friend class ::WinIfExists;
 
23161
  friend class ::WinImportHandler;
 
23162
  friend class ::WinMacros;
 
23163
  friend class ::WinAsm;
 
23164
  friend class ::WinDeclSpecs;
 
23165
  friend class ::WinMemberExplSpec;
 
23166
  friend class ::WinTypeKeywords;
 
23167
  friend class ::WinFriend;
 
23168
  friend class ::ExtAC;
 
23169
  friend class ::ExtACBuilderCoupling;
 
23170
  friend class ::ExtACSyntaxCoupling;
 
23171
  friend class ::ExtACTree;
 
23172
  friend class ::ExtACKeywords;
 
23173
  friend class ::ExtGnu;
 
23174
  friend class ::PragmaOnceUnitState;
 
23175
  friend class ::PragmaOnce;
 
23176
  friend class ::CMatchSyntax;
 
23177
 
 
23178
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23179
 
 
23180
  CTree *sons[5]; // key, open, type, close, expr
 
23181
 
 
23182
public:
 
23183
  /** Constructor.
 
23184
   *  \param k The 'sizeof' keyword.
 
23185
   *  \param o Left parenthesis around the type name.
 
23186
   *  \param t The type from which to get the size.
 
23187
   *  \param c Right parenthesis around the type name. */
 
23188
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
 
23189
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
23190
    AddSon (sons[3], c); AddSon (sons[4], 0);
 
23191
  }
 
23192
  /** Constructor.
 
23193
   *  \param k The 'sizeof' keyword.
 
23194
   *  \param e The expression from which to get the size. */
 
23195
  CT_SizeofExpr (CTree *k, CTree *e) {
 
23196
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
23197
    AddSon (sons[3], 0); AddSon (sons[4], e);
 
23198
  }
 
23199
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
23200
  static const char *NodeId ();
 
23201
  /** Get the name of the node. Can be compared with NodeId(). */
 
23202
  const char *NodeName () const { return NodeId (); }
 
23203
  /** Get the number of sons. */
 
23204
  int Sons () const { return CTree::Sons (sons, 5); }
 
23205
  /** Get the n-th son.
 
23206
   *  \param n The index of the son.
 
23207
   *  \return The n-th son or NULL. */
 
23208
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
23209
  /** Replace a son.
 
23210
   *  \param old_son The son to replace.
 
23211
   *  \param new_son The new son. */
 
23212
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
23213
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
23214
  }
 
23215
  /** Get the expression. */
 
23216
  CTree *Expr () const { return sons[4]; }
 
23217
  /** Get the type name. */
 
23218
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
 
23219
   private:
 
23220
  typedef CT_SizeofExpr CCExprResolveExpr;
 
23221
 
 
23222
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
23223
 public :
 
23224
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
23225
  typedef CT_SizeofExpr CExprResolveExpr;
 
23226
 
 
23227
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
23228
 public :
 
23229
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
23230
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23231
};
 
23232
 
 
23233
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
23234
 *  Tree node representing an index designator, i.e. [1]. */
 
23235
 
 
23236
#line 23237 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23237
} // closed Puma
 
23238
class CCExprResolve;
 
23239
class CExprResolve;
 
23240
class WinIfExists;
 
23241
class WinImportHandler;
 
23242
class WinMacros;
 
23243
class WinAsm;
 
23244
class WinDeclSpecs;
 
23245
class WinMemberExplSpec;
 
23246
class WinTypeKeywords;
 
23247
class WinFriend;
 
23248
class ExtAC;
 
23249
class ExtACBuilderCoupling;
 
23250
class ExtACSyntaxCoupling;
 
23251
class ExtACTree;
 
23252
class ExtACKeywords;
 
23253
class ExtGnu;
 
23254
class PragmaOnceUnitState;
 
23255
class PragmaOnce;
 
23256
class CMatchSyntax;
 
23257
namespace Puma {
 
23258
 
 
23259
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23260
 
 
23261
#line 23262 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23262
} // closed Puma
 
23263
 
 
23264
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23265
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23266
#include "CCExprResolveH.ah"
 
23267
#endif
 
23268
namespace Puma {
 
23269
 
 
23270
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23271
 
 
23272
#line 23273 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23273
} // closed Puma
 
23274
 
 
23275
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23276
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23277
#include "CExprResolveH.ah"
 
23278
#endif
 
23279
namespace Puma {
 
23280
 
 
23281
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23282
class CT_IndexDesignator : public CT_Expression {
 
23283
#line 23284 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23284
  friend class ::CCExprResolve;
 
23285
  friend class ::CExprResolve;
 
23286
  friend class ::WinIfExists;
 
23287
  friend class ::WinImportHandler;
 
23288
  friend class ::WinMacros;
 
23289
  friend class ::WinAsm;
 
23290
  friend class ::WinDeclSpecs;
 
23291
  friend class ::WinMemberExplSpec;
 
23292
  friend class ::WinTypeKeywords;
 
23293
  friend class ::WinFriend;
 
23294
  friend class ::ExtAC;
 
23295
  friend class ::ExtACBuilderCoupling;
 
23296
  friend class ::ExtACSyntaxCoupling;
 
23297
  friend class ::ExtACTree;
 
23298
  friend class ::ExtACKeywords;
 
23299
  friend class ::ExtGnu;
 
23300
  friend class ::PragmaOnceUnitState;
 
23301
  friend class ::PragmaOnce;
 
23302
  friend class ::CMatchSyntax;
 
23303
 
 
23304
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23305
 
 
23306
  CTree *sons[3]; // open, index, close
 
23307
 
 
23308
public:
 
23309
  /** Constructor.
 
23310
   *  \param o Left bracket of the index designator.
 
23311
   *  \param i The index expression.
 
23312
   *  \param c Right bracket of the index designator. */
 
23313
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
 
23314
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
 
23315
  }
 
23316
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
23317
  static const char *NodeId ();
 
23318
  /** Get the name of the node. Can be compared with NodeId(). */
 
23319
  const char *NodeName () const { return NodeId (); }
 
23320
  /** Get the number of sons. */
 
23321
  int Sons () const { return 3; }
 
23322
  /** Get the n-th son.
 
23323
   *  \param n The index of the son.
 
23324
   *  \return The n-th son or NULL. */
 
23325
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
23326
  /** Replace a son.
 
23327
   *  \param old_son The son to replace.
 
23328
   *  \param new_son The new son. */
 
23329
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
23330
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
23331
  }
 
23332
   private:
 
23333
  typedef CT_IndexDesignator CCExprResolveExpr;
 
23334
 
 
23335
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
23336
 public :
 
23337
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
23338
  typedef CT_IndexDesignator CExprResolveExpr;
 
23339
 
 
23340
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
23341
 public :
 
23342
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
23343
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23344
};
 
23345
 
 
23346
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
23347
 *  Tree node representing a member designator, e.g. .a. */
 
23348
 
 
23349
#line 23350 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23350
} // closed Puma
 
23351
class CCExprResolve;
 
23352
class CExprResolve;
 
23353
class WinIfExists;
 
23354
class WinImportHandler;
 
23355
class WinMacros;
 
23356
class WinAsm;
 
23357
class WinDeclSpecs;
 
23358
class WinMemberExplSpec;
 
23359
class WinTypeKeywords;
 
23360
class WinFriend;
 
23361
class ExtAC;
 
23362
class ExtACBuilderCoupling;
 
23363
class ExtACSyntaxCoupling;
 
23364
class ExtACTree;
 
23365
class ExtACKeywords;
 
23366
class ExtGnu;
 
23367
class PragmaOnceUnitState;
 
23368
class PragmaOnce;
 
23369
class CMatchSyntax;
 
23370
namespace Puma {
 
23371
 
 
23372
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23373
 
 
23374
#line 23375 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23375
} // closed Puma
 
23376
 
 
23377
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23378
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
23379
#include "CCExprResolveH.ah"
 
23380
#endif
 
23381
namespace Puma {
 
23382
 
 
23383
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23384
 
 
23385
#line 23386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23386
} // closed Puma
 
23387
 
 
23388
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23389
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
23390
#include "CExprResolveH.ah"
 
23391
#endif
 
23392
namespace Puma {
 
23393
 
 
23394
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23395
class CT_MembDesignator : public CT_Expression {
 
23396
#line 23397 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23397
  friend class ::CCExprResolve;
 
23398
  friend class ::CExprResolve;
 
23399
  friend class ::WinIfExists;
 
23400
  friend class ::WinImportHandler;
 
23401
  friend class ::WinMacros;
 
23402
  friend class ::WinAsm;
 
23403
  friend class ::WinDeclSpecs;
 
23404
  friend class ::WinMemberExplSpec;
 
23405
  friend class ::WinTypeKeywords;
 
23406
  friend class ::WinFriend;
 
23407
  friend class ::ExtAC;
 
23408
  friend class ::ExtACBuilderCoupling;
 
23409
  friend class ::ExtACSyntaxCoupling;
 
23410
  friend class ::ExtACTree;
 
23411
  friend class ::ExtACKeywords;
 
23412
  friend class ::ExtGnu;
 
23413
  friend class ::PragmaOnceUnitState;
 
23414
  friend class ::PragmaOnce;
 
23415
  friend class ::CMatchSyntax;
 
23416
 
 
23417
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23418
 
 
23419
  CTree *sons[2]; // dot, member
 
23420
 
 
23421
public:
 
23422
  /** Constructor.
 
23423
   *  \param d The dot before the member name.
 
23424
   *  \param m The member name. */
 
23425
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
23426
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
23427
  static const char *NodeId ();
 
23428
  /** Get the name of the node. Can be compared with NodeId(). */
 
23429
  const char *NodeName () const { return NodeId (); }
 
23430
  /** Get the number of sons. */
 
23431
  int Sons () const { return 2; }
 
23432
  /** Get the n-th son.
 
23433
   *  \param n The index of the son.
 
23434
   *  \return The n-th son or NULL. */
 
23435
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
23436
  /** Replace a son.
 
23437
   *  \param old_son The son to replace.
 
23438
   *  \param new_son The new son. */
 
23439
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
23440
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
23441
  }
 
23442
   private:
 
23443
  typedef CT_MembDesignator CCExprResolveExpr;
 
23444
 
 
23445
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
23446
 public :
 
23447
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
23448
  typedef CT_MembDesignator CExprResolveExpr;
 
23449
 
 
23450
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
23451
 public :
 
23452
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
23453
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23454
};
 
23455
 
 
23456
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
23457
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
 
23458
 
 
23459
#line 23460 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23460
} // closed Puma
 
23461
class CCExprResolve;
 
23462
class CExprResolve;
 
23463
class WinIfExists;
 
23464
class WinImportHandler;
 
23465
class WinMacros;
 
23466
class WinAsm;
 
23467
class WinDeclSpecs;
 
23468
class WinMemberExplSpec;
 
23469
class WinTypeKeywords;
 
23470
class WinFriend;
 
23471
class ExtAC;
 
23472
class ExtACBuilderCoupling;
 
23473
class ExtACSyntaxCoupling;
 
23474
class ExtACTree;
 
23475
class ExtACKeywords;
 
23476
class ExtGnu;
 
23477
class PragmaOnceUnitState;
 
23478
class PragmaOnce;
 
23479
class CMatchSyntax;
 
23480
namespace Puma {
 
23481
 
 
23482
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23483
class CT_DesignatorSeq : public CT_List, public CSemValue {
 
23484
#line 23485 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23485
  friend class ::CCExprResolve;
 
23486
  friend class ::CExprResolve;
 
23487
  friend class ::WinIfExists;
 
23488
  friend class ::WinImportHandler;
 
23489
  friend class ::WinMacros;
 
23490
  friend class ::WinAsm;
 
23491
  friend class ::WinDeclSpecs;
 
23492
  friend class ::WinMemberExplSpec;
 
23493
  friend class ::WinTypeKeywords;
 
23494
  friend class ::WinFriend;
 
23495
  friend class ::ExtAC;
 
23496
  friend class ::ExtACBuilderCoupling;
 
23497
  friend class ::ExtACSyntaxCoupling;
 
23498
  friend class ::ExtACTree;
 
23499
  friend class ::ExtACKeywords;
 
23500
  friend class ::ExtGnu;
 
23501
  friend class ::PragmaOnceUnitState;
 
23502
  friend class ::PragmaOnce;
 
23503
  friend class ::CMatchSyntax;
 
23504
 
 
23505
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23506
 
 
23507
public:
 
23508
  /** Constructor.
 
23509
   *  \param size Initial number of designators. */
 
23510
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
23511
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
23512
  static const char *NodeId ();
 
23513
  /** Get the name of the node. Can be compared with NodeId(). */
 
23514
  const char *NodeName () const { return NodeId (); }
 
23515
 
 
23516
  /** Get the type of the entity to initialize. */
 
23517
  CTypeInfo *Type () const { return type; }
 
23518
  /** Get the value of the entity to initialize. */
 
23519
  CExprValue *Value () const { return value; }
 
23520
  /** Get the semantic value object. */
 
23521
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
23522
};
 
23523
 
 
23524
/*****************************************************************************/
 
23525
/*                                                                           */
 
23526
/*                         Declaration specifiers                            */
 
23527
/*                                                                           */
 
23528
/*****************************************************************************/
 
23529
 
 
23530
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
23531
 *  Base class for all tree nodes representing declaration specifiers. */
 
23532
 
 
23533
#line 23534 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23534
} // closed Puma
 
23535
class CCExprResolve;
 
23536
class CExprResolve;
 
23537
class WinIfExists;
 
23538
class WinImportHandler;
 
23539
class WinMacros;
 
23540
class WinAsm;
 
23541
class WinDeclSpecs;
 
23542
class WinMemberExplSpec;
 
23543
class WinTypeKeywords;
 
23544
class WinFriend;
 
23545
class ExtAC;
 
23546
class ExtACBuilderCoupling;
 
23547
class ExtACSyntaxCoupling;
 
23548
class ExtACTree;
 
23549
class ExtACKeywords;
 
23550
class ExtGnu;
 
23551
class PragmaOnceUnitState;
 
23552
class PragmaOnce;
 
23553
class CMatchSyntax;
 
23554
namespace Puma {
 
23555
 
 
23556
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23557
class CT_DeclSpec : public CTree {
 
23558
#line 23559 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23559
  friend class ::CCExprResolve;
 
23560
  friend class ::CExprResolve;
 
23561
  friend class ::WinIfExists;
 
23562
  friend class ::WinImportHandler;
 
23563
  friend class ::WinMacros;
 
23564
  friend class ::WinAsm;
 
23565
  friend class ::WinDeclSpecs;
 
23566
  friend class ::WinMemberExplSpec;
 
23567
  friend class ::WinTypeKeywords;
 
23568
  friend class ::WinFriend;
 
23569
  friend class ::ExtAC;
 
23570
  friend class ::ExtACBuilderCoupling;
 
23571
  friend class ::ExtACSyntaxCoupling;
 
23572
  friend class ::ExtACTree;
 
23573
  friend class ::ExtACKeywords;
 
23574
  friend class ::ExtGnu;
 
23575
  friend class ::PragmaOnceUnitState;
 
23576
  friend class ::PragmaOnce;
 
23577
  friend class ::CMatchSyntax;
 
23578
 
 
23579
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23580
 
 
23581
protected:
 
23582
  /** Constructor. */
 
23583
  CT_DeclSpec () {}
 
23584
};
 
23585
 
 
23586
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
23587
 *  Tree node representing a primitive declaration specifier. */
 
23588
 
 
23589
#line 23590 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23590
} // closed Puma
 
23591
class CCExprResolve;
 
23592
class CExprResolve;
 
23593
class WinIfExists;
 
23594
class WinImportHandler;
 
23595
class WinMacros;
 
23596
class WinAsm;
 
23597
class WinDeclSpecs;
 
23598
class WinMemberExplSpec;
 
23599
class WinTypeKeywords;
 
23600
class WinFriend;
 
23601
class ExtAC;
 
23602
class ExtACBuilderCoupling;
 
23603
class ExtACSyntaxCoupling;
 
23604
class ExtACTree;
 
23605
class ExtACKeywords;
 
23606
class ExtGnu;
 
23607
class PragmaOnceUnitState;
 
23608
class PragmaOnce;
 
23609
class CMatchSyntax;
 
23610
namespace Puma {
 
23611
 
 
23612
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23613
class CT_PrimDeclSpec : public CT_DeclSpec {
 
23614
#line 23615 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23615
  friend class ::CCExprResolve;
 
23616
  friend class ::CExprResolve;
 
23617
  friend class ::WinIfExists;
 
23618
  friend class ::WinImportHandler;
 
23619
  friend class ::WinMacros;
 
23620
  friend class ::WinAsm;
 
23621
  friend class ::WinDeclSpecs;
 
23622
  friend class ::WinMemberExplSpec;
 
23623
  friend class ::WinTypeKeywords;
 
23624
  friend class ::WinFriend;
 
23625
  friend class ::ExtAC;
 
23626
  friend class ::ExtACBuilderCoupling;
 
23627
  friend class ::ExtACSyntaxCoupling;
 
23628
  friend class ::ExtACTree;
 
23629
  friend class ::ExtACKeywords;
 
23630
  friend class ::ExtGnu;
 
23631
  friend class ::PragmaOnceUnitState;
 
23632
  friend class ::PragmaOnce;
 
23633
  friend class ::CMatchSyntax;
 
23634
 
 
23635
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23636
 
 
23637
public:
 
23638
  /** Declaration specifier types. */
 
23639
  enum Type { 
 
23640
    PDS_FRIEND,    /** friend */
 
23641
    PDS_TYPEDEF,   /** typedef */
 
23642
    PDS_AUTO,      /** auto */
 
23643
    PDS_REGISTER,  /** register */
 
23644
    PDS_STATIC,    /** static */
 
23645
    PDS_EXTERN,    /** extern */
 
23646
    PDS_MUTABLE,   /** mutable */
 
23647
    PDS_INLINE,    /** inline */
 
23648
    PDS_VIRTUAL,   /** virtual */
 
23649
    PDS_EXPLICIT,  /** explicit */
 
23650
    PDS_CONST,     /** const */
 
23651
    PDS_VOLATILE,  /** volatile */
 
23652
    PDS_RESTRICT,  /** restrict */
 
23653
    PDS_CHAR,      /** char */
 
23654
    PDS_WCHAR_T,   /** wchar_t */
 
23655
    PDS_BOOL,      /** bool */
 
23656
    PDS_SHORT,     /** short */
 
23657
    PDS_INT,       /** int */
 
23658
    PDS_LONG,      /** long */
 
23659
    PDS_SIGNED,    /** signed */
 
23660
    PDS_UNSIGNED,  /** unsigned */
 
23661
    PDS_FLOAT,     /** float */
 
23662
    PDS_DOUBLE,    /** double */
 
23663
    PDS_VOID,      /** void */
 
23664
    // AspectC++ specific type specifier
 
23665
    PDS_UNKNOWN_T, /** unknown_t */
 
23666
    // Win specific declaration specifiers
 
23667
    PDS_CDECL,     /** __cdecl */
 
23668
    PDS_STDCALL,   /** __stdcall */
 
23669
    PDS_FASTCALL,  /** __fastcall */
 
23670
    PDS_INT64,     /** __int64 */
 
23671
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
23672
    PDS_NUM        /** Number of declaration specifier types. */
 
23673
  };
 
23674
 
 
23675
private:
 
23676
  Type _type;
 
23677
  CTree *_token; // has to be a CT_Token
 
23678
 
 
23679
  void determine_type ();
 
23680
 
 
23681
public:
 
23682
  /** Constructor.
 
23683
   *  \param t The token containing the declaration specifier. */
 
23684
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
23685
  /** Constructor.
 
23686
   *  \param t The declaration specifier type. */
 
23687
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
23688
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
23689
  static const char *NodeId ();
 
23690
  /** Get the name of the node. Can be compared with NodeId(). */
 
23691
  const char *NodeName () const { return NodeId (); }
 
23692
  /** Get the number of sons. */
 
23693
  int Sons () const { return _token ? 1 : 0; }
 
23694
  /** Get the n-th son.
 
23695
   *  \param n The index of the son.
 
23696
   *  \return The n-th son or NULL. */
 
23697
  CTree *Son (int n) const 
 
23698
   { return (n == 0) ? _token : (CTree*)0; }
 
23699
  /** Get the textual representation of the declaration specifier.
 
23700
   *  \return The string representation or " ". */
 
23701
  const char *SpecText () const 
 
23702
   { return _token ? _token->token ()->text () : " "; }
 
23703
  /** Get the declaration specifier type. */
 
23704
  Type SpecType () const { return _type; }
 
23705
  /** Number of declaration specifier types. */
 
23706
  static const int NumTypes = PDS_NUM;
 
23707
  /** Replace a son.
 
23708
   *  \param old_son The son to replace.
 
23709
   *  \param new_son The new son. */
 
23710
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
23711
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
23712
    determine_type ();
 
23713
  }
 
23714
};
 
23715
 
 
23716
/** \class CT_NamedType CTree.h Puma/CTree.h
 
23717
 *  Tree node representing a named type, e.g. (int*)a. 
 
23718
 *  where int* is a type with a generated name. */
 
23719
 
 
23720
#line 23721 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23721
} // closed Puma
 
23722
class CCExprResolve;
 
23723
class CExprResolve;
 
23724
class WinIfExists;
 
23725
class WinImportHandler;
 
23726
class WinMacros;
 
23727
class WinAsm;
 
23728
class WinDeclSpecs;
 
23729
class WinMemberExplSpec;
 
23730
class WinTypeKeywords;
 
23731
class WinFriend;
 
23732
class ExtAC;
 
23733
class ExtACBuilderCoupling;
 
23734
class ExtACSyntaxCoupling;
 
23735
class ExtACTree;
 
23736
class ExtACKeywords;
 
23737
class ExtGnu;
 
23738
class PragmaOnceUnitState;
 
23739
class PragmaOnce;
 
23740
class CMatchSyntax;
 
23741
namespace Puma {
 
23742
 
 
23743
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23744
class CT_NamedType : public CT_DeclSpec, public CSemObject {
 
23745
#line 23746 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23746
  friend class ::CCExprResolve;
 
23747
  friend class ::CExprResolve;
 
23748
  friend class ::WinIfExists;
 
23749
  friend class ::WinImportHandler;
 
23750
  friend class ::WinMacros;
 
23751
  friend class ::WinAsm;
 
23752
  friend class ::WinDeclSpecs;
 
23753
  friend class ::WinMemberExplSpec;
 
23754
  friend class ::WinTypeKeywords;
 
23755
  friend class ::WinFriend;
 
23756
  friend class ::ExtAC;
 
23757
  friend class ::ExtACBuilderCoupling;
 
23758
  friend class ::ExtACSyntaxCoupling;
 
23759
  friend class ::ExtACTree;
 
23760
  friend class ::ExtACKeywords;
 
23761
  friend class ::ExtGnu;
 
23762
  friend class ::PragmaOnceUnitState;
 
23763
  friend class ::PragmaOnce;
 
23764
  friend class ::CMatchSyntax;
 
23765
 
 
23766
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23767
 
 
23768
  CTree *sons[2]; // declspecs, declarator
 
23769
 
 
23770
public:
 
23771
  /** Constructor.
 
23772
   *  \param dss The declaration specifier sequence of the type.
 
23773
   *  \param d The type declarator. */
 
23774
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
23775
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
23776
  static const char *NodeId ();
 
23777
  /** Get the name of the node. Can be compared with NodeId(). */
 
23778
  const char *NodeName () const { return NodeId (); }
 
23779
  /** Get the number of sons. */
 
23780
  int Sons () const { return CTree::Sons (sons, 2); }
 
23781
  /** Get the n-th son.
 
23782
   *  \param n The index of the son.
 
23783
   *  \return The n-th son or NULL. */
 
23784
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
23785
  /** Get the declarator. */
 
23786
  CTree *Declarator () const { return sons[1]; }
 
23787
  /** Replace a son.
 
23788
   *  \param old_son The son to replace.
 
23789
   *  \param new_son The new son. */
 
23790
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
23791
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
23792
  }
 
23793
  /** Get the semantic information object. */
 
23794
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
23795
};
 
23796
      
 
23797
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
23798
 *  Tree node representing a class specifier, e.g. class X. */
 
23799
 
 
23800
#line 23801 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23801
} // closed Puma
 
23802
class CCExprResolve;
 
23803
class CExprResolve;
 
23804
class WinIfExists;
 
23805
class WinImportHandler;
 
23806
class WinMacros;
 
23807
class WinAsm;
 
23808
class WinDeclSpecs;
 
23809
class WinMemberExplSpec;
 
23810
class WinTypeKeywords;
 
23811
class WinFriend;
 
23812
class ExtAC;
 
23813
class ExtACBuilderCoupling;
 
23814
class ExtACSyntaxCoupling;
 
23815
class ExtACTree;
 
23816
class ExtACKeywords;
 
23817
class ExtGnu;
 
23818
class PragmaOnceUnitState;
 
23819
class PragmaOnce;
 
23820
class CMatchSyntax;
 
23821
namespace Puma {
 
23822
 
 
23823
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23824
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
 
23825
#line 23826 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23826
  friend class ::CCExprResolve;
 
23827
  friend class ::CExprResolve;
 
23828
  friend class ::WinIfExists;
 
23829
  friend class ::WinImportHandler;
 
23830
  friend class ::WinMacros;
 
23831
  friend class ::WinAsm;
 
23832
  friend class ::WinDeclSpecs;
 
23833
  friend class ::WinMemberExplSpec;
 
23834
  friend class ::WinTypeKeywords;
 
23835
  friend class ::WinFriend;
 
23836
  friend class ::ExtAC;
 
23837
  friend class ::ExtACBuilderCoupling;
 
23838
  friend class ::ExtACSyntaxCoupling;
 
23839
  friend class ::ExtACTree;
 
23840
  friend class ::ExtACKeywords;
 
23841
  friend class ::ExtGnu;
 
23842
  friend class ::PragmaOnceUnitState;
 
23843
  friend class ::PragmaOnce;
 
23844
  friend class ::CMatchSyntax;
 
23845
 
 
23846
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23847
 
 
23848
  CTree *sons[2]; // key, name
 
23849
  
 
23850
public:
 
23851
  /** Constructor.
 
23852
   *  \param k The 'class' or 'struct' keyword.
 
23853
   *  \param n The class name. */
 
23854
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
23855
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
23856
  static const char *NodeId ();
 
23857
  /** Get the name of the node. Can be compared with NodeId(). */
 
23858
  const char *NodeName () const { return NodeId (); }
 
23859
  /** Get the number of sons. */
 
23860
  int Sons () const { return 2; }
 
23861
  /** Get the n-th son.
 
23862
   *  \param n The index of the son.
 
23863
   *  \return The n-th son or NULL. */
 
23864
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
23865
  /** Get the class name. */
 
23866
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
23867
  /** Get the semantic information object. */
 
23868
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
23869
  /** Replace a son.
 
23870
   *  \param old_son The son to replace.
 
23871
   *  \param new_son The new son. */
 
23872
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
23873
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
23874
  }
 
23875
};
 
23876
 
 
23877
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
23878
 *  Tree node representing a union specifier, e.g. union X. */
 
23879
 
 
23880
#line 23881 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23881
} // closed Puma
 
23882
class CCExprResolve;
 
23883
class CExprResolve;
 
23884
class WinIfExists;
 
23885
class WinImportHandler;
 
23886
class WinMacros;
 
23887
class WinAsm;
 
23888
class WinDeclSpecs;
 
23889
class WinMemberExplSpec;
 
23890
class WinTypeKeywords;
 
23891
class WinFriend;
 
23892
class ExtAC;
 
23893
class ExtACBuilderCoupling;
 
23894
class ExtACSyntaxCoupling;
 
23895
class ExtACTree;
 
23896
class ExtACKeywords;
 
23897
class ExtGnu;
 
23898
class PragmaOnceUnitState;
 
23899
class PragmaOnce;
 
23900
class CMatchSyntax;
 
23901
namespace Puma {
 
23902
 
 
23903
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23904
class CT_UnionSpec : public CT_ClassSpec {
 
23905
#line 23906 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23906
  friend class ::CCExprResolve;
 
23907
  friend class ::CExprResolve;
 
23908
  friend class ::WinIfExists;
 
23909
  friend class ::WinImportHandler;
 
23910
  friend class ::WinMacros;
 
23911
  friend class ::WinAsm;
 
23912
  friend class ::WinDeclSpecs;
 
23913
  friend class ::WinMemberExplSpec;
 
23914
  friend class ::WinTypeKeywords;
 
23915
  friend class ::WinFriend;
 
23916
  friend class ::ExtAC;
 
23917
  friend class ::ExtACBuilderCoupling;
 
23918
  friend class ::ExtACSyntaxCoupling;
 
23919
  friend class ::ExtACTree;
 
23920
  friend class ::ExtACKeywords;
 
23921
  friend class ::ExtGnu;
 
23922
  friend class ::PragmaOnceUnitState;
 
23923
  friend class ::PragmaOnce;
 
23924
  friend class ::CMatchSyntax;
 
23925
 
 
23926
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23927
 
 
23928
public:
 
23929
  /** Constructor.
 
23930
   *  \param k The 'union' keyword.
 
23931
   *  \param n The name of the union. */
 
23932
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
23933
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
23934
  static const char *NodeId ();
 
23935
  /** Get the name of the node. Can be compared with NodeId(). */
 
23936
  const char *NodeName () const { return NodeId (); }
 
23937
};
 
23938
 
 
23939
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
23940
 *  Tree node representing an enumeration specifier, e.g. enum X. */
 
23941
 
 
23942
#line 23943 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23943
} // closed Puma
 
23944
class CCExprResolve;
 
23945
class CExprResolve;
 
23946
class WinIfExists;
 
23947
class WinImportHandler;
 
23948
class WinMacros;
 
23949
class WinAsm;
 
23950
class WinDeclSpecs;
 
23951
class WinMemberExplSpec;
 
23952
class WinTypeKeywords;
 
23953
class WinFriend;
 
23954
class ExtAC;
 
23955
class ExtACBuilderCoupling;
 
23956
class ExtACSyntaxCoupling;
 
23957
class ExtACTree;
 
23958
class ExtACKeywords;
 
23959
class ExtGnu;
 
23960
class PragmaOnceUnitState;
 
23961
class PragmaOnce;
 
23962
class CMatchSyntax;
 
23963
namespace Puma {
 
23964
 
 
23965
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23966
class CT_EnumSpec : public CT_ClassSpec {
 
23967
#line 23968 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
23968
  friend class ::CCExprResolve;
 
23969
  friend class ::CExprResolve;
 
23970
  friend class ::WinIfExists;
 
23971
  friend class ::WinImportHandler;
 
23972
  friend class ::WinMacros;
 
23973
  friend class ::WinAsm;
 
23974
  friend class ::WinDeclSpecs;
 
23975
  friend class ::WinMemberExplSpec;
 
23976
  friend class ::WinTypeKeywords;
 
23977
  friend class ::WinFriend;
 
23978
  friend class ::ExtAC;
 
23979
  friend class ::ExtACBuilderCoupling;
 
23980
  friend class ::ExtACSyntaxCoupling;
 
23981
  friend class ::ExtACTree;
 
23982
  friend class ::ExtACKeywords;
 
23983
  friend class ::ExtGnu;
 
23984
  friend class ::PragmaOnceUnitState;
 
23985
  friend class ::PragmaOnce;
 
23986
  friend class ::CMatchSyntax;
 
23987
 
 
23988
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23989
 
 
23990
public:
 
23991
  /** Constructor.
 
23992
   *  \param k The 'enum' keyword. 
 
23993
   *  \param n The name of the enumeration. */
 
23994
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
23995
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
23996
  static const char *NodeId ();
 
23997
  /** Get the name of the node. Can be compared with NodeId(). */
 
23998
  const char *NodeName () const { return NodeId (); }
 
23999
};
 
24000
 
 
24001
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
24002
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
 
24003
 
 
24004
#line 24005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24005
} // closed Puma
 
24006
class CCExprResolve;
 
24007
class CExprResolve;
 
24008
class WinIfExists;
 
24009
class WinImportHandler;
 
24010
class WinMacros;
 
24011
class WinAsm;
 
24012
class WinDeclSpecs;
 
24013
class WinMemberExplSpec;
 
24014
class WinTypeKeywords;
 
24015
class WinFriend;
 
24016
class ExtAC;
 
24017
class ExtACBuilderCoupling;
 
24018
class ExtACSyntaxCoupling;
 
24019
class ExtACTree;
 
24020
class ExtACKeywords;
 
24021
class ExtGnu;
 
24022
class PragmaOnceUnitState;
 
24023
class PragmaOnce;
 
24024
class CMatchSyntax;
 
24025
namespace Puma {
 
24026
 
 
24027
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24028
class CT_ExceptionSpec : public CT_DeclSpec {
 
24029
#line 24030 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24030
  friend class ::CCExprResolve;
 
24031
  friend class ::CExprResolve;
 
24032
  friend class ::WinIfExists;
 
24033
  friend class ::WinImportHandler;
 
24034
  friend class ::WinMacros;
 
24035
  friend class ::WinAsm;
 
24036
  friend class ::WinDeclSpecs;
 
24037
  friend class ::WinMemberExplSpec;
 
24038
  friend class ::WinTypeKeywords;
 
24039
  friend class ::WinFriend;
 
24040
  friend class ::ExtAC;
 
24041
  friend class ::ExtACBuilderCoupling;
 
24042
  friend class ::ExtACSyntaxCoupling;
 
24043
  friend class ::ExtACTree;
 
24044
  friend class ::ExtACKeywords;
 
24045
  friend class ::ExtGnu;
 
24046
  friend class ::PragmaOnceUnitState;
 
24047
  friend class ::PragmaOnce;
 
24048
  friend class ::CMatchSyntax;
 
24049
 
 
24050
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24051
 
 
24052
  CTree *sons[2]; // throw, type_id_list
 
24053
  
 
24054
public:
 
24055
  /** Constructor.
 
24056
   *  \param k The 'throw' keyword.
 
24057
   *  \param l The type list for the exception type to throw. */
 
24058
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
24059
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24060
  static const char *NodeId ();
 
24061
  /** Get the name of the node. Can be compared with NodeId(). */
 
24062
  const char *NodeName () const { return NodeId (); }
 
24063
  /** Get the number of sons. */
 
24064
  int Sons () const { return 2; }
 
24065
  /** Get the n-th son.
 
24066
   *  \param n The index of the son.
 
24067
   *  \return The n-th son or NULL. */
 
24068
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
24069
  /** Get the exception type list. */
 
24070
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
24071
  /** Replace a son.
 
24072
   *  \param old_son The son to replace.
 
24073
   *  \param new_son The new son. */
 
24074
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
24075
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
24076
  }
 
24077
};
 
24078
 
 
24079
/*****************************************************************************/
 
24080
/*                                                                           */
 
24081
/*                              Declarations                                 */
 
24082
/*                                                                           */
 
24083
/*****************************************************************************/
 
24084
 
 
24085
/** \class CT_Decl CTree.h Puma/CTree.h
 
24086
 *  Base class for all tree nodes representing declarations. */
 
24087
 
 
24088
#line 24089 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24089
} // closed Puma
 
24090
class CCExprResolve;
 
24091
class CExprResolve;
 
24092
class WinIfExists;
 
24093
class WinImportHandler;
 
24094
class WinMacros;
 
24095
class WinAsm;
 
24096
class WinDeclSpecs;
 
24097
class WinMemberExplSpec;
 
24098
class WinTypeKeywords;
 
24099
class WinFriend;
 
24100
class ExtAC;
 
24101
class ExtACBuilderCoupling;
 
24102
class ExtACSyntaxCoupling;
 
24103
class ExtACTree;
 
24104
class ExtACKeywords;
 
24105
class ExtGnu;
 
24106
class PragmaOnceUnitState;
 
24107
class PragmaOnce;
 
24108
class CMatchSyntax;
 
24109
namespace Puma {
 
24110
 
 
24111
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24112
class CT_Decl : public CTree {
 
24113
#line 24114 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24114
  friend class ::CCExprResolve;
 
24115
  friend class ::CExprResolve;
 
24116
  friend class ::WinIfExists;
 
24117
  friend class ::WinImportHandler;
 
24118
  friend class ::WinMacros;
 
24119
  friend class ::WinAsm;
 
24120
  friend class ::WinDeclSpecs;
 
24121
  friend class ::WinMemberExplSpec;
 
24122
  friend class ::WinTypeKeywords;
 
24123
  friend class ::WinFriend;
 
24124
  friend class ::ExtAC;
 
24125
  friend class ::ExtACBuilderCoupling;
 
24126
  friend class ::ExtACSyntaxCoupling;
 
24127
  friend class ::ExtACTree;
 
24128
  friend class ::ExtACKeywords;
 
24129
  friend class ::ExtGnu;
 
24130
  friend class ::PragmaOnceUnitState;
 
24131
  friend class ::PragmaOnce;
 
24132
  friend class ::CMatchSyntax;
 
24133
 
 
24134
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24135
 
 
24136
  CT_LinkageSpec *_linkage;
 
24137
  
 
24138
protected:
 
24139
  /** Constructor. */
 
24140
  CT_Decl () : _linkage (0) {}
 
24141
  
 
24142
public:
 
24143
  /** Set the linkage of the declared entity.
 
24144
   *  \param l The linkage specifiers. */
 
24145
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
24146
  /** Get the linkage specifiers. */
 
24147
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
24148
  /** Get this. */
 
24149
  virtual CT_Decl *IsDeclaration () { return this; }
 
24150
};
 
24151
 
 
24152
/** \class CT_Program CTree.h Puma/CTree.h
 
24153
 *  Root node of C/C++ syntax tree. */
 
24154
 
 
24155
#line 24156 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24156
} // closed Puma
 
24157
class CCExprResolve;
 
24158
class CExprResolve;
 
24159
class WinIfExists;
 
24160
class WinImportHandler;
 
24161
class WinMacros;
 
24162
class WinAsm;
 
24163
class WinDeclSpecs;
 
24164
class WinMemberExplSpec;
 
24165
class WinTypeKeywords;
 
24166
class WinFriend;
 
24167
class ExtAC;
 
24168
class ExtACBuilderCoupling;
 
24169
class ExtACSyntaxCoupling;
 
24170
class ExtACTree;
 
24171
class ExtACKeywords;
 
24172
class ExtGnu;
 
24173
class PragmaOnceUnitState;
 
24174
class PragmaOnce;
 
24175
class CMatchSyntax;
 
24176
namespace Puma {
 
24177
 
 
24178
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24179
class CT_Program : public CT_DeclList, public CSemScope {
 
24180
#line 24181 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24181
  friend class ::CCExprResolve;
 
24182
  friend class ::CExprResolve;
 
24183
  friend class ::WinIfExists;
 
24184
  friend class ::WinImportHandler;
 
24185
  friend class ::WinMacros;
 
24186
  friend class ::WinAsm;
 
24187
  friend class ::WinDeclSpecs;
 
24188
  friend class ::WinMemberExplSpec;
 
24189
  friend class ::WinTypeKeywords;
 
24190
  friend class ::WinFriend;
 
24191
  friend class ::ExtAC;
 
24192
  friend class ::ExtACBuilderCoupling;
 
24193
  friend class ::ExtACSyntaxCoupling;
 
24194
  friend class ::ExtACTree;
 
24195
  friend class ::ExtACKeywords;
 
24196
  friend class ::ExtGnu;
 
24197
  friend class ::PragmaOnceUnitState;
 
24198
  friend class ::PragmaOnce;
 
24199
  friend class ::CMatchSyntax;
 
24200
 
 
24201
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24202
 
 
24203
public:
 
24204
  /** Constructor.
 
24205
   *  \param size The initial number of declarations in the program.
 
24206
   *  \param incr The initial increment count. */
 
24207
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
24208
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24209
  static const char *NodeId ();
 
24210
  /** Get the name of the node. Can be compared with NodeId(). */
 
24211
  const char *NodeName () const { return NodeId (); }
 
24212
  /** Get the semantic scope object. */
 
24213
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
24214
};
 
24215
   
 
24216
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
24217
 *  Tree node representing an object declaration, e.g. int *i. */
 
24218
 
 
24219
#line 24220 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24220
} // closed Puma
 
24221
class CCExprResolve;
 
24222
class CExprResolve;
 
24223
class WinIfExists;
 
24224
class WinImportHandler;
 
24225
class WinMacros;
 
24226
class WinAsm;
 
24227
class WinDeclSpecs;
 
24228
class WinMemberExplSpec;
 
24229
class WinTypeKeywords;
 
24230
class WinFriend;
 
24231
class ExtAC;
 
24232
class ExtACBuilderCoupling;
 
24233
class ExtACSyntaxCoupling;
 
24234
class ExtACTree;
 
24235
class ExtACKeywords;
 
24236
class ExtGnu;
 
24237
class PragmaOnceUnitState;
 
24238
class PragmaOnce;
 
24239
class CMatchSyntax;
 
24240
namespace Puma {
 
24241
 
 
24242
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24243
class CT_ObjDecl : public CT_Decl {
 
24244
#line 24245 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24245
  friend class ::CCExprResolve;
 
24246
  friend class ::CExprResolve;
 
24247
  friend class ::WinIfExists;
 
24248
  friend class ::WinImportHandler;
 
24249
  friend class ::WinMacros;
 
24250
  friend class ::WinAsm;
 
24251
  friend class ::WinDeclSpecs;
 
24252
  friend class ::WinMemberExplSpec;
 
24253
  friend class ::WinTypeKeywords;
 
24254
  friend class ::WinFriend;
 
24255
  friend class ::ExtAC;
 
24256
  friend class ::ExtACBuilderCoupling;
 
24257
  friend class ::ExtACSyntaxCoupling;
 
24258
  friend class ::ExtACTree;
 
24259
  friend class ::ExtACKeywords;
 
24260
  friend class ::ExtGnu;
 
24261
  friend class ::PragmaOnceUnitState;
 
24262
  friend class ::PragmaOnce;
 
24263
  friend class ::CMatchSyntax;
 
24264
 
 
24265
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24266
 
 
24267
  CTree *sons[3]; // declspecs, declarators, colon
 
24268
 
 
24269
public:
 
24270
  /** Constructor.
 
24271
   *  \param dsl The declaration specifier sequence.
 
24272
   *  \param dl The declarator list.
 
24273
   *  \param c Optional colon. */
 
24274
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
 
24275
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
 
24276
  }
 
24277
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24278
  static const char *NodeId ();
 
24279
  /** Get the name of the node. Can be compared with NodeId(). */
 
24280
  const char *NodeName () const { return NodeId (); }
 
24281
  /** Get the number of sons. */
 
24282
  int Sons () const { return 3; }
 
24283
  /** Get the n-th son.
 
24284
   *  \param n The index of the son.
 
24285
   *  \return The n-th son or NULL. */
 
24286
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
24287
  /** Get the declaration specifier sequence. */
 
24288
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
24289
  /** Get the declarator list. */
 
24290
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
24291
  /** Replace a son.
 
24292
   *  \param old_son The son to replace.
 
24293
   *  \param new_son The new son. */
 
24294
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
24295
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
24296
  }
 
24297
};
 
24298
 
 
24299
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
24300
 *  Tree node representing a template declaration. */
 
24301
 
 
24302
#line 24303 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24303
} // closed Puma
 
24304
class CCExprResolve;
 
24305
class CExprResolve;
 
24306
class WinIfExists;
 
24307
class WinImportHandler;
 
24308
class WinMacros;
 
24309
class WinAsm;
 
24310
class WinDeclSpecs;
 
24311
class WinMemberExplSpec;
 
24312
class WinTypeKeywords;
 
24313
class WinFriend;
 
24314
class ExtAC;
 
24315
class ExtACBuilderCoupling;
 
24316
class ExtACSyntaxCoupling;
 
24317
class ExtACTree;
 
24318
class ExtACKeywords;
 
24319
class ExtGnu;
 
24320
class PragmaOnceUnitState;
 
24321
class PragmaOnce;
 
24322
class CMatchSyntax;
 
24323
namespace Puma {
 
24324
 
 
24325
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24326
class CT_TemplateDecl : public CT_Decl, public CSemScope {
 
24327
#line 24328 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24328
  friend class ::CCExprResolve;
 
24329
  friend class ::CExprResolve;
 
24330
  friend class ::WinIfExists;
 
24331
  friend class ::WinImportHandler;
 
24332
  friend class ::WinMacros;
 
24333
  friend class ::WinAsm;
 
24334
  friend class ::WinDeclSpecs;
 
24335
  friend class ::WinMemberExplSpec;
 
24336
  friend class ::WinTypeKeywords;
 
24337
  friend class ::WinFriend;
 
24338
  friend class ::ExtAC;
 
24339
  friend class ::ExtACBuilderCoupling;
 
24340
  friend class ::ExtACSyntaxCoupling;
 
24341
  friend class ::ExtACTree;
 
24342
  friend class ::ExtACKeywords;
 
24343
  friend class ::ExtGnu;
 
24344
  friend class ::PragmaOnceUnitState;
 
24345
  friend class ::PragmaOnce;
 
24346
  friend class ::CMatchSyntax;
 
24347
 
 
24348
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24349
 
 
24350
  CTree *sons[3]; // export, param_list, decl
 
24351
 
 
24352
public:
 
24353
  /** Constructor.
 
24354
   *  \param e Optional 'export' keyword. 
 
24355
   *  \param p The template parameter list.
 
24356
   *  \param d The class or function declaration. */
 
24357
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
 
24358
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
 
24359
  }
 
24360
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24361
  static const char *NodeId ();
 
24362
  /** Get the name of the node. Can be compared with NodeId(). */
 
24363
  const char *NodeName () const { return NodeId (); }
 
24364
  /** Get the number of sons. */
 
24365
  int Sons () const { return CTree::Sons (sons, 3); }
 
24366
  /** Get the n-th son.
 
24367
   *  \param n The index of the son.
 
24368
   *  \return The n-th son or NULL. */
 
24369
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
24370
  /** Replace a son.
 
24371
   *  \param old_son The son to replace.
 
24372
   *  \param new_son The new son. */
 
24373
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
24374
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
 
24375
  }
 
24376
  /** Get the 'export' keyword. */
 
24377
  CTree *Export () const { return sons[0]; }
 
24378
  /** Get the template parameter list. */
 
24379
  CT_TemplateParamList *Parameters () const { 
 
24380
    return (CT_TemplateParamList*)sons[1]; 
 
24381
  }
 
24382
  /** Get the class or function declaration. */
 
24383
  CTree *Declaration () const { return sons[2]; }
 
24384
  /** Get the semantic scope object. */
 
24385
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
24386
};
 
24387
 
 
24388
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
24389
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
 
24390
 
 
24391
#line 24392 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24392
} // closed Puma
 
24393
class CCExprResolve;
 
24394
class CExprResolve;
 
24395
class WinIfExists;
 
24396
class WinImportHandler;
 
24397
class WinMacros;
 
24398
class WinAsm;
 
24399
class WinDeclSpecs;
 
24400
class WinMemberExplSpec;
 
24401
class WinTypeKeywords;
 
24402
class WinFriend;
 
24403
class ExtAC;
 
24404
class ExtACBuilderCoupling;
 
24405
class ExtACSyntaxCoupling;
 
24406
class ExtACTree;
 
24407
class ExtACKeywords;
 
24408
class ExtGnu;
 
24409
class PragmaOnceUnitState;
 
24410
class PragmaOnce;
 
24411
class CMatchSyntax;
 
24412
namespace Puma {
 
24413
 
 
24414
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24415
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
 
24416
#line 24417 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24417
  friend class ::CCExprResolve;
 
24418
  friend class ::CExprResolve;
 
24419
  friend class ::WinIfExists;
 
24420
  friend class ::WinImportHandler;
 
24421
  friend class ::WinMacros;
 
24422
  friend class ::WinAsm;
 
24423
  friend class ::WinDeclSpecs;
 
24424
  friend class ::WinMemberExplSpec;
 
24425
  friend class ::WinTypeKeywords;
 
24426
  friend class ::WinFriend;
 
24427
  friend class ::ExtAC;
 
24428
  friend class ::ExtACBuilderCoupling;
 
24429
  friend class ::ExtACSyntaxCoupling;
 
24430
  friend class ::ExtACTree;
 
24431
  friend class ::ExtACKeywords;
 
24432
  friend class ::ExtGnu;
 
24433
  friend class ::PragmaOnceUnitState;
 
24434
  friend class ::PragmaOnce;
 
24435
  friend class ::CMatchSyntax;
 
24436
 
 
24437
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24438
 
 
24439
protected:
 
24440
  /** Constructor. */
 
24441
  CT_TemplateParamDecl () {}
 
24442
  
 
24443
public:
 
24444
  /** Get the template default argument. */
 
24445
  virtual CT_ExprList *DefaultArgument () const = 0;
 
24446
  /** Get the semantic information object. */
 
24447
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
24448
};
 
24449
 
 
24450
 
 
24451
#line 24452 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24452
} // closed Puma
 
24453
class CCExprResolve;
 
24454
class CExprResolve;
 
24455
class WinIfExists;
 
24456
class WinImportHandler;
 
24457
class WinMacros;
 
24458
class WinAsm;
 
24459
class WinDeclSpecs;
 
24460
class WinMemberExplSpec;
 
24461
class WinTypeKeywords;
 
24462
class WinFriend;
 
24463
class ExtAC;
 
24464
class ExtACBuilderCoupling;
 
24465
class ExtACSyntaxCoupling;
 
24466
class ExtACTree;
 
24467
class ExtACKeywords;
 
24468
class ExtGnu;
 
24469
class PragmaOnceUnitState;
 
24470
class PragmaOnce;
 
24471
class CMatchSyntax;
 
24472
namespace Puma {
 
24473
 
 
24474
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24475
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
 
24476
#line 24477 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24477
  friend class ::CCExprResolve;
 
24478
  friend class ::CExprResolve;
 
24479
  friend class ::WinIfExists;
 
24480
  friend class ::WinImportHandler;
 
24481
  friend class ::WinMacros;
 
24482
  friend class ::WinAsm;
 
24483
  friend class ::WinDeclSpecs;
 
24484
  friend class ::WinMemberExplSpec;
 
24485
  friend class ::WinTypeKeywords;
 
24486
  friend class ::WinFriend;
 
24487
  friend class ::ExtAC;
 
24488
  friend class ::ExtACBuilderCoupling;
 
24489
  friend class ::ExtACSyntaxCoupling;
 
24490
  friend class ::ExtACTree;
 
24491
  friend class ::ExtACKeywords;
 
24492
  friend class ::ExtGnu;
 
24493
  friend class ::PragmaOnceUnitState;
 
24494
  friend class ::PragmaOnce;
 
24495
  friend class ::CMatchSyntax;
 
24496
 
 
24497
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24498
 
 
24499
  CTree *sons[3]; // declspecs, declarator, init
 
24500
 
 
24501
public:
 
24502
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
 
24503
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
 
24504
  }
 
24505
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24506
  static const char *NodeId ();
 
24507
  /** Get the name of the node. Can be compared with NodeId(). */
 
24508
  const char *NodeName () const { return NodeId (); }
 
24509
  /** Get the number of sons. */
 
24510
  int Sons () const { return CTree::Sons (sons, 3); }
 
24511
  /** Get the n-th son.
 
24512
   *  \param n The index of the son.
 
24513
   *  \return The n-th son or NULL. */
 
24514
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
24515
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
24516
  CTree *Declarator () const { return sons[1]; }
 
24517
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
 
24518
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
24519
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
24520
  /** Replace a son.
 
24521
   *  \param old_son The son to replace.
 
24522
   *  \param new_son The new son. */
 
24523
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
24524
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
24525
  }
 
24526
};
 
24527
 
 
24528
 
 
24529
#line 24530 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24530
} // closed Puma
 
24531
class CCExprResolve;
 
24532
class CExprResolve;
 
24533
class WinIfExists;
 
24534
class WinImportHandler;
 
24535
class WinMacros;
 
24536
class WinAsm;
 
24537
class WinDeclSpecs;
 
24538
class WinMemberExplSpec;
 
24539
class WinTypeKeywords;
 
24540
class WinFriend;
 
24541
class ExtAC;
 
24542
class ExtACBuilderCoupling;
 
24543
class ExtACSyntaxCoupling;
 
24544
class ExtACTree;
 
24545
class ExtACKeywords;
 
24546
class ExtGnu;
 
24547
class PragmaOnceUnitState;
 
24548
class PragmaOnce;
 
24549
class CMatchSyntax;
 
24550
namespace Puma {
 
24551
 
 
24552
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24553
class CT_TypeParamDecl : public CT_TemplateParamDecl {
 
24554
#line 24555 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24555
  friend class ::CCExprResolve;
 
24556
  friend class ::CExprResolve;
 
24557
  friend class ::WinIfExists;
 
24558
  friend class ::WinImportHandler;
 
24559
  friend class ::WinMacros;
 
24560
  friend class ::WinAsm;
 
24561
  friend class ::WinDeclSpecs;
 
24562
  friend class ::WinMemberExplSpec;
 
24563
  friend class ::WinTypeKeywords;
 
24564
  friend class ::WinFriend;
 
24565
  friend class ::ExtAC;
 
24566
  friend class ::ExtACBuilderCoupling;
 
24567
  friend class ::ExtACSyntaxCoupling;
 
24568
  friend class ::ExtACTree;
 
24569
  friend class ::ExtACKeywords;
 
24570
  friend class ::ExtGnu;
 
24571
  friend class ::PragmaOnceUnitState;
 
24572
  friend class ::PragmaOnce;
 
24573
  friend class ::CMatchSyntax;
 
24574
 
 
24575
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24576
 
 
24577
  CTree *sons[4]; // params, key, id, init
 
24578
 
 
24579
public:
 
24580
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
 
24581
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
24582
    AddSon (sons[2], id); AddSon (sons[3], i);
 
24583
  }
 
24584
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24585
  static const char *NodeId ();
 
24586
  /** Get the name of the node. Can be compared with NodeId(). */
 
24587
  const char *NodeName () const { return NodeId (); }
 
24588
  /** Get the number of sons. */
 
24589
  int Sons () const { return CTree::Sons (sons, 4); }
 
24590
  /** Get the n-th son.
 
24591
   *  \param n The index of the son.
 
24592
   *  \return The n-th son or NULL. */
 
24593
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
24594
  CT_TemplateParamList *Parameters () const { 
 
24595
    return (CT_TemplateParamList*)sons[0]; 
 
24596
  }
 
24597
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
24598
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
 
24599
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
24600
  /** Replace a son.
 
24601
   *  \param old_son The son to replace.
 
24602
   *  \param new_son The new son. */
 
24603
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
24604
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
24605
  }
 
24606
};
 
24607
 
 
24608
 
 
24609
#line 24610 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24610
} // closed Puma
 
24611
class CCExprResolve;
 
24612
class CExprResolve;
 
24613
class WinIfExists;
 
24614
class WinImportHandler;
 
24615
class WinMacros;
 
24616
class WinAsm;
 
24617
class WinDeclSpecs;
 
24618
class WinMemberExplSpec;
 
24619
class WinTypeKeywords;
 
24620
class WinFriend;
 
24621
class ExtAC;
 
24622
class ExtACBuilderCoupling;
 
24623
class ExtACSyntaxCoupling;
 
24624
class ExtACTree;
 
24625
class ExtACKeywords;
 
24626
class ExtGnu;
 
24627
class PragmaOnceUnitState;
 
24628
class PragmaOnce;
 
24629
class CMatchSyntax;
 
24630
namespace Puma {
 
24631
 
 
24632
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24633
class CT_EnumDef : public CT_Decl, public CSemObject {
 
24634
#line 24635 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24635
  friend class ::CCExprResolve;
 
24636
  friend class ::CExprResolve;
 
24637
  friend class ::WinIfExists;
 
24638
  friend class ::WinImportHandler;
 
24639
  friend class ::WinMacros;
 
24640
  friend class ::WinAsm;
 
24641
  friend class ::WinDeclSpecs;
 
24642
  friend class ::WinMemberExplSpec;
 
24643
  friend class ::WinTypeKeywords;
 
24644
  friend class ::WinFriend;
 
24645
  friend class ::ExtAC;
 
24646
  friend class ::ExtACBuilderCoupling;
 
24647
  friend class ::ExtACSyntaxCoupling;
 
24648
  friend class ::ExtACTree;
 
24649
  friend class ::ExtACKeywords;
 
24650
  friend class ::ExtGnu;
 
24651
  friend class ::PragmaOnceUnitState;
 
24652
  friend class ::PragmaOnce;
 
24653
  friend class ::CMatchSyntax;
 
24654
 
 
24655
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24656
 
 
24657
  CTree *sons[3]; // key, name, enumerators
 
24658
 
 
24659
public:
 
24660
  CT_EnumDef (CTree *k, CTree *n) {
 
24661
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
 
24662
  }
 
24663
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24664
  static const char *NodeId ();
 
24665
  /** Get the name of the node. Can be compared with NodeId(). */
 
24666
  const char *NodeName () const { return NodeId (); }
 
24667
  /** Get the number of sons. */
 
24668
  int Sons () const { return CTree::Sons (sons, 3); }
 
24669
  /** Get the n-th son.
 
24670
   *  \param n The index of the son.
 
24671
   *  \return The n-th son or NULL. */
 
24672
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
24673
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
24674
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
 
24675
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
24676
  /** Replace a son.
 
24677
   *  \param old_son The son to replace.
 
24678
   *  \param new_son The new son. */
 
24679
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
24680
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
24681
  }
 
24682
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
24683
};
 
24684
 
 
24685
 
 
24686
#line 24687 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24687
} // closed Puma
 
24688
class CCExprResolve;
 
24689
class CExprResolve;
 
24690
class WinIfExists;
 
24691
class WinImportHandler;
 
24692
class WinMacros;
 
24693
class WinAsm;
 
24694
class WinDeclSpecs;
 
24695
class WinMemberExplSpec;
 
24696
class WinTypeKeywords;
 
24697
class WinFriend;
 
24698
class ExtAC;
 
24699
class ExtACBuilderCoupling;
 
24700
class ExtACSyntaxCoupling;
 
24701
class ExtACTree;
 
24702
class ExtACKeywords;
 
24703
class ExtGnu;
 
24704
class PragmaOnceUnitState;
 
24705
class PragmaOnce;
 
24706
class CMatchSyntax;
 
24707
namespace Puma {
 
24708
 
 
24709
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24710
class CT_Enumerator : public CT_Decl, public CSemObject {
 
24711
#line 24712 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24712
  friend class ::CCExprResolve;
 
24713
  friend class ::CExprResolve;
 
24714
  friend class ::WinIfExists;
 
24715
  friend class ::WinImportHandler;
 
24716
  friend class ::WinMacros;
 
24717
  friend class ::WinAsm;
 
24718
  friend class ::WinDeclSpecs;
 
24719
  friend class ::WinMemberExplSpec;
 
24720
  friend class ::WinTypeKeywords;
 
24721
  friend class ::WinFriend;
 
24722
  friend class ::ExtAC;
 
24723
  friend class ::ExtACBuilderCoupling;
 
24724
  friend class ::ExtACSyntaxCoupling;
 
24725
  friend class ::ExtACTree;
 
24726
  friend class ::ExtACKeywords;
 
24727
  friend class ::ExtGnu;
 
24728
  friend class ::PragmaOnceUnitState;
 
24729
  friend class ::PragmaOnce;
 
24730
  friend class ::CMatchSyntax;
 
24731
 
 
24732
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24733
 
 
24734
  CTree *sons[2]; // name, init
 
24735
 
 
24736
public:
 
24737
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
24738
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24739
  static const char *NodeId ();
 
24740
  /** Get the name of the node. Can be compared with NodeId(). */
 
24741
  const char *NodeName () const { return NodeId (); }
 
24742
  /** Get the number of sons. */
 
24743
  int Sons () const { return CTree::Sons (sons, 2); }
 
24744
  /** Get the n-th son.
 
24745
   *  \param n The index of the son.
 
24746
   *  \return The n-th son or NULL. */
 
24747
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
24748
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
24749
  void Initializer (CTree *i) { AddSon (sons[1], i); }
 
24750
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
24751
  /** Replace a son.
 
24752
   *  \param old_son The son to replace.
 
24753
   *  \param new_son The new son. */
 
24754
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
24755
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
 
24756
  }
 
24757
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
24758
};
 
24759
 
 
24760
 
 
24761
#line 24762 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24762
} // closed Puma
 
24763
class CCExprResolve;
 
24764
class CExprResolve;
 
24765
class WinIfExists;
 
24766
class WinImportHandler;
 
24767
class WinMacros;
 
24768
class WinAsm;
 
24769
class WinDeclSpecs;
 
24770
class WinMemberExplSpec;
 
24771
class WinTypeKeywords;
 
24772
class WinFriend;
 
24773
class ExtAC;
 
24774
class ExtACBuilderCoupling;
 
24775
class ExtACSyntaxCoupling;
 
24776
class ExtACTree;
 
24777
class ExtACKeywords;
 
24778
class ExtGnu;
 
24779
class PragmaOnceUnitState;
 
24780
class PragmaOnce;
 
24781
class CMatchSyntax;
 
24782
namespace Puma {
 
24783
 
 
24784
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24785
class CT_FctDef : public CT_Decl, public CSemObject {
 
24786
#line 24787 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24787
  friend class ::CCExprResolve;
 
24788
  friend class ::CExprResolve;
 
24789
  friend class ::WinIfExists;
 
24790
  friend class ::WinImportHandler;
 
24791
  friend class ::WinMacros;
 
24792
  friend class ::WinAsm;
 
24793
  friend class ::WinDeclSpecs;
 
24794
  friend class ::WinMemberExplSpec;
 
24795
  friend class ::WinTypeKeywords;
 
24796
  friend class ::WinFriend;
 
24797
  friend class ::ExtAC;
 
24798
  friend class ::ExtACBuilderCoupling;
 
24799
  friend class ::ExtACSyntaxCoupling;
 
24800
  friend class ::ExtACTree;
 
24801
  friend class ::ExtACKeywords;
 
24802
  friend class ::ExtGnu;
 
24803
  friend class ::PragmaOnceUnitState;
 
24804
  friend class ::PragmaOnce;
 
24805
  friend class ::CMatchSyntax;
 
24806
 
 
24807
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24808
 
 
24809
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
 
24810
 
 
24811
public:
 
24812
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
 
24813
             CTree *b, CTree *hs) {
 
24814
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
24815
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
24816
    AddSon (sons[6], hs); 
 
24817
  }
 
24818
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24819
  static const char *NodeId ();
 
24820
  /** Get the name of the node. Can be compared with NodeId(). */
 
24821
  const char *NodeName () const { return NodeId (); }
 
24822
  /** Get the number of sons. */
 
24823
  int Sons () const { return CTree::Sons (sons, 7); }
 
24824
  /** Get the n-th son.
 
24825
   *  \param n The index of the son.
 
24826
   *  \return The n-th son or NULL. */
 
24827
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
24828
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
24829
  CTree *Declarator () const { return sons[1]; }
 
24830
  CT_Token *TryKey () const { return (CT_Token*)sons[2]; }
 
24831
  CTree *CtorInit () const { return sons[3]; }
 
24832
  CT_ArgDeclSeq *ArgDeclSeq () const { return (CT_ArgDeclSeq*)sons[4]; }
 
24833
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
 
24834
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
 
24835
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
24836
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
24837
  void Body (CTree *b) { AddSon (sons[5], b); }
 
24838
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
 
24839
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
24840
    AddSon (sons[5], b); AddSon (sons[6], h);
 
24841
  }
 
24842
  /** Replace a son.
 
24843
   *  \param old_son The son to replace.
 
24844
   *  \param new_son The new son. */
 
24845
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
24846
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
24847
  }
 
24848
};
 
24849
 
 
24850
 
 
24851
#line 24852 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24852
} // closed Puma
 
24853
class CCExprResolve;
 
24854
class CExprResolve;
 
24855
class WinIfExists;
 
24856
class WinImportHandler;
 
24857
class WinMacros;
 
24858
class WinAsm;
 
24859
class WinDeclSpecs;
 
24860
class WinMemberExplSpec;
 
24861
class WinTypeKeywords;
 
24862
class WinFriend;
 
24863
class ExtAC;
 
24864
class ExtACBuilderCoupling;
 
24865
class ExtACSyntaxCoupling;
 
24866
class ExtACTree;
 
24867
class ExtACKeywords;
 
24868
class ExtGnu;
 
24869
class PragmaOnceUnitState;
 
24870
class PragmaOnce;
 
24871
class CMatchSyntax;
 
24872
namespace Puma {
 
24873
 
 
24874
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24875
class CT_AsmDef : public CT_Decl {
 
24876
#line 24877 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24877
  friend class ::CCExprResolve;
 
24878
  friend class ::CExprResolve;
 
24879
  friend class ::WinIfExists;
 
24880
  friend class ::WinImportHandler;
 
24881
  friend class ::WinMacros;
 
24882
  friend class ::WinAsm;
 
24883
  friend class ::WinDeclSpecs;
 
24884
  friend class ::WinMemberExplSpec;
 
24885
  friend class ::WinTypeKeywords;
 
24886
  friend class ::WinFriend;
 
24887
  friend class ::ExtAC;
 
24888
  friend class ::ExtACBuilderCoupling;
 
24889
  friend class ::ExtACSyntaxCoupling;
 
24890
  friend class ::ExtACTree;
 
24891
  friend class ::ExtACKeywords;
 
24892
  friend class ::ExtGnu;
 
24893
  friend class ::PragmaOnceUnitState;
 
24894
  friend class ::PragmaOnce;
 
24895
  friend class ::CMatchSyntax;
 
24896
 
 
24897
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24898
 
 
24899
  CTree *sons[5]; // asm, open, str, close, semi_colon
 
24900
 
 
24901
public:
 
24902
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
 
24903
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
24904
    AddSon (sons[3], c); AddSon (sons[4], sc); 
 
24905
  }
 
24906
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24907
  static const char *NodeId ();
 
24908
  /** Get the name of the node. Can be compared with NodeId(). */
 
24909
  const char *NodeName () const { return NodeId (); }
 
24910
  /** Get the number of sons. */
 
24911
  int Sons () const { return 5; }
 
24912
  /** Get the n-th son.
 
24913
   *  \param n The index of the son.
 
24914
   *  \return The n-th son or NULL. */
 
24915
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
24916
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
24917
  /** Replace a son.
 
24918
   *  \param old_son The son to replace.
 
24919
   *  \param new_son The new son. */
 
24920
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
24921
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
24922
  }
 
24923
};
 
24924
 
 
24925
 
 
24926
#line 24927 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24927
} // closed Puma
 
24928
class CCExprResolve;
 
24929
class CExprResolve;
 
24930
class WinIfExists;
 
24931
class WinImportHandler;
 
24932
class WinMacros;
 
24933
class WinAsm;
 
24934
class WinDeclSpecs;
 
24935
class WinMemberExplSpec;
 
24936
class WinTypeKeywords;
 
24937
class WinFriend;
 
24938
class ExtAC;
 
24939
class ExtACBuilderCoupling;
 
24940
class ExtACSyntaxCoupling;
 
24941
class ExtACTree;
 
24942
class ExtACKeywords;
 
24943
class ExtGnu;
 
24944
class PragmaOnceUnitState;
 
24945
class PragmaOnce;
 
24946
class CMatchSyntax;
 
24947
namespace Puma {
 
24948
 
 
24949
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24950
class CT_Handler : public CT_Decl, public CSemScope {
 
24951
#line 24952 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
24952
  friend class ::CCExprResolve;
 
24953
  friend class ::CExprResolve;
 
24954
  friend class ::WinIfExists;
 
24955
  friend class ::WinImportHandler;
 
24956
  friend class ::WinMacros;
 
24957
  friend class ::WinAsm;
 
24958
  friend class ::WinDeclSpecs;
 
24959
  friend class ::WinMemberExplSpec;
 
24960
  friend class ::WinTypeKeywords;
 
24961
  friend class ::WinFriend;
 
24962
  friend class ::ExtAC;
 
24963
  friend class ::ExtACBuilderCoupling;
 
24964
  friend class ::ExtACSyntaxCoupling;
 
24965
  friend class ::ExtACTree;
 
24966
  friend class ::ExtACKeywords;
 
24967
  friend class ::ExtGnu;
 
24968
  friend class ::PragmaOnceUnitState;
 
24969
  friend class ::PragmaOnce;
 
24970
  friend class ::CMatchSyntax;
 
24971
 
 
24972
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24973
 
 
24974
  CTree *sons[3]; // catch, exception_decl, stmt
 
24975
 
 
24976
public:
 
24977
  CT_Handler (CTree *c, CTree *e, CTree *s) {
 
24978
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
 
24979
  }
 
24980
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24981
  static const char *NodeId ();
 
24982
  /** Get the name of the node. Can be compared with NodeId(). */
 
24983
  const char *NodeName () const { return NodeId (); }
 
24984
  /** Get the number of sons. */
 
24985
  int Sons () const { return 3; }
 
24986
  /** Get the n-th son.
 
24987
   *  \param n The index of the son.
 
24988
   *  \return The n-th son or NULL. */
 
24989
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
24990
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
24991
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
24992
  /** Replace a son.
 
24993
   *  \param old_son The son to replace.
 
24994
   *  \param new_son The new son. */
 
24995
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
24996
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
24997
  }
 
24998
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
24999
};
 
25000
 
 
25001
 
 
25002
#line 25003 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25003
} // closed Puma
 
25004
class CCExprResolve;
 
25005
class CExprResolve;
 
25006
class WinIfExists;
 
25007
class WinImportHandler;
 
25008
class WinMacros;
 
25009
class WinAsm;
 
25010
class WinDeclSpecs;
 
25011
class WinMemberExplSpec;
 
25012
class WinTypeKeywords;
 
25013
class WinFriend;
 
25014
class ExtAC;
 
25015
class ExtACBuilderCoupling;
 
25016
class ExtACSyntaxCoupling;
 
25017
class ExtACTree;
 
25018
class ExtACKeywords;
 
25019
class ExtGnu;
 
25020
class PragmaOnceUnitState;
 
25021
class PragmaOnce;
 
25022
class CMatchSyntax;
 
25023
namespace Puma {
 
25024
 
 
25025
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25026
class CT_LinkageSpec : public CT_Decl {
 
25027
#line 25028 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25028
  friend class ::CCExprResolve;
 
25029
  friend class ::CExprResolve;
 
25030
  friend class ::WinIfExists;
 
25031
  friend class ::WinImportHandler;
 
25032
  friend class ::WinMacros;
 
25033
  friend class ::WinAsm;
 
25034
  friend class ::WinDeclSpecs;
 
25035
  friend class ::WinMemberExplSpec;
 
25036
  friend class ::WinTypeKeywords;
 
25037
  friend class ::WinFriend;
 
25038
  friend class ::ExtAC;
 
25039
  friend class ::ExtACBuilderCoupling;
 
25040
  friend class ::ExtACSyntaxCoupling;
 
25041
  friend class ::ExtACTree;
 
25042
  friend class ::ExtACKeywords;
 
25043
  friend class ::ExtGnu;
 
25044
  friend class ::PragmaOnceUnitState;
 
25045
  friend class ::PragmaOnce;
 
25046
  friend class ::CMatchSyntax;
 
25047
 
 
25048
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25049
 
 
25050
  CTree *sons[5]; // extern, str, open, decls, close
 
25051
 
 
25052
public:
 
25053
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
 
25054
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
25055
    AddSon (sons[3], d); AddSon (sons[4], c);
 
25056
    if (isList ())
 
25057
      ((CT_DeclList*)Decls ())->Linkage (this);
 
25058
    else
 
25059
      ((CT_Decl*)Decls ())->Linkage (this);
 
25060
  }
 
25061
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25062
  static const char *NodeId ();
 
25063
  /** Get the name of the node. Can be compared with NodeId(). */
 
25064
  const char *NodeName () const { return NodeId (); }
 
25065
  /** Get the number of sons. */
 
25066
  int Sons () const { return CTree::Sons (sons, 5); }
 
25067
  /** Get the n-th son.
 
25068
   *  \param n The index of the son.
 
25069
   *  \return The n-th son or NULL. */
 
25070
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
25071
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
 
25072
  CTree *Decls () const { return sons[3]; }
 
25073
  bool isList () const {
 
25074
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
 
25075
  }
 
25076
  /** Replace a son.
 
25077
   *  \param old_son The son to replace.
 
25078
   *  \param new_son The new son. */
 
25079
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
25080
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
25081
  }
 
25082
};
 
25083
 
 
25084
 
 
25085
#line 25086 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25086
} // closed Puma
 
25087
class CCExprResolve;
 
25088
class CExprResolve;
 
25089
class WinIfExists;
 
25090
class WinImportHandler;
 
25091
class WinMacros;
 
25092
class WinAsm;
 
25093
class WinDeclSpecs;
 
25094
class WinMemberExplSpec;
 
25095
class WinTypeKeywords;
 
25096
class WinFriend;
 
25097
class ExtAC;
 
25098
class ExtACBuilderCoupling;
 
25099
class ExtACSyntaxCoupling;
 
25100
class ExtACTree;
 
25101
class ExtACKeywords;
 
25102
class ExtGnu;
 
25103
class PragmaOnceUnitState;
 
25104
class PragmaOnce;
 
25105
class CMatchSyntax;
 
25106
namespace Puma {
 
25107
 
 
25108
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25109
class CT_ArgDecl : public CT_Decl, public CSemObject {
 
25110
#line 25111 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25111
  friend class ::CCExprResolve;
 
25112
  friend class ::CExprResolve;
 
25113
  friend class ::WinIfExists;
 
25114
  friend class ::WinImportHandler;
 
25115
  friend class ::WinMacros;
 
25116
  friend class ::WinAsm;
 
25117
  friend class ::WinDeclSpecs;
 
25118
  friend class ::WinMemberExplSpec;
 
25119
  friend class ::WinTypeKeywords;
 
25120
  friend class ::WinFriend;
 
25121
  friend class ::ExtAC;
 
25122
  friend class ::ExtACBuilderCoupling;
 
25123
  friend class ::ExtACSyntaxCoupling;
 
25124
  friend class ::ExtACTree;
 
25125
  friend class ::ExtACKeywords;
 
25126
  friend class ::ExtGnu;
 
25127
  friend class ::PragmaOnceUnitState;
 
25128
  friend class ::PragmaOnce;
 
25129
  friend class ::CMatchSyntax;
 
25130
 
 
25131
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25132
 
 
25133
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
 
25134
 
 
25135
public:
 
25136
  CT_ArgDecl (CTree *dsl, CTree *d) {
 
25137
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
25138
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
 
25139
  }
 
25140
  CT_ArgDecl (CTree *ellipsis) {
 
25141
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
25142
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
 
25143
  }
 
25144
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25145
  static const char *NodeId ();
 
25146
  /** Get the name of the node. Can be compared with NodeId(). */
 
25147
  const char *NodeName () const { return NodeId (); }
 
25148
  /** Get the number of sons. */
 
25149
  int Sons () const { return CTree::Sons (sons, 4); }
 
25150
  /** Get the n-th son.
 
25151
   *  \param n The index of the son.
 
25152
   *  \return The n-th son or NULL. */
 
25153
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
25154
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
25155
  CTree *Declarator () const { return sons[1]; }
 
25156
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
25157
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
 
25158
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
25159
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
25160
  /** Replace a son.
 
25161
   *  \param old_son The son to replace.
 
25162
   *  \param new_son The new son. */
 
25163
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
25164
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
25165
  }
 
25166
};
 
25167
 
 
25168
 
 
25169
#line 25170 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25170
} // closed Puma
 
25171
class CCExprResolve;
 
25172
class CExprResolve;
 
25173
class WinIfExists;
 
25174
class WinImportHandler;
 
25175
class WinMacros;
 
25176
class WinAsm;
 
25177
class WinDeclSpecs;
 
25178
class WinMemberExplSpec;
 
25179
class WinTypeKeywords;
 
25180
class WinFriend;
 
25181
class ExtAC;
 
25182
class ExtACBuilderCoupling;
 
25183
class ExtACSyntaxCoupling;
 
25184
class ExtACTree;
 
25185
class ExtACKeywords;
 
25186
class ExtGnu;
 
25187
class PragmaOnceUnitState;
 
25188
class PragmaOnce;
 
25189
class CMatchSyntax;
 
25190
namespace Puma {
 
25191
 
 
25192
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25193
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
 
25194
#line 25195 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25195
  friend class ::CCExprResolve;
 
25196
  friend class ::CExprResolve;
 
25197
  friend class ::WinIfExists;
 
25198
  friend class ::WinImportHandler;
 
25199
  friend class ::WinMacros;
 
25200
  friend class ::WinAsm;
 
25201
  friend class ::WinDeclSpecs;
 
25202
  friend class ::WinMemberExplSpec;
 
25203
  friend class ::WinTypeKeywords;
 
25204
  friend class ::WinFriend;
 
25205
  friend class ::ExtAC;
 
25206
  friend class ::ExtACBuilderCoupling;
 
25207
  friend class ::ExtACSyntaxCoupling;
 
25208
  friend class ::ExtACTree;
 
25209
  friend class ::ExtACKeywords;
 
25210
  friend class ::ExtGnu;
 
25211
  friend class ::PragmaOnceUnitState;
 
25212
  friend class ::PragmaOnce;
 
25213
  friend class ::CMatchSyntax;
 
25214
 
 
25215
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25216
 
 
25217
public:
 
25218
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
 
25219
   CT_DeclList (size, 2) { AddProperties (props); }
 
25220
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25221
  static const char *NodeId ();
 
25222
  /** Get the name of the node. Can be compared with NodeId(). */
 
25223
  const char *NodeName () const { return NodeId (); }
 
25224
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
25225
};
 
25226
 
 
25227
 
 
25228
#line 25229 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25229
} // closed Puma
 
25230
class CCExprResolve;
 
25231
class CExprResolve;
 
25232
class WinIfExists;
 
25233
class WinImportHandler;
 
25234
class WinMacros;
 
25235
class WinAsm;
 
25236
class WinDeclSpecs;
 
25237
class WinMemberExplSpec;
 
25238
class WinTypeKeywords;
 
25239
class WinFriend;
 
25240
class ExtAC;
 
25241
class ExtACBuilderCoupling;
 
25242
class ExtACSyntaxCoupling;
 
25243
class ExtACTree;
 
25244
class ExtACKeywords;
 
25245
class ExtGnu;
 
25246
class PragmaOnceUnitState;
 
25247
class PragmaOnce;
 
25248
class CMatchSyntax;
 
25249
namespace Puma {
 
25250
 
 
25251
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25252
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
 
25253
#line 25254 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25254
  friend class ::CCExprResolve;
 
25255
  friend class ::CExprResolve;
 
25256
  friend class ::WinIfExists;
 
25257
  friend class ::WinImportHandler;
 
25258
  friend class ::WinMacros;
 
25259
  friend class ::WinAsm;
 
25260
  friend class ::WinDeclSpecs;
 
25261
  friend class ::WinMemberExplSpec;
 
25262
  friend class ::WinTypeKeywords;
 
25263
  friend class ::WinFriend;
 
25264
  friend class ::ExtAC;
 
25265
  friend class ::ExtACBuilderCoupling;
 
25266
  friend class ::ExtACSyntaxCoupling;
 
25267
  friend class ::ExtACTree;
 
25268
  friend class ::ExtACKeywords;
 
25269
  friend class ::ExtGnu;
 
25270
  friend class ::PragmaOnceUnitState;
 
25271
  friend class ::PragmaOnce;
 
25272
  friend class ::CMatchSyntax;
 
25273
 
 
25274
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25275
 
 
25276
public:
 
25277
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
25278
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25279
  static const char *NodeId ();
 
25280
  /** Get the name of the node. Can be compared with NodeId(). */
 
25281
  const char *NodeName () const { return NodeId (); }
 
25282
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
25283
};
 
25284
 
 
25285
 
 
25286
#line 25287 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25287
} // closed Puma
 
25288
class CCExprResolve;
 
25289
class CExprResolve;
 
25290
class WinIfExists;
 
25291
class WinImportHandler;
 
25292
class WinMacros;
 
25293
class WinAsm;
 
25294
class WinDeclSpecs;
 
25295
class WinMemberExplSpec;
 
25296
class WinTypeKeywords;
 
25297
class WinFriend;
 
25298
class ExtAC;
 
25299
class ExtACBuilderCoupling;
 
25300
class ExtACSyntaxCoupling;
 
25301
class ExtACTree;
 
25302
class ExtACKeywords;
 
25303
class ExtGnu;
 
25304
class PragmaOnceUnitState;
 
25305
class PragmaOnce;
 
25306
class CMatchSyntax;
 
25307
namespace Puma {
 
25308
 
 
25309
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25310
class CT_ArgNameList : public CT_ArgDeclList {
 
25311
#line 25312 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25312
  friend class ::CCExprResolve;
 
25313
  friend class ::CExprResolve;
 
25314
  friend class ::WinIfExists;
 
25315
  friend class ::WinImportHandler;
 
25316
  friend class ::WinMacros;
 
25317
  friend class ::WinAsm;
 
25318
  friend class ::WinDeclSpecs;
 
25319
  friend class ::WinMemberExplSpec;
 
25320
  friend class ::WinTypeKeywords;
 
25321
  friend class ::WinFriend;
 
25322
  friend class ::ExtAC;
 
25323
  friend class ::ExtACBuilderCoupling;
 
25324
  friend class ::ExtACSyntaxCoupling;
 
25325
  friend class ::ExtACTree;
 
25326
  friend class ::ExtACKeywords;
 
25327
  friend class ::ExtGnu;
 
25328
  friend class ::PragmaOnceUnitState;
 
25329
  friend class ::PragmaOnce;
 
25330
  friend class ::CMatchSyntax;
 
25331
 
 
25332
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25333
 
 
25334
public:
 
25335
  CT_ArgNameList () : CT_ArgDeclList () {}
 
25336
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25337
  static const char *NodeId ();
 
25338
  /** Get the name of the node. Can be compared with NodeId(). */
 
25339
  const char *NodeName () const { return NodeId (); }
 
25340
};
 
25341
 
 
25342
 
 
25343
#line 25344 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25344
} // closed Puma
 
25345
class CCExprResolve;
 
25346
class CExprResolve;
 
25347
class WinIfExists;
 
25348
class WinImportHandler;
 
25349
class WinMacros;
 
25350
class WinAsm;
 
25351
class WinDeclSpecs;
 
25352
class WinMemberExplSpec;
 
25353
class WinTypeKeywords;
 
25354
class WinFriend;
 
25355
class ExtAC;
 
25356
class ExtACBuilderCoupling;
 
25357
class ExtACSyntaxCoupling;
 
25358
class ExtACTree;
 
25359
class ExtACKeywords;
 
25360
class ExtGnu;
 
25361
class PragmaOnceUnitState;
 
25362
class PragmaOnce;
 
25363
class CMatchSyntax;
 
25364
namespace Puma {
 
25365
 
 
25366
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25367
class CT_NamespaceDef : public CT_Decl, public CSemObject {
 
25368
#line 25369 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25369
  friend class ::CCExprResolve;
 
25370
  friend class ::CExprResolve;
 
25371
  friend class ::WinIfExists;
 
25372
  friend class ::WinImportHandler;
 
25373
  friend class ::WinMacros;
 
25374
  friend class ::WinAsm;
 
25375
  friend class ::WinDeclSpecs;
 
25376
  friend class ::WinMemberExplSpec;
 
25377
  friend class ::WinTypeKeywords;
 
25378
  friend class ::WinFriend;
 
25379
  friend class ::ExtAC;
 
25380
  friend class ::ExtACBuilderCoupling;
 
25381
  friend class ::ExtACSyntaxCoupling;
 
25382
  friend class ::ExtACTree;
 
25383
  friend class ::ExtACKeywords;
 
25384
  friend class ::ExtGnu;
 
25385
  friend class ::PragmaOnceUnitState;
 
25386
  friend class ::PragmaOnce;
 
25387
  friend class ::CMatchSyntax;
 
25388
 
 
25389
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25390
 
 
25391
  CTree *sons[3]; // ns, name, members
 
25392
 
 
25393
public:
 
25394
  CT_NamespaceDef (CTree *n, CTree *nm) {
 
25395
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
 
25396
  }
 
25397
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
 
25398
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
 
25399
  }
 
25400
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25401
  static const char *NodeId ();
 
25402
  /** Get the name of the node. Can be compared with NodeId(). */
 
25403
  const char *NodeName () const { return NodeId (); }
 
25404
  /** Get the number of sons. */
 
25405
  int Sons () const { return CTree::Sons (sons, 3); }
 
25406
  /** Get the n-th son.
 
25407
   *  \param n The index of the son.
 
25408
   *  \return The n-th son or NULL. */
 
25409
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
25410
  void Members (CTree *m) { AddSon (sons[2], m); }
 
25411
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
 
25412
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
25413
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
25414
  /** Replace a son.
 
25415
   *  \param old_son The son to replace.
 
25416
   *  \param new_son The new son. */
 
25417
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
25418
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
25419
  }
 
25420
};
 
25421
 
 
25422
 
 
25423
#line 25424 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25424
} // closed Puma
 
25425
class CCExprResolve;
 
25426
class CExprResolve;
 
25427
class WinIfExists;
 
25428
class WinImportHandler;
 
25429
class WinMacros;
 
25430
class WinAsm;
 
25431
class WinDeclSpecs;
 
25432
class WinMemberExplSpec;
 
25433
class WinTypeKeywords;
 
25434
class WinFriend;
 
25435
class ExtAC;
 
25436
class ExtACBuilderCoupling;
 
25437
class ExtACSyntaxCoupling;
 
25438
class ExtACTree;
 
25439
class ExtACKeywords;
 
25440
class ExtGnu;
 
25441
class PragmaOnceUnitState;
 
25442
class PragmaOnce;
 
25443
class CMatchSyntax;
 
25444
namespace Puma {
 
25445
 
 
25446
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25447
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
 
25448
#line 25449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25449
  friend class ::CCExprResolve;
 
25450
  friend class ::CExprResolve;
 
25451
  friend class ::WinIfExists;
 
25452
  friend class ::WinImportHandler;
 
25453
  friend class ::WinMacros;
 
25454
  friend class ::WinAsm;
 
25455
  friend class ::WinDeclSpecs;
 
25456
  friend class ::WinMemberExplSpec;
 
25457
  friend class ::WinTypeKeywords;
 
25458
  friend class ::WinFriend;
 
25459
  friend class ::ExtAC;
 
25460
  friend class ::ExtACBuilderCoupling;
 
25461
  friend class ::ExtACSyntaxCoupling;
 
25462
  friend class ::ExtACTree;
 
25463
  friend class ::ExtACKeywords;
 
25464
  friend class ::ExtGnu;
 
25465
  friend class ::PragmaOnceUnitState;
 
25466
  friend class ::PragmaOnce;
 
25467
  friend class ::CMatchSyntax;
 
25468
 
 
25469
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25470
 
 
25471
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
 
25472
 
 
25473
public:
 
25474
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
 
25475
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
25476
    AddSon (sons[3], nm); AddSon (sons[4], s); 
 
25477
  }
 
25478
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25479
  static const char *NodeId ();
 
25480
  /** Get the name of the node. Can be compared with NodeId(). */
 
25481
  const char *NodeName () const { return NodeId (); }
 
25482
  /** Get the number of sons. */
 
25483
  int Sons () const { return 5; }
 
25484
  /** Get the n-th son.
 
25485
   *  \param n The index of the son.
 
25486
   *  \return The n-th son or NULL. */
 
25487
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
25488
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
 
25489
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
 
25490
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
25491
  /** Replace a son.
 
25492
   *  \param old_son The son to replace.
 
25493
   *  \param new_son The new son. */
 
25494
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
25495
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
25496
  }
 
25497
};
 
25498
 
 
25499
 
 
25500
#line 25501 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25501
} // closed Puma
 
25502
class CCExprResolve;
 
25503
class CExprResolve;
 
25504
class WinIfExists;
 
25505
class WinImportHandler;
 
25506
class WinMacros;
 
25507
class WinAsm;
 
25508
class WinDeclSpecs;
 
25509
class WinMemberExplSpec;
 
25510
class WinTypeKeywords;
 
25511
class WinFriend;
 
25512
class ExtAC;
 
25513
class ExtACBuilderCoupling;
 
25514
class ExtACSyntaxCoupling;
 
25515
class ExtACTree;
 
25516
class ExtACKeywords;
 
25517
class ExtGnu;
 
25518
class PragmaOnceUnitState;
 
25519
class PragmaOnce;
 
25520
class CMatchSyntax;
 
25521
namespace Puma {
 
25522
 
 
25523
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25524
class CT_UsingDirective : public CT_Decl {
 
25525
#line 25526 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25526
  friend class ::CCExprResolve;
 
25527
  friend class ::CExprResolve;
 
25528
  friend class ::WinIfExists;
 
25529
  friend class ::WinImportHandler;
 
25530
  friend class ::WinMacros;
 
25531
  friend class ::WinAsm;
 
25532
  friend class ::WinDeclSpecs;
 
25533
  friend class ::WinMemberExplSpec;
 
25534
  friend class ::WinTypeKeywords;
 
25535
  friend class ::WinFriend;
 
25536
  friend class ::ExtAC;
 
25537
  friend class ::ExtACBuilderCoupling;
 
25538
  friend class ::ExtACSyntaxCoupling;
 
25539
  friend class ::ExtACTree;
 
25540
  friend class ::ExtACKeywords;
 
25541
  friend class ::ExtGnu;
 
25542
  friend class ::PragmaOnceUnitState;
 
25543
  friend class ::PragmaOnce;
 
25544
  friend class ::CMatchSyntax;
 
25545
 
 
25546
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25547
 
 
25548
  CTree *sons[4]; // using, ns, name, semi_colon
 
25549
 
 
25550
public:
 
25551
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
 
25552
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
25553
    AddSon (sons[3], s); 
 
25554
  }
 
25555
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25556
  static const char *NodeId ();
 
25557
  /** Get the name of the node. Can be compared with NodeId(). */
 
25558
  const char *NodeName () const { return NodeId (); }
 
25559
  /** Get the number of sons. */
 
25560
  int Sons () const { return 4; }
 
25561
  /** Get the n-th son.
 
25562
   *  \param n The index of the son.
 
25563
   *  \return The n-th son or NULL. */
 
25564
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
25565
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
25566
  /** Replace a son.
 
25567
   *  \param old_son The son to replace.
 
25568
   *  \param new_son The new son. */
 
25569
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
25570
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
25571
  }
 
25572
};
 
25573
 
 
25574
/*****************************************************************************/
 
25575
/*                                                                           */
 
25576
/*                              Declarators                                  */
 
25577
/*                                                                           */
 
25578
/*****************************************************************************/
 
25579
 
 
25580
 
 
25581
#line 25582 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25582
} // closed Puma
 
25583
class CCExprResolve;
 
25584
class CExprResolve;
 
25585
class WinIfExists;
 
25586
class WinImportHandler;
 
25587
class WinMacros;
 
25588
class WinAsm;
 
25589
class WinDeclSpecs;
 
25590
class WinMemberExplSpec;
 
25591
class WinTypeKeywords;
 
25592
class WinFriend;
 
25593
class ExtAC;
 
25594
class ExtACBuilderCoupling;
 
25595
class ExtACSyntaxCoupling;
 
25596
class ExtACTree;
 
25597
class ExtACKeywords;
 
25598
class ExtGnu;
 
25599
class PragmaOnceUnitState;
 
25600
class PragmaOnce;
 
25601
class CMatchSyntax;
 
25602
namespace Puma {
 
25603
 
 
25604
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25605
class CT_Declarator : public CTree {
 
25606
#line 25607 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25607
  friend class ::CCExprResolve;
 
25608
  friend class ::CExprResolve;
 
25609
  friend class ::WinIfExists;
 
25610
  friend class ::WinImportHandler;
 
25611
  friend class ::WinMacros;
 
25612
  friend class ::WinAsm;
 
25613
  friend class ::WinDeclSpecs;
 
25614
  friend class ::WinMemberExplSpec;
 
25615
  friend class ::WinTypeKeywords;
 
25616
  friend class ::WinFriend;
 
25617
  friend class ::ExtAC;
 
25618
  friend class ::ExtACBuilderCoupling;
 
25619
  friend class ::ExtACSyntaxCoupling;
 
25620
  friend class ::ExtACTree;
 
25621
  friend class ::ExtACKeywords;
 
25622
  friend class ::ExtGnu;
 
25623
  friend class ::PragmaOnceUnitState;
 
25624
  friend class ::PragmaOnce;
 
25625
  friend class ::CMatchSyntax;
 
25626
 
 
25627
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25628
 
 
25629
protected:
 
25630
  CT_Declarator () {}
 
25631
 
 
25632
public:
 
25633
  virtual CTree *Declarator () const = 0;
 
25634
  //classification function
 
25635
  virtual CT_Declarator *IsDeclarator () { return this; }
 
25636
  // locate the name node
 
25637
  CT_SimpleName *Name ();
 
25638
  CT_SimpleName *Name (CT_Declarator *&last_declarator);
 
25639
};
 
25640
 
 
25641
 
 
25642
#line 25643 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25643
} // closed Puma
 
25644
class CCExprResolve;
 
25645
class CExprResolve;
 
25646
class WinIfExists;
 
25647
class WinImportHandler;
 
25648
class WinMacros;
 
25649
class WinAsm;
 
25650
class WinDeclSpecs;
 
25651
class WinMemberExplSpec;
 
25652
class WinTypeKeywords;
 
25653
class WinFriend;
 
25654
class ExtAC;
 
25655
class ExtACBuilderCoupling;
 
25656
class ExtACSyntaxCoupling;
 
25657
class ExtACTree;
 
25658
class ExtACKeywords;
 
25659
class ExtGnu;
 
25660
class PragmaOnceUnitState;
 
25661
class PragmaOnce;
 
25662
class CMatchSyntax;
 
25663
namespace Puma {
 
25664
 
 
25665
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25666
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
 
25667
#line 25668 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25668
  friend class ::CCExprResolve;
 
25669
  friend class ::CExprResolve;
 
25670
  friend class ::WinIfExists;
 
25671
  friend class ::WinImportHandler;
 
25672
  friend class ::WinMacros;
 
25673
  friend class ::WinAsm;
 
25674
  friend class ::WinDeclSpecs;
 
25675
  friend class ::WinMemberExplSpec;
 
25676
  friend class ::WinTypeKeywords;
 
25677
  friend class ::WinFriend;
 
25678
  friend class ::ExtAC;
 
25679
  friend class ::ExtACBuilderCoupling;
 
25680
  friend class ::ExtACSyntaxCoupling;
 
25681
  friend class ::ExtACTree;
 
25682
  friend class ::ExtACKeywords;
 
25683
  friend class ::ExtGnu;
 
25684
  friend class ::PragmaOnceUnitState;
 
25685
  friend class ::PragmaOnce;
 
25686
  friend class ::CMatchSyntax;
 
25687
 
 
25688
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25689
 
 
25690
  CTree *sons[3]; // declarator, ext, init
 
25691
  CTree *obj_decl;
 
25692
 
 
25693
public:
 
25694
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
25695
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
25696
    AddSon (obj_decl, 0); 
 
25697
  }
 
25698
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25699
  static const char *NodeId ();
 
25700
  /** Get the name of the node. Can be compared with NodeId(). */
 
25701
  const char *NodeName () const { return NodeId (); }
 
25702
  /** Get the number of sons. */
 
25703
  int Sons () const { return CTree::Sons (sons, 3); }
 
25704
  /** Get the n-th son.
 
25705
   *  \param n The index of the son.
 
25706
   *  \return The n-th son or NULL. */
 
25707
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
25708
  CTree *Declarator () const { return sons[0]; }
 
25709
  CTree *Extension () const { return sons[1]; }
 
25710
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
25711
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
25712
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
 
25713
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
25714
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
25715
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
25716
  /** Replace a son.
 
25717
   *  \param old_son The son to replace.
 
25718
   *  \param new_son The new son. */
 
25719
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
25720
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
25721
  }
 
25722
};
 
25723
 
 
25724
 
 
25725
#line 25726 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25726
} // closed Puma
 
25727
class CCExprResolve;
 
25728
class CExprResolve;
 
25729
class WinIfExists;
 
25730
class WinImportHandler;
 
25731
class WinMacros;
 
25732
class WinAsm;
 
25733
class WinDeclSpecs;
 
25734
class WinMemberExplSpec;
 
25735
class WinTypeKeywords;
 
25736
class WinFriend;
 
25737
class ExtAC;
 
25738
class ExtACBuilderCoupling;
 
25739
class ExtACSyntaxCoupling;
 
25740
class ExtACTree;
 
25741
class ExtACKeywords;
 
25742
class ExtGnu;
 
25743
class PragmaOnceUnitState;
 
25744
class PragmaOnce;
 
25745
class CMatchSyntax;
 
25746
namespace Puma {
 
25747
 
 
25748
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25749
class CT_BracedDeclarator : public CT_Declarator {
 
25750
#line 25751 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25751
  friend class ::CCExprResolve;
 
25752
  friend class ::CExprResolve;
 
25753
  friend class ::WinIfExists;
 
25754
  friend class ::WinImportHandler;
 
25755
  friend class ::WinMacros;
 
25756
  friend class ::WinAsm;
 
25757
  friend class ::WinDeclSpecs;
 
25758
  friend class ::WinMemberExplSpec;
 
25759
  friend class ::WinTypeKeywords;
 
25760
  friend class ::WinFriend;
 
25761
  friend class ::ExtAC;
 
25762
  friend class ::ExtACBuilderCoupling;
 
25763
  friend class ::ExtACSyntaxCoupling;
 
25764
  friend class ::ExtACTree;
 
25765
  friend class ::ExtACKeywords;
 
25766
  friend class ::ExtGnu;
 
25767
  friend class ::PragmaOnceUnitState;
 
25768
  friend class ::PragmaOnce;
 
25769
  friend class ::CMatchSyntax;
 
25770
 
 
25771
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25772
 
 
25773
  CTree *sons[4]; // open, win_specs, declarator, close
 
25774
 
 
25775
public:
 
25776
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
 
25777
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
25778
    AddSon (sons[2], d); AddSon (sons[3], c); 
 
25779
  }
 
25780
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
 
25781
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
25782
    AddSon (sons[2], d); AddSon (sons[3], c); 
 
25783
  }
 
25784
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25785
  static const char *NodeId ();
 
25786
  /** Get the name of the node. Can be compared with NodeId(). */
 
25787
  const char *NodeName () const { return NodeId (); }
 
25788
  /** Get the number of sons. */
 
25789
  int Sons () const { return CTree::Sons (sons, 4); }
 
25790
  /** Get the n-th son.
 
25791
   *  \param n The index of the son.
 
25792
   *  \return The n-th son or NULL. */
 
25793
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
25794
  CTree *Declarator () const { return sons[2]; }
 
25795
  /** Replace a son.
 
25796
   *  \param old_son The son to replace.
 
25797
   *  \param new_son The new son. */
 
25798
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
25799
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
25800
  }
 
25801
};
 
25802
 
 
25803
 
 
25804
#line 25805 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25805
} // closed Puma
 
25806
class CCExprResolve;
 
25807
class CExprResolve;
 
25808
class WinIfExists;
 
25809
class WinImportHandler;
 
25810
class WinMacros;
 
25811
class WinAsm;
 
25812
class WinDeclSpecs;
 
25813
class WinMemberExplSpec;
 
25814
class WinTypeKeywords;
 
25815
class WinFriend;
 
25816
class ExtAC;
 
25817
class ExtACBuilderCoupling;
 
25818
class ExtACSyntaxCoupling;
 
25819
class ExtACTree;
 
25820
class ExtACKeywords;
 
25821
class ExtGnu;
 
25822
class PragmaOnceUnitState;
 
25823
class PragmaOnce;
 
25824
class CMatchSyntax;
 
25825
namespace Puma {
 
25826
 
 
25827
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25828
class CT_ArrayDelimiter : public CTree {
 
25829
#line 25830 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25830
  friend class ::CCExprResolve;
 
25831
  friend class ::CExprResolve;
 
25832
  friend class ::WinIfExists;
 
25833
  friend class ::WinImportHandler;
 
25834
  friend class ::WinMacros;
 
25835
  friend class ::WinAsm;
 
25836
  friend class ::WinDeclSpecs;
 
25837
  friend class ::WinMemberExplSpec;
 
25838
  friend class ::WinTypeKeywords;
 
25839
  friend class ::WinFriend;
 
25840
  friend class ::ExtAC;
 
25841
  friend class ::ExtACBuilderCoupling;
 
25842
  friend class ::ExtACSyntaxCoupling;
 
25843
  friend class ::ExtACTree;
 
25844
  friend class ::ExtACKeywords;
 
25845
  friend class ::ExtGnu;
 
25846
  friend class ::PragmaOnceUnitState;
 
25847
  friend class ::PragmaOnce;
 
25848
  friend class ::CMatchSyntax;
 
25849
 
 
25850
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25851
 
 
25852
  CTree *sons[4]; // star, static, quals, expr
 
25853
  bool pos0;
 
25854
 
 
25855
public:
 
25856
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
 
25857
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
25858
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
 
25859
  }
 
25860
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25861
  static const char *NodeId ();
 
25862
  /** Get the name of the node. Can be compared with NodeId(). */
 
25863
  const char *NodeName () const { return NodeId (); }
 
25864
  /** Get the number of sons. */
 
25865
  int Sons () const { return CTree::Sons (sons, 4); }
 
25866
  /** Get the n-th son.
 
25867
   *  \param n The index of the son.
 
25868
   *  \return The n-th son or NULL. */
 
25869
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
25870
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
 
25871
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
 
25872
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
 
25873
  CTree *Expr () const { return sons[3]; }
 
25874
  /** Replace a son.
 
25875
   *  \param old_son The son to replace.
 
25876
   *  \param new_son The new son. */
 
25877
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
25878
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
25879
  }
 
25880
};
 
25881
 
 
25882
 
 
25883
#line 25884 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25884
} // closed Puma
 
25885
class CCExprResolve;
 
25886
class CExprResolve;
 
25887
class WinIfExists;
 
25888
class WinImportHandler;
 
25889
class WinMacros;
 
25890
class WinAsm;
 
25891
class WinDeclSpecs;
 
25892
class WinMemberExplSpec;
 
25893
class WinTypeKeywords;
 
25894
class WinFriend;
 
25895
class ExtAC;
 
25896
class ExtACBuilderCoupling;
 
25897
class ExtACSyntaxCoupling;
 
25898
class ExtACTree;
 
25899
class ExtACKeywords;
 
25900
class ExtGnu;
 
25901
class PragmaOnceUnitState;
 
25902
class PragmaOnce;
 
25903
class CMatchSyntax;
 
25904
namespace Puma {
 
25905
 
 
25906
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25907
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
 
25908
#line 25909 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25909
  friend class ::CCExprResolve;
 
25910
  friend class ::CExprResolve;
 
25911
  friend class ::WinIfExists;
 
25912
  friend class ::WinImportHandler;
 
25913
  friend class ::WinMacros;
 
25914
  friend class ::WinAsm;
 
25915
  friend class ::WinDeclSpecs;
 
25916
  friend class ::WinMemberExplSpec;
 
25917
  friend class ::WinTypeKeywords;
 
25918
  friend class ::WinFriend;
 
25919
  friend class ::ExtAC;
 
25920
  friend class ::ExtACBuilderCoupling;
 
25921
  friend class ::ExtACSyntaxCoupling;
 
25922
  friend class ::ExtACTree;
 
25923
  friend class ::ExtACKeywords;
 
25924
  friend class ::ExtGnu;
 
25925
  friend class ::PragmaOnceUnitState;
 
25926
  friend class ::PragmaOnce;
 
25927
  friend class ::CMatchSyntax;
 
25928
 
 
25929
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25930
 
 
25931
  CTree *sons[4]; // declarator, open, delim, close
 
25932
 
 
25933
public:
 
25934
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
 
25935
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
25936
    AddSon (sons[2], ad); AddSon (sons[3], c); 
 
25937
  }
 
25938
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25939
  static const char *NodeId ();
 
25940
  /** Get the name of the node. Can be compared with NodeId(). */
 
25941
  const char *NodeName () const { return NodeId (); }
 
25942
  /** Get the number of sons. */
 
25943
  int Sons () const { return 4; }
 
25944
  /** Get the n-th son.
 
25945
   *  \param n The index of the son.
 
25946
   *  \return The n-th son or NULL. */
 
25947
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
25948
  CTree *Declarator () const { return sons[0]; }
 
25949
  CT_ArrayDelimiter *Delimiter () const 
 
25950
   { return (CT_ArrayDelimiter*)sons[2]; }
 
25951
  /** Replace a son.
 
25952
   *  \param old_son The son to replace.
 
25953
   *  \param new_son The new son. */
 
25954
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
25955
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
25956
  }
 
25957
  CTypeInfo *Type () const { return type; }
 
25958
  CExprValue *Value () const { return value; }
 
25959
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
25960
};
 
25961
 
 
25962
 
 
25963
#line 25964 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25964
} // closed Puma
 
25965
class CCExprResolve;
 
25966
class CExprResolve;
 
25967
class WinIfExists;
 
25968
class WinImportHandler;
 
25969
class WinMacros;
 
25970
class WinAsm;
 
25971
class WinDeclSpecs;
 
25972
class WinMemberExplSpec;
 
25973
class WinTypeKeywords;
 
25974
class WinFriend;
 
25975
class ExtAC;
 
25976
class ExtACBuilderCoupling;
 
25977
class ExtACSyntaxCoupling;
 
25978
class ExtACTree;
 
25979
class ExtACKeywords;
 
25980
class ExtGnu;
 
25981
class PragmaOnceUnitState;
 
25982
class PragmaOnce;
 
25983
class CMatchSyntax;
 
25984
namespace Puma {
 
25985
 
 
25986
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25987
class CT_FctDeclarator : public CT_Declarator {
 
25988
#line 25989 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
25989
  friend class ::CCExprResolve;
 
25990
  friend class ::CExprResolve;
 
25991
  friend class ::WinIfExists;
 
25992
  friend class ::WinImportHandler;
 
25993
  friend class ::WinMacros;
 
25994
  friend class ::WinAsm;
 
25995
  friend class ::WinDeclSpecs;
 
25996
  friend class ::WinMemberExplSpec;
 
25997
  friend class ::WinTypeKeywords;
 
25998
  friend class ::WinFriend;
 
25999
  friend class ::ExtAC;
 
26000
  friend class ::ExtACBuilderCoupling;
 
26001
  friend class ::ExtACSyntaxCoupling;
 
26002
  friend class ::ExtACTree;
 
26003
  friend class ::ExtACKeywords;
 
26004
  friend class ::ExtGnu;
 
26005
  friend class ::PragmaOnceUnitState;
 
26006
  friend class ::PragmaOnce;
 
26007
  friend class ::CMatchSyntax;
 
26008
 
 
26009
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26010
 
 
26011
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
 
26012
 
 
26013
public:
 
26014
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
 
26015
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
26016
    AddSon (sons[2], cv); AddSon (sons[3], es); 
 
26017
  }
 
26018
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26019
  static const char *NodeId ();
 
26020
  /** Get the name of the node. Can be compared with NodeId(). */
 
26021
  const char *NodeName () const { return NodeId (); }
 
26022
  /** Get the number of sons. */
 
26023
  int Sons () const { return CTree::Sons (sons, 4); }
 
26024
  /** Get the n-th son.
 
26025
   *  \param n The index of the son.
 
26026
   *  \return The n-th son or NULL. */
 
26027
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
26028
  CTree *Declarator () const { return sons[0]; }
 
26029
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
26030
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
 
26031
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
26032
  /** Replace a son.
 
26033
   *  \param old_son The son to replace.
 
26034
   *  \param new_son The new son. */
 
26035
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26036
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
26037
  }
 
26038
};
 
26039
 
 
26040
 
 
26041
#line 26042 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26042
} // closed Puma
 
26043
class CCExprResolve;
 
26044
class CExprResolve;
 
26045
class WinIfExists;
 
26046
class WinImportHandler;
 
26047
class WinMacros;
 
26048
class WinAsm;
 
26049
class WinDeclSpecs;
 
26050
class WinMemberExplSpec;
 
26051
class WinTypeKeywords;
 
26052
class WinFriend;
 
26053
class ExtAC;
 
26054
class ExtACBuilderCoupling;
 
26055
class ExtACSyntaxCoupling;
 
26056
class ExtACTree;
 
26057
class ExtACKeywords;
 
26058
class ExtGnu;
 
26059
class PragmaOnceUnitState;
 
26060
class PragmaOnce;
 
26061
class CMatchSyntax;
 
26062
namespace Puma {
 
26063
 
 
26064
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26065
class CT_RefDeclarator : public CT_Declarator {
 
26066
#line 26067 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26067
  friend class ::CCExprResolve;
 
26068
  friend class ::CExprResolve;
 
26069
  friend class ::WinIfExists;
 
26070
  friend class ::WinImportHandler;
 
26071
  friend class ::WinMacros;
 
26072
  friend class ::WinAsm;
 
26073
  friend class ::WinDeclSpecs;
 
26074
  friend class ::WinMemberExplSpec;
 
26075
  friend class ::WinTypeKeywords;
 
26076
  friend class ::WinFriend;
 
26077
  friend class ::ExtAC;
 
26078
  friend class ::ExtACBuilderCoupling;
 
26079
  friend class ::ExtACSyntaxCoupling;
 
26080
  friend class ::ExtACTree;
 
26081
  friend class ::ExtACKeywords;
 
26082
  friend class ::ExtGnu;
 
26083
  friend class ::PragmaOnceUnitState;
 
26084
  friend class ::PragmaOnce;
 
26085
  friend class ::CMatchSyntax;
 
26086
 
 
26087
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26088
 
 
26089
  CTree *sons[2]; // ref, declarator
 
26090
 
 
26091
public:
 
26092
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
26093
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26094
  static const char *NodeId ();
 
26095
  /** Get the name of the node. Can be compared with NodeId(). */
 
26096
  const char *NodeName () const { return NodeId (); }
 
26097
  /** Get the number of sons. */
 
26098
  int Sons () const { return 2; }
 
26099
  /** Get the n-th son.
 
26100
   *  \param n The index of the son.
 
26101
   *  \return The n-th son or NULL. */
 
26102
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
26103
  CTree *Declarator () const { return sons[1]; }
 
26104
  /** Replace a son.
 
26105
   *  \param old_son The son to replace.
 
26106
   *  \param new_son The new son. */
 
26107
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
26108
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
26109
  }
 
26110
};
 
26111
 
 
26112
 
 
26113
#line 26114 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26114
} // closed Puma
 
26115
class CCExprResolve;
 
26116
class CExprResolve;
 
26117
class WinIfExists;
 
26118
class WinImportHandler;
 
26119
class WinMacros;
 
26120
class WinAsm;
 
26121
class WinDeclSpecs;
 
26122
class WinMemberExplSpec;
 
26123
class WinTypeKeywords;
 
26124
class WinFriend;
 
26125
class ExtAC;
 
26126
class ExtACBuilderCoupling;
 
26127
class ExtACSyntaxCoupling;
 
26128
class ExtACTree;
 
26129
class ExtACKeywords;
 
26130
class ExtGnu;
 
26131
class PragmaOnceUnitState;
 
26132
class PragmaOnce;
 
26133
class CMatchSyntax;
 
26134
namespace Puma {
 
26135
 
 
26136
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26137
class CT_PtrDeclarator : public CT_Declarator {
 
26138
#line 26139 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26139
  friend class ::CCExprResolve;
 
26140
  friend class ::CExprResolve;
 
26141
  friend class ::WinIfExists;
 
26142
  friend class ::WinImportHandler;
 
26143
  friend class ::WinMacros;
 
26144
  friend class ::WinAsm;
 
26145
  friend class ::WinDeclSpecs;
 
26146
  friend class ::WinMemberExplSpec;
 
26147
  friend class ::WinTypeKeywords;
 
26148
  friend class ::WinFriend;
 
26149
  friend class ::ExtAC;
 
26150
  friend class ::ExtACBuilderCoupling;
 
26151
  friend class ::ExtACSyntaxCoupling;
 
26152
  friend class ::ExtACTree;
 
26153
  friend class ::ExtACKeywords;
 
26154
  friend class ::ExtGnu;
 
26155
  friend class ::PragmaOnceUnitState;
 
26156
  friend class ::PragmaOnce;
 
26157
  friend class ::CMatchSyntax;
 
26158
 
 
26159
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26160
 
 
26161
  CTree *sons[3]; // ptr, cv_quals, declarator
 
26162
 
 
26163
public:
 
26164
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
 
26165
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
 
26166
  }
 
26167
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26168
  static const char *NodeId ();
 
26169
  /** Get the name of the node. Can be compared with NodeId(). */
 
26170
  const char *NodeName () const { return NodeId (); }
 
26171
  /** Get the number of sons. */
 
26172
  int Sons () const { return CTree::Sons (sons, 3); }
 
26173
  /** Get the n-th son.
 
26174
   *  \param n The index of the son.
 
26175
   *  \return The n-th son or NULL. */
 
26176
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
26177
  CTree *Declarator () const { return sons[2]; }
 
26178
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
26179
  /** Replace a son.
 
26180
   *  \param old_son The son to replace.
 
26181
   *  \param new_son The new son. */
 
26182
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26183
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
26184
  }
 
26185
};
 
26186
 
 
26187
 
 
26188
#line 26189 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26189
} // closed Puma
 
26190
class CCExprResolve;
 
26191
class CExprResolve;
 
26192
class WinIfExists;
 
26193
class WinImportHandler;
 
26194
class WinMacros;
 
26195
class WinAsm;
 
26196
class WinDeclSpecs;
 
26197
class WinMemberExplSpec;
 
26198
class WinTypeKeywords;
 
26199
class WinFriend;
 
26200
class ExtAC;
 
26201
class ExtACBuilderCoupling;
 
26202
class ExtACSyntaxCoupling;
 
26203
class ExtACTree;
 
26204
class ExtACKeywords;
 
26205
class ExtGnu;
 
26206
class PragmaOnceUnitState;
 
26207
class PragmaOnce;
 
26208
class CMatchSyntax;
 
26209
namespace Puma {
 
26210
 
 
26211
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26212
class CT_MembPtrDeclarator : public CT_Declarator {
 
26213
#line 26214 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26214
  friend class ::CCExprResolve;
 
26215
  friend class ::CExprResolve;
 
26216
  friend class ::WinIfExists;
 
26217
  friend class ::WinImportHandler;
 
26218
  friend class ::WinMacros;
 
26219
  friend class ::WinAsm;
 
26220
  friend class ::WinDeclSpecs;
 
26221
  friend class ::WinMemberExplSpec;
 
26222
  friend class ::WinTypeKeywords;
 
26223
  friend class ::WinFriend;
 
26224
  friend class ::ExtAC;
 
26225
  friend class ::ExtACBuilderCoupling;
 
26226
  friend class ::ExtACSyntaxCoupling;
 
26227
  friend class ::ExtACTree;
 
26228
  friend class ::ExtACKeywords;
 
26229
  friend class ::ExtGnu;
 
26230
  friend class ::PragmaOnceUnitState;
 
26231
  friend class ::PragmaOnce;
 
26232
  friend class ::CMatchSyntax;
 
26233
 
 
26234
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26235
 
 
26236
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
 
26237
 
 
26238
public:
 
26239
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
 
26240
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
26241
    AddSon (sons[3], q); AddSon (sons[4], d); 
 
26242
  }
 
26243
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26244
  static const char *NodeId ();
 
26245
  /** Get the name of the node. Can be compared with NodeId(). */
 
26246
  const char *NodeName () const { return NodeId (); }
 
26247
  /** Get the number of sons. */
 
26248
  int Sons () const { return CTree::Sons (sons, 5); }
 
26249
  /** Get the n-th son.
 
26250
   *  \param n The index of the son.
 
26251
   *  \return The n-th son or NULL. */
 
26252
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
26253
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
26254
  CTree *Declarator () const { return sons[4]; }
 
26255
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
26256
  /** Replace a son.
 
26257
   *  \param old_son The son to replace.
 
26258
   *  \param new_son The new son. */
 
26259
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26260
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
26261
  }
 
26262
};
 
26263
 
 
26264
 
 
26265
#line 26266 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26266
} // closed Puma
 
26267
class CCExprResolve;
 
26268
class CExprResolve;
 
26269
class WinIfExists;
 
26270
class WinImportHandler;
 
26271
class WinMacros;
 
26272
class WinAsm;
 
26273
class WinDeclSpecs;
 
26274
class WinMemberExplSpec;
 
26275
class WinTypeKeywords;
 
26276
class WinFriend;
 
26277
class ExtAC;
 
26278
class ExtACBuilderCoupling;
 
26279
class ExtACSyntaxCoupling;
 
26280
class ExtACTree;
 
26281
class ExtACKeywords;
 
26282
class ExtGnu;
 
26283
class PragmaOnceUnitState;
 
26284
class PragmaOnce;
 
26285
class CMatchSyntax;
 
26286
namespace Puma {
 
26287
 
 
26288
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26289
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
 
26290
#line 26291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26291
  friend class ::CCExprResolve;
 
26292
  friend class ::CExprResolve;
 
26293
  friend class ::WinIfExists;
 
26294
  friend class ::WinImportHandler;
 
26295
  friend class ::WinMacros;
 
26296
  friend class ::WinAsm;
 
26297
  friend class ::WinDeclSpecs;
 
26298
  friend class ::WinMemberExplSpec;
 
26299
  friend class ::WinTypeKeywords;
 
26300
  friend class ::WinFriend;
 
26301
  friend class ::ExtAC;
 
26302
  friend class ::ExtACBuilderCoupling;
 
26303
  friend class ::ExtACSyntaxCoupling;
 
26304
  friend class ::ExtACTree;
 
26305
  friend class ::ExtACKeywords;
 
26306
  friend class ::ExtGnu;
 
26307
  friend class ::PragmaOnceUnitState;
 
26308
  friend class ::PragmaOnce;
 
26309
  friend class ::CMatchSyntax;
 
26310
 
 
26311
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26312
 
 
26313
  CTree *sons[3]; // declarator, colon, expr
 
26314
 
 
26315
public:
 
26316
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
 
26317
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
 
26318
  }
 
26319
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26320
  static const char *NodeId ();
 
26321
  /** Get the name of the node. Can be compared with NodeId(). */
 
26322
  const char *NodeName () const { return NodeId (); }
 
26323
  /** Get the number of sons. */
 
26324
  int Sons () const { return CTree::Sons (sons, 3); }
 
26325
  /** Get the n-th son.
 
26326
   *  \param n The index of the son.
 
26327
   *  \return The n-th son or NULL. */
 
26328
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
26329
  CTree *Declarator () const { return sons[0]; }
 
26330
  CTree *Expr () const { return sons[2]; }
 
26331
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
 
26332
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
26333
  /** Replace a son.
 
26334
   *  \param old_son The son to replace.
 
26335
   *  \param new_son The new son. */
 
26336
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26337
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
26338
  }
 
26339
};
 
26340
 
 
26341
/*****************************************************************************/
 
26342
/*                                                                           */
 
26343
/*                              Statements                                   */
 
26344
/*                                                                           */
 
26345
/*****************************************************************************/
 
26346
 
 
26347
 
 
26348
#line 26349 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26349
} // closed Puma
 
26350
class CCExprResolve;
 
26351
class CExprResolve;
 
26352
class WinIfExists;
 
26353
class WinImportHandler;
 
26354
class WinMacros;
 
26355
class WinAsm;
 
26356
class WinDeclSpecs;
 
26357
class WinMemberExplSpec;
 
26358
class WinTypeKeywords;
 
26359
class WinFriend;
 
26360
class ExtAC;
 
26361
class ExtACBuilderCoupling;
 
26362
class ExtACSyntaxCoupling;
 
26363
class ExtACTree;
 
26364
class ExtACKeywords;
 
26365
class ExtGnu;
 
26366
class PragmaOnceUnitState;
 
26367
class PragmaOnce;
 
26368
class CMatchSyntax;
 
26369
namespace Puma {
 
26370
 
 
26371
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26372
class CT_Statement : public CTree {
 
26373
#line 26374 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26374
  friend class ::CCExprResolve;
 
26375
  friend class ::CExprResolve;
 
26376
  friend class ::WinIfExists;
 
26377
  friend class ::WinImportHandler;
 
26378
  friend class ::WinMacros;
 
26379
  friend class ::WinAsm;
 
26380
  friend class ::WinDeclSpecs;
 
26381
  friend class ::WinMemberExplSpec;
 
26382
  friend class ::WinTypeKeywords;
 
26383
  friend class ::WinFriend;
 
26384
  friend class ::ExtAC;
 
26385
  friend class ::ExtACBuilderCoupling;
 
26386
  friend class ::ExtACSyntaxCoupling;
 
26387
  friend class ::ExtACTree;
 
26388
  friend class ::ExtACKeywords;
 
26389
  friend class ::ExtGnu;
 
26390
  friend class ::PragmaOnceUnitState;
 
26391
  friend class ::PragmaOnce;
 
26392
  friend class ::CMatchSyntax;
 
26393
 
 
26394
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26395
 
 
26396
protected:
 
26397
  CT_Statement () {}
 
26398
  virtual CT_Statement *IsStatement () { return this; }
 
26399
};
 
26400
 
 
26401
 
 
26402
#line 26403 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26403
} // closed Puma
 
26404
class CCExprResolve;
 
26405
class CExprResolve;
 
26406
class WinIfExists;
 
26407
class WinImportHandler;
 
26408
class WinMacros;
 
26409
class WinAsm;
 
26410
class WinDeclSpecs;
 
26411
class WinMemberExplSpec;
 
26412
class WinTypeKeywords;
 
26413
class WinFriend;
 
26414
class ExtAC;
 
26415
class ExtACBuilderCoupling;
 
26416
class ExtACSyntaxCoupling;
 
26417
class ExtACTree;
 
26418
class ExtACKeywords;
 
26419
class ExtGnu;
 
26420
class PragmaOnceUnitState;
 
26421
class PragmaOnce;
 
26422
class CMatchSyntax;
 
26423
namespace Puma {
 
26424
 
 
26425
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26426
class CT_LabelStmt : public CT_Statement {
 
26427
#line 26428 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26428
  friend class ::CCExprResolve;
 
26429
  friend class ::CExprResolve;
 
26430
  friend class ::WinIfExists;
 
26431
  friend class ::WinImportHandler;
 
26432
  friend class ::WinMacros;
 
26433
  friend class ::WinAsm;
 
26434
  friend class ::WinDeclSpecs;
 
26435
  friend class ::WinMemberExplSpec;
 
26436
  friend class ::WinTypeKeywords;
 
26437
  friend class ::WinFriend;
 
26438
  friend class ::ExtAC;
 
26439
  friend class ::ExtACBuilderCoupling;
 
26440
  friend class ::ExtACSyntaxCoupling;
 
26441
  friend class ::ExtACTree;
 
26442
  friend class ::ExtACKeywords;
 
26443
  friend class ::ExtGnu;
 
26444
  friend class ::PragmaOnceUnitState;
 
26445
  friend class ::PragmaOnce;
 
26446
  friend class ::CMatchSyntax;
 
26447
 
 
26448
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26449
 
 
26450
  CTree *sons[3]; // id, colon, stmt
 
26451
 
 
26452
public:
 
26453
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
 
26454
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
 
26455
  }
 
26456
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26457
  static const char *NodeId ();
 
26458
  /** Get the name of the node. Can be compared with NodeId(). */
 
26459
  const char *NodeName () const { return NodeId (); }
 
26460
  /** Get the number of sons. */
 
26461
  int Sons () const { return 3; }
 
26462
  /** Get the n-th son.
 
26463
   *  \param n The index of the son.
 
26464
   *  \return The n-th son or NULL. */
 
26465
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
26466
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
26467
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
26468
  /** Replace a son.
 
26469
   *  \param old_son The son to replace.
 
26470
   *  \param new_son The new son. */
 
26471
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26472
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
26473
  }
 
26474
};
 
26475
 
 
26476
 
 
26477
#line 26478 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26478
} // closed Puma
 
26479
class CCExprResolve;
 
26480
class CExprResolve;
 
26481
class WinIfExists;
 
26482
class WinImportHandler;
 
26483
class WinMacros;
 
26484
class WinAsm;
 
26485
class WinDeclSpecs;
 
26486
class WinMemberExplSpec;
 
26487
class WinTypeKeywords;
 
26488
class WinFriend;
 
26489
class ExtAC;
 
26490
class ExtACBuilderCoupling;
 
26491
class ExtACSyntaxCoupling;
 
26492
class ExtACTree;
 
26493
class ExtACKeywords;
 
26494
class ExtGnu;
 
26495
class PragmaOnceUnitState;
 
26496
class PragmaOnce;
 
26497
class CMatchSyntax;
 
26498
namespace Puma {
 
26499
 
 
26500
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26501
class CT_DefaultStmt : public CT_Statement {
 
26502
#line 26503 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26503
  friend class ::CCExprResolve;
 
26504
  friend class ::CExprResolve;
 
26505
  friend class ::WinIfExists;
 
26506
  friend class ::WinImportHandler;
 
26507
  friend class ::WinMacros;
 
26508
  friend class ::WinAsm;
 
26509
  friend class ::WinDeclSpecs;
 
26510
  friend class ::WinMemberExplSpec;
 
26511
  friend class ::WinTypeKeywords;
 
26512
  friend class ::WinFriend;
 
26513
  friend class ::ExtAC;
 
26514
  friend class ::ExtACBuilderCoupling;
 
26515
  friend class ::ExtACSyntaxCoupling;
 
26516
  friend class ::ExtACTree;
 
26517
  friend class ::ExtACKeywords;
 
26518
  friend class ::ExtGnu;
 
26519
  friend class ::PragmaOnceUnitState;
 
26520
  friend class ::PragmaOnce;
 
26521
  friend class ::CMatchSyntax;
 
26522
 
 
26523
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26524
 
 
26525
  CTree *sons[3]; // keyword, colon, stmt
 
26526
 
 
26527
public:
 
26528
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
 
26529
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
 
26530
  }
 
26531
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26532
  static const char *NodeId ();
 
26533
  /** Get the name of the node. Can be compared with NodeId(). */
 
26534
  const char *NodeName () const { return NodeId (); }
 
26535
  /** Get the number of sons. */
 
26536
  int Sons () const { return 3; }
 
26537
  /** Get the n-th son.
 
26538
   *  \param n The index of the son.
 
26539
   *  \return The n-th son or NULL. */
 
26540
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
26541
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
26542
  /** Replace a son.
 
26543
   *  \param old_son The son to replace.
 
26544
   *  \param new_son The new son. */
 
26545
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26546
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
26547
  }
 
26548
};
 
26549
 
 
26550
 
 
26551
#line 26552 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26552
} // closed Puma
 
26553
class CCExprResolve;
 
26554
class CExprResolve;
 
26555
class WinIfExists;
 
26556
class WinImportHandler;
 
26557
class WinMacros;
 
26558
class WinAsm;
 
26559
class WinDeclSpecs;
 
26560
class WinMemberExplSpec;
 
26561
class WinTypeKeywords;
 
26562
class WinFriend;
 
26563
class ExtAC;
 
26564
class ExtACBuilderCoupling;
 
26565
class ExtACSyntaxCoupling;
 
26566
class ExtACTree;
 
26567
class ExtACKeywords;
 
26568
class ExtGnu;
 
26569
class PragmaOnceUnitState;
 
26570
class PragmaOnce;
 
26571
class CMatchSyntax;
 
26572
namespace Puma {
 
26573
 
 
26574
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26575
class CT_TryStmt : public CT_Statement {
 
26576
#line 26577 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26577
  friend class ::CCExprResolve;
 
26578
  friend class ::CExprResolve;
 
26579
  friend class ::WinIfExists;
 
26580
  friend class ::WinImportHandler;
 
26581
  friend class ::WinMacros;
 
26582
  friend class ::WinAsm;
 
26583
  friend class ::WinDeclSpecs;
 
26584
  friend class ::WinMemberExplSpec;
 
26585
  friend class ::WinTypeKeywords;
 
26586
  friend class ::WinFriend;
 
26587
  friend class ::ExtAC;
 
26588
  friend class ::ExtACBuilderCoupling;
 
26589
  friend class ::ExtACSyntaxCoupling;
 
26590
  friend class ::ExtACTree;
 
26591
  friend class ::ExtACKeywords;
 
26592
  friend class ::ExtGnu;
 
26593
  friend class ::PragmaOnceUnitState;
 
26594
  friend class ::PragmaOnce;
 
26595
  friend class ::CMatchSyntax;
 
26596
 
 
26597
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26598
 
 
26599
  CTree *sons[3]; // try, stmt, handlers
 
26600
 
 
26601
public:
 
26602
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
 
26603
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
 
26604
  }
 
26605
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26606
  static const char *NodeId ();
 
26607
  /** Get the name of the node. Can be compared with NodeId(). */
 
26608
  const char *NodeName () const { return NodeId (); }
 
26609
  /** Get the number of sons. */
 
26610
  int Sons () const { return 3; }
 
26611
  /** Get the n-th son.
 
26612
   *  \param n The index of the son.
 
26613
   *  \return The n-th son or NULL. */
 
26614
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
26615
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
 
26616
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
26617
  /** Replace a son.
 
26618
   *  \param old_son The son to replace.
 
26619
   *  \param new_son The new son. */
 
26620
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26621
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
26622
  }
 
26623
};
 
26624
 
 
26625
 
 
26626
#line 26627 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26627
} // closed Puma
 
26628
class CCExprResolve;
 
26629
class CExprResolve;
 
26630
class WinIfExists;
 
26631
class WinImportHandler;
 
26632
class WinMacros;
 
26633
class WinAsm;
 
26634
class WinDeclSpecs;
 
26635
class WinMemberExplSpec;
 
26636
class WinTypeKeywords;
 
26637
class WinFriend;
 
26638
class ExtAC;
 
26639
class ExtACBuilderCoupling;
 
26640
class ExtACSyntaxCoupling;
 
26641
class ExtACTree;
 
26642
class ExtACKeywords;
 
26643
class ExtGnu;
 
26644
class PragmaOnceUnitState;
 
26645
class PragmaOnce;
 
26646
class CMatchSyntax;
 
26647
namespace Puma {
 
26648
 
 
26649
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26650
class CT_CaseStmt : public CT_Statement {
 
26651
#line 26652 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26652
  friend class ::CCExprResolve;
 
26653
  friend class ::CExprResolve;
 
26654
  friend class ::WinIfExists;
 
26655
  friend class ::WinImportHandler;
 
26656
  friend class ::WinMacros;
 
26657
  friend class ::WinAsm;
 
26658
  friend class ::WinDeclSpecs;
 
26659
  friend class ::WinMemberExplSpec;
 
26660
  friend class ::WinTypeKeywords;
 
26661
  friend class ::WinFriend;
 
26662
  friend class ::ExtAC;
 
26663
  friend class ::ExtACBuilderCoupling;
 
26664
  friend class ::ExtACSyntaxCoupling;
 
26665
  friend class ::ExtACTree;
 
26666
  friend class ::ExtACKeywords;
 
26667
  friend class ::ExtGnu;
 
26668
  friend class ::PragmaOnceUnitState;
 
26669
  friend class ::PragmaOnce;
 
26670
  friend class ::CMatchSyntax;
 
26671
 
 
26672
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26673
 
 
26674
  CTree *sons[4]; // keyword, expr, colon, stmt
 
26675
 
 
26676
public:
 
26677
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
 
26678
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
26679
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
 
26680
  }
 
26681
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26682
  static const char *NodeId ();
 
26683
  /** Get the name of the node. Can be compared with NodeId(). */
 
26684
  const char *NodeName () const { return NodeId (); }
 
26685
  /** Get the number of sons. */
 
26686
  int Sons () const { return 4; }
 
26687
  /** Get the n-th son.
 
26688
   *  \param n The index of the son.
 
26689
   *  \return The n-th son or NULL. */
 
26690
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
26691
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
 
26692
  CTree *Expr () const { return sons[1]; }
 
26693
  /** Replace a son.
 
26694
   *  \param old_son The son to replace.
 
26695
   *  \param new_son The new son. */
 
26696
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26697
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
26698
  }
 
26699
};
 
26700
 
 
26701
 
 
26702
#line 26703 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26703
} // closed Puma
 
26704
class CCExprResolve;
 
26705
class CExprResolve;
 
26706
class WinIfExists;
 
26707
class WinImportHandler;
 
26708
class WinMacros;
 
26709
class WinAsm;
 
26710
class WinDeclSpecs;
 
26711
class WinMemberExplSpec;
 
26712
class WinTypeKeywords;
 
26713
class WinFriend;
 
26714
class ExtAC;
 
26715
class ExtACBuilderCoupling;
 
26716
class ExtACSyntaxCoupling;
 
26717
class ExtACTree;
 
26718
class ExtACKeywords;
 
26719
class ExtGnu;
 
26720
class PragmaOnceUnitState;
 
26721
class PragmaOnce;
 
26722
class CMatchSyntax;
 
26723
namespace Puma {
 
26724
 
 
26725
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26726
class CT_ExprStmt : public CT_Statement {
 
26727
#line 26728 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26728
  friend class ::CCExprResolve;
 
26729
  friend class ::CExprResolve;
 
26730
  friend class ::WinIfExists;
 
26731
  friend class ::WinImportHandler;
 
26732
  friend class ::WinMacros;
 
26733
  friend class ::WinAsm;
 
26734
  friend class ::WinDeclSpecs;
 
26735
  friend class ::WinMemberExplSpec;
 
26736
  friend class ::WinTypeKeywords;
 
26737
  friend class ::WinFriend;
 
26738
  friend class ::ExtAC;
 
26739
  friend class ::ExtACBuilderCoupling;
 
26740
  friend class ::ExtACSyntaxCoupling;
 
26741
  friend class ::ExtACTree;
 
26742
  friend class ::ExtACKeywords;
 
26743
  friend class ::ExtGnu;
 
26744
  friend class ::PragmaOnceUnitState;
 
26745
  friend class ::PragmaOnce;
 
26746
  friend class ::CMatchSyntax;
 
26747
 
 
26748
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26749
 
 
26750
  CTree *sons[2]; // expr, semi_colon
 
26751
 
 
26752
public:
 
26753
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
26754
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26755
  static const char *NodeId ();
 
26756
  /** Get the name of the node. Can be compared with NodeId(). */
 
26757
  const char *NodeName () const { return NodeId (); }
 
26758
  /** Get the number of sons. */
 
26759
  int Sons () const { return CTree::Sons (sons, 2); }
 
26760
  /** Get the n-th son.
 
26761
   *  \param n The index of the son.
 
26762
   *  \return The n-th son or NULL. */
 
26763
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
26764
  CTree *Expr () const { return sons[0]; }
 
26765
  /** Replace a son.
 
26766
   *  \param old_son The son to replace.
 
26767
   *  \param new_son The new son. */
 
26768
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26769
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
26770
  }
 
26771
};
 
26772
 
 
26773
 
 
26774
#line 26775 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26775
} // closed Puma
 
26776
class CCExprResolve;
 
26777
class CExprResolve;
 
26778
class WinIfExists;
 
26779
class WinImportHandler;
 
26780
class WinMacros;
 
26781
class WinAsm;
 
26782
class WinDeclSpecs;
 
26783
class WinMemberExplSpec;
 
26784
class WinTypeKeywords;
 
26785
class WinFriend;
 
26786
class ExtAC;
 
26787
class ExtACBuilderCoupling;
 
26788
class ExtACSyntaxCoupling;
 
26789
class ExtACTree;
 
26790
class ExtACKeywords;
 
26791
class ExtGnu;
 
26792
class PragmaOnceUnitState;
 
26793
class PragmaOnce;
 
26794
class CMatchSyntax;
 
26795
namespace Puma {
 
26796
 
 
26797
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26798
class CT_DeclStmt : public CT_Statement {
 
26799
#line 26800 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26800
  friend class ::CCExprResolve;
 
26801
  friend class ::CExprResolve;
 
26802
  friend class ::WinIfExists;
 
26803
  friend class ::WinImportHandler;
 
26804
  friend class ::WinMacros;
 
26805
  friend class ::WinAsm;
 
26806
  friend class ::WinDeclSpecs;
 
26807
  friend class ::WinMemberExplSpec;
 
26808
  friend class ::WinTypeKeywords;
 
26809
  friend class ::WinFriend;
 
26810
  friend class ::ExtAC;
 
26811
  friend class ::ExtACBuilderCoupling;
 
26812
  friend class ::ExtACSyntaxCoupling;
 
26813
  friend class ::ExtACTree;
 
26814
  friend class ::ExtACKeywords;
 
26815
  friend class ::ExtGnu;
 
26816
  friend class ::PragmaOnceUnitState;
 
26817
  friend class ::PragmaOnce;
 
26818
  friend class ::CMatchSyntax;
 
26819
 
 
26820
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26821
 
 
26822
  CTree *_decl;
 
26823
 
 
26824
public:
 
26825
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
26826
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26827
  static const char *NodeId ();
 
26828
  /** Get the name of the node. Can be compared with NodeId(). */
 
26829
  const char *NodeName () const { return NodeId (); }
 
26830
  /** Get the number of sons. */
 
26831
  int Sons () const { return 1; }
 
26832
  /** Get the n-th son.
 
26833
   *  \param n The index of the son.
 
26834
   *  \return The n-th son or NULL. */
 
26835
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
26836
  /** Replace a son.
 
26837
   *  \param old_son The son to replace.
 
26838
   *  \param new_son The new son. */
 
26839
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
26840
   { CTree::ReplaceSon (_decl, old_son, new_son); }
 
26841
};
 
26842
 
 
26843
 
 
26844
#line 26845 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26845
} // closed Puma
 
26846
class CCExprResolve;
 
26847
class CExprResolve;
 
26848
class WinIfExists;
 
26849
class WinImportHandler;
 
26850
class WinMacros;
 
26851
class WinAsm;
 
26852
class WinDeclSpecs;
 
26853
class WinMemberExplSpec;
 
26854
class WinTypeKeywords;
 
26855
class WinFriend;
 
26856
class ExtAC;
 
26857
class ExtACBuilderCoupling;
 
26858
class ExtACSyntaxCoupling;
 
26859
class ExtACTree;
 
26860
class ExtACKeywords;
 
26861
class ExtGnu;
 
26862
class PragmaOnceUnitState;
 
26863
class PragmaOnce;
 
26864
class CMatchSyntax;
 
26865
namespace Puma {
 
26866
 
 
26867
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26868
class CT_SwitchStmt : public CT_Statement, public CSemScope {
 
26869
#line 26870 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26870
  friend class ::CCExprResolve;
 
26871
  friend class ::CExprResolve;
 
26872
  friend class ::WinIfExists;
 
26873
  friend class ::WinImportHandler;
 
26874
  friend class ::WinMacros;
 
26875
  friend class ::WinAsm;
 
26876
  friend class ::WinDeclSpecs;
 
26877
  friend class ::WinMemberExplSpec;
 
26878
  friend class ::WinTypeKeywords;
 
26879
  friend class ::WinFriend;
 
26880
  friend class ::ExtAC;
 
26881
  friend class ::ExtACBuilderCoupling;
 
26882
  friend class ::ExtACSyntaxCoupling;
 
26883
  friend class ::ExtACTree;
 
26884
  friend class ::ExtACKeywords;
 
26885
  friend class ::ExtGnu;
 
26886
  friend class ::PragmaOnceUnitState;
 
26887
  friend class ::PragmaOnce;
 
26888
  friend class ::CMatchSyntax;
 
26889
 
 
26890
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26891
 
 
26892
  CTree *sons[5]; // keyword, open, cond, close, stmt
 
26893
 
 
26894
public:
 
26895
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
26896
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
26897
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
26898
  }
 
26899
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26900
  static const char *NodeId ();
 
26901
  /** Get the name of the node. Can be compared with NodeId(). */
 
26902
  const char *NodeName () const { return NodeId (); }
 
26903
  /** Get the number of sons. */
 
26904
  int Sons () const { return 5; }
 
26905
  /** Get the n-th son.
 
26906
   *  \param n The index of the son.
 
26907
   *  \return The n-th son or NULL. */
 
26908
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
26909
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
26910
  CTree *Condition () const { return sons[2]; }
 
26911
  /** Replace a son.
 
26912
   *  \param old_son The son to replace.
 
26913
   *  \param new_son The new son. */
 
26914
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26915
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
26916
  }
 
26917
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
26918
};
 
26919
 
 
26920
 
 
26921
#line 26922 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26922
} // closed Puma
 
26923
class CCExprResolve;
 
26924
class CExprResolve;
 
26925
class WinIfExists;
 
26926
class WinImportHandler;
 
26927
class WinMacros;
 
26928
class WinAsm;
 
26929
class WinDeclSpecs;
 
26930
class WinMemberExplSpec;
 
26931
class WinTypeKeywords;
 
26932
class WinFriend;
 
26933
class ExtAC;
 
26934
class ExtACBuilderCoupling;
 
26935
class ExtACSyntaxCoupling;
 
26936
class ExtACTree;
 
26937
class ExtACKeywords;
 
26938
class ExtGnu;
 
26939
class PragmaOnceUnitState;
 
26940
class PragmaOnce;
 
26941
class CMatchSyntax;
 
26942
namespace Puma {
 
26943
 
 
26944
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26945
class CT_IfStmt : public CT_Statement, public CSemScope {
 
26946
#line 26947 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26947
  friend class ::CCExprResolve;
 
26948
  friend class ::CExprResolve;
 
26949
  friend class ::WinIfExists;
 
26950
  friend class ::WinImportHandler;
 
26951
  friend class ::WinMacros;
 
26952
  friend class ::WinAsm;
 
26953
  friend class ::WinDeclSpecs;
 
26954
  friend class ::WinMemberExplSpec;
 
26955
  friend class ::WinTypeKeywords;
 
26956
  friend class ::WinFriend;
 
26957
  friend class ::ExtAC;
 
26958
  friend class ::ExtACBuilderCoupling;
 
26959
  friend class ::ExtACSyntaxCoupling;
 
26960
  friend class ::ExtACTree;
 
26961
  friend class ::ExtACKeywords;
 
26962
  friend class ::ExtGnu;
 
26963
  friend class ::PragmaOnceUnitState;
 
26964
  friend class ::PragmaOnce;
 
26965
  friend class ::CMatchSyntax;
 
26966
 
 
26967
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26968
 
 
26969
  CTree *sons[5]; // keyword, open, cond, close, stmt
 
26970
 
 
26971
public:
 
26972
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
26973
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
26974
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
26975
  }
 
26976
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26977
  static const char *NodeId ();
 
26978
  /** Get the name of the node. Can be compared with NodeId(). */
 
26979
  const char *NodeName () const { return NodeId (); }
 
26980
  /** Get the number of sons. */
 
26981
  int Sons () const { return 5; }
 
26982
  /** Get the n-th son.
 
26983
   *  \param n The index of the son.
 
26984
   *  \return The n-th son or NULL. */
 
26985
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
26986
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
26987
  CTree *Condition () const { return sons[2]; }
 
26988
  /** Replace a son.
 
26989
   *  \param old_son The son to replace.
 
26990
   *  \param new_son The new son. */
 
26991
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26992
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
26993
  }
 
26994
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
26995
};
 
26996
 
 
26997
 
 
26998
#line 26999 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
26999
} // closed Puma
 
27000
class CCExprResolve;
 
27001
class CExprResolve;
 
27002
class WinIfExists;
 
27003
class WinImportHandler;
 
27004
class WinMacros;
 
27005
class WinAsm;
 
27006
class WinDeclSpecs;
 
27007
class WinMemberExplSpec;
 
27008
class WinTypeKeywords;
 
27009
class WinFriend;
 
27010
class ExtAC;
 
27011
class ExtACBuilderCoupling;
 
27012
class ExtACSyntaxCoupling;
 
27013
class ExtACTree;
 
27014
class ExtACKeywords;
 
27015
class ExtGnu;
 
27016
class PragmaOnceUnitState;
 
27017
class PragmaOnce;
 
27018
class CMatchSyntax;
 
27019
namespace Puma {
 
27020
 
 
27021
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27022
class CT_IfElseStmt : public CT_Statement, public CSemScope {
 
27023
#line 27024 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27024
  friend class ::CCExprResolve;
 
27025
  friend class ::CExprResolve;
 
27026
  friend class ::WinIfExists;
 
27027
  friend class ::WinImportHandler;
 
27028
  friend class ::WinMacros;
 
27029
  friend class ::WinAsm;
 
27030
  friend class ::WinDeclSpecs;
 
27031
  friend class ::WinMemberExplSpec;
 
27032
  friend class ::WinTypeKeywords;
 
27033
  friend class ::WinFriend;
 
27034
  friend class ::ExtAC;
 
27035
  friend class ::ExtACBuilderCoupling;
 
27036
  friend class ::ExtACSyntaxCoupling;
 
27037
  friend class ::ExtACTree;
 
27038
  friend class ::ExtACKeywords;
 
27039
  friend class ::ExtGnu;
 
27040
  friend class ::PragmaOnceUnitState;
 
27041
  friend class ::PragmaOnce;
 
27042
  friend class ::CMatchSyntax;
 
27043
 
 
27044
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27045
 
 
27046
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
 
27047
 
 
27048
public:
 
27049
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
 
27050
                 CTree *is, CTree *e, CTree *es) {
 
27051
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
27052
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
27053
    AddSon (sons[6], es); 
 
27054
  }
 
27055
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27056
  static const char *NodeId ();
 
27057
  /** Get the name of the node. Can be compared with NodeId(). */
 
27058
  const char *NodeName () const { return NodeId (); }
 
27059
  /** Get the number of sons. */
 
27060
  int Sons () const { return 7; }
 
27061
  /** Get the n-th son.
 
27062
   *  \param n The index of the son.
 
27063
   *  \return The n-th son or NULL. */
 
27064
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
27065
  CTree *Condition () const { return sons[2]; }
 
27066
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
 
27067
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
27068
  /** Replace a son.
 
27069
   *  \param old_son The son to replace.
 
27070
   *  \param new_son The new son. */
 
27071
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
27072
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
27073
  }
 
27074
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
27075
};
 
27076
 
 
27077
 
 
27078
#line 27079 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27079
} // closed Puma
 
27080
class CCExprResolve;
 
27081
class CExprResolve;
 
27082
class WinIfExists;
 
27083
class WinImportHandler;
 
27084
class WinMacros;
 
27085
class WinAsm;
 
27086
class WinDeclSpecs;
 
27087
class WinMemberExplSpec;
 
27088
class WinTypeKeywords;
 
27089
class WinFriend;
 
27090
class ExtAC;
 
27091
class ExtACBuilderCoupling;
 
27092
class ExtACSyntaxCoupling;
 
27093
class ExtACTree;
 
27094
class ExtACKeywords;
 
27095
class ExtGnu;
 
27096
class PragmaOnceUnitState;
 
27097
class PragmaOnce;
 
27098
class CMatchSyntax;
 
27099
namespace Puma {
 
27100
 
 
27101
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27102
class CT_BreakStmt : public CT_Statement {
 
27103
#line 27104 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27104
  friend class ::CCExprResolve;
 
27105
  friend class ::CExprResolve;
 
27106
  friend class ::WinIfExists;
 
27107
  friend class ::WinImportHandler;
 
27108
  friend class ::WinMacros;
 
27109
  friend class ::WinAsm;
 
27110
  friend class ::WinDeclSpecs;
 
27111
  friend class ::WinMemberExplSpec;
 
27112
  friend class ::WinTypeKeywords;
 
27113
  friend class ::WinFriend;
 
27114
  friend class ::ExtAC;
 
27115
  friend class ::ExtACBuilderCoupling;
 
27116
  friend class ::ExtACSyntaxCoupling;
 
27117
  friend class ::ExtACTree;
 
27118
  friend class ::ExtACKeywords;
 
27119
  friend class ::ExtGnu;
 
27120
  friend class ::PragmaOnceUnitState;
 
27121
  friend class ::PragmaOnce;
 
27122
  friend class ::CMatchSyntax;
 
27123
 
 
27124
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27125
 
 
27126
  CTree *sons[2]; // key, semi_colon
 
27127
 
 
27128
public:
 
27129
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
27130
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27131
  static const char *NodeId ();
 
27132
  /** Get the name of the node. Can be compared with NodeId(). */
 
27133
  const char *NodeName () const { return NodeId (); }
 
27134
  /** Get the number of sons. */
 
27135
  int Sons () const { return 2; }
 
27136
  /** Get the n-th son.
 
27137
   *  \param n The index of the son.
 
27138
   *  \return The n-th son or NULL. */
 
27139
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
27140
  /** Replace a son.
 
27141
   *  \param old_son The son to replace.
 
27142
   *  \param new_son The new son. */
 
27143
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
27144
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
27145
  }
 
27146
};
 
27147
 
 
27148
 
 
27149
#line 27150 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27150
} // closed Puma
 
27151
class CCExprResolve;
 
27152
class CExprResolve;
 
27153
class WinIfExists;
 
27154
class WinImportHandler;
 
27155
class WinMacros;
 
27156
class WinAsm;
 
27157
class WinDeclSpecs;
 
27158
class WinMemberExplSpec;
 
27159
class WinTypeKeywords;
 
27160
class WinFriend;
 
27161
class ExtAC;
 
27162
class ExtACBuilderCoupling;
 
27163
class ExtACSyntaxCoupling;
 
27164
class ExtACTree;
 
27165
class ExtACKeywords;
 
27166
class ExtGnu;
 
27167
class PragmaOnceUnitState;
 
27168
class PragmaOnce;
 
27169
class CMatchSyntax;
 
27170
namespace Puma {
 
27171
 
 
27172
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27173
class CT_ContinueStmt : public CT_Statement {
 
27174
#line 27175 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27175
  friend class ::CCExprResolve;
 
27176
  friend class ::CExprResolve;
 
27177
  friend class ::WinIfExists;
 
27178
  friend class ::WinImportHandler;
 
27179
  friend class ::WinMacros;
 
27180
  friend class ::WinAsm;
 
27181
  friend class ::WinDeclSpecs;
 
27182
  friend class ::WinMemberExplSpec;
 
27183
  friend class ::WinTypeKeywords;
 
27184
  friend class ::WinFriend;
 
27185
  friend class ::ExtAC;
 
27186
  friend class ::ExtACBuilderCoupling;
 
27187
  friend class ::ExtACSyntaxCoupling;
 
27188
  friend class ::ExtACTree;
 
27189
  friend class ::ExtACKeywords;
 
27190
  friend class ::ExtGnu;
 
27191
  friend class ::PragmaOnceUnitState;
 
27192
  friend class ::PragmaOnce;
 
27193
  friend class ::CMatchSyntax;
 
27194
 
 
27195
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27196
 
 
27197
  CTree *sons[2]; // key, semi_colon
 
27198
 
 
27199
public:
 
27200
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
27201
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27202
  static const char *NodeId ();
 
27203
  /** Get the name of the node. Can be compared with NodeId(). */
 
27204
  const char *NodeName () const { return NodeId (); }
 
27205
  /** Get the number of sons. */
 
27206
  int Sons () const { return 2; }
 
27207
  /** Get the n-th son.
 
27208
   *  \param n The index of the son.
 
27209
   *  \return The n-th son or NULL. */
 
27210
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
27211
  /** Replace a son.
 
27212
   *  \param old_son The son to replace.
 
27213
   *  \param new_son The new son. */
 
27214
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
27215
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
27216
  }
 
27217
};
 
27218
 
 
27219
 
 
27220
#line 27221 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27221
} // closed Puma
 
27222
class CCExprResolve;
 
27223
class CExprResolve;
 
27224
class WinIfExists;
 
27225
class WinImportHandler;
 
27226
class WinMacros;
 
27227
class WinAsm;
 
27228
class WinDeclSpecs;
 
27229
class WinMemberExplSpec;
 
27230
class WinTypeKeywords;
 
27231
class WinFriend;
 
27232
class ExtAC;
 
27233
class ExtACBuilderCoupling;
 
27234
class ExtACSyntaxCoupling;
 
27235
class ExtACTree;
 
27236
class ExtACKeywords;
 
27237
class ExtGnu;
 
27238
class PragmaOnceUnitState;
 
27239
class PragmaOnce;
 
27240
class CMatchSyntax;
 
27241
namespace Puma {
 
27242
 
 
27243
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27244
class CT_GotoStmt : public CT_Statement {
 
27245
#line 27246 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27246
  friend class ::CCExprResolve;
 
27247
  friend class ::CExprResolve;
 
27248
  friend class ::WinIfExists;
 
27249
  friend class ::WinImportHandler;
 
27250
  friend class ::WinMacros;
 
27251
  friend class ::WinAsm;
 
27252
  friend class ::WinDeclSpecs;
 
27253
  friend class ::WinMemberExplSpec;
 
27254
  friend class ::WinTypeKeywords;
 
27255
  friend class ::WinFriend;
 
27256
  friend class ::ExtAC;
 
27257
  friend class ::ExtACBuilderCoupling;
 
27258
  friend class ::ExtACSyntaxCoupling;
 
27259
  friend class ::ExtACTree;
 
27260
  friend class ::ExtACKeywords;
 
27261
  friend class ::ExtGnu;
 
27262
  friend class ::PragmaOnceUnitState;
 
27263
  friend class ::PragmaOnce;
 
27264
  friend class ::CMatchSyntax;
 
27265
 
 
27266
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27267
 
 
27268
  CTree *sons[3]; // key, label, semi_colon
 
27269
 
 
27270
public:
 
27271
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
 
27272
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
 
27273
  }
 
27274
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27275
  static const char *NodeId ();
 
27276
  /** Get the name of the node. Can be compared with NodeId(). */
 
27277
  const char *NodeName () const { return NodeId (); }
 
27278
  /** Get the number of sons. */
 
27279
  int Sons () const { return 3; }
 
27280
  /** Get the n-th son.
 
27281
   *  \param n The index of the son.
 
27282
   *  \return The n-th son or NULL. */
 
27283
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
27284
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
27285
  /** Replace a son.
 
27286
   *  \param old_son The son to replace.
 
27287
   *  \param new_son The new son. */
 
27288
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
27289
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
27290
  }
 
27291
};
 
27292
 
 
27293
 
 
27294
#line 27295 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27295
} // closed Puma
 
27296
class CCExprResolve;
 
27297
class CExprResolve;
 
27298
class WinIfExists;
 
27299
class WinImportHandler;
 
27300
class WinMacros;
 
27301
class WinAsm;
 
27302
class WinDeclSpecs;
 
27303
class WinMemberExplSpec;
 
27304
class WinTypeKeywords;
 
27305
class WinFriend;
 
27306
class ExtAC;
 
27307
class ExtACBuilderCoupling;
 
27308
class ExtACSyntaxCoupling;
 
27309
class ExtACTree;
 
27310
class ExtACKeywords;
 
27311
class ExtGnu;
 
27312
class PragmaOnceUnitState;
 
27313
class PragmaOnce;
 
27314
class CMatchSyntax;
 
27315
namespace Puma {
 
27316
 
 
27317
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27318
class CT_ReturnStmt : public CT_Statement {
 
27319
#line 27320 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27320
  friend class ::CCExprResolve;
 
27321
  friend class ::CExprResolve;
 
27322
  friend class ::WinIfExists;
 
27323
  friend class ::WinImportHandler;
 
27324
  friend class ::WinMacros;
 
27325
  friend class ::WinAsm;
 
27326
  friend class ::WinDeclSpecs;
 
27327
  friend class ::WinMemberExplSpec;
 
27328
  friend class ::WinTypeKeywords;
 
27329
  friend class ::WinFriend;
 
27330
  friend class ::ExtAC;
 
27331
  friend class ::ExtACBuilderCoupling;
 
27332
  friend class ::ExtACSyntaxCoupling;
 
27333
  friend class ::ExtACTree;
 
27334
  friend class ::ExtACKeywords;
 
27335
  friend class ::ExtGnu;
 
27336
  friend class ::PragmaOnceUnitState;
 
27337
  friend class ::PragmaOnce;
 
27338
  friend class ::CMatchSyntax;
 
27339
 
 
27340
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27341
 
 
27342
  CTree *sons[3]; // key, expr, semi_colon
 
27343
 
 
27344
public:
 
27345
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
 
27346
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
 
27347
  }
 
27348
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27349
  static const char *NodeId ();
 
27350
  /** Get the name of the node. Can be compared with NodeId(). */
 
27351
  const char *NodeName () const { return NodeId (); }
 
27352
  /** Get the number of sons. */
 
27353
  int Sons () const { return CTree::Sons (sons, 3); }
 
27354
  /** Get the n-th son.
 
27355
   *  \param n The index of the son.
 
27356
   *  \return The n-th son or NULL. */
 
27357
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
27358
  CTree *Expr () const { return sons[1]; }
 
27359
  /** Replace a son.
 
27360
   *  \param old_son The son to replace.
 
27361
   *  \param new_son The new son. */
 
27362
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
27363
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
27364
  }
 
27365
};
 
27366
 
 
27367
 
 
27368
#line 27369 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27369
} // closed Puma
 
27370
class CCExprResolve;
 
27371
class CExprResolve;
 
27372
class WinIfExists;
 
27373
class WinImportHandler;
 
27374
class WinMacros;
 
27375
class WinAsm;
 
27376
class WinDeclSpecs;
 
27377
class WinMemberExplSpec;
 
27378
class WinTypeKeywords;
 
27379
class WinFriend;
 
27380
class ExtAC;
 
27381
class ExtACBuilderCoupling;
 
27382
class ExtACSyntaxCoupling;
 
27383
class ExtACTree;
 
27384
class ExtACKeywords;
 
27385
class ExtGnu;
 
27386
class PragmaOnceUnitState;
 
27387
class PragmaOnce;
 
27388
class CMatchSyntax;
 
27389
namespace Puma {
 
27390
 
 
27391
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27392
class CT_WhileStmt : public CT_Statement, public CSemScope {
 
27393
#line 27394 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27394
  friend class ::CCExprResolve;
 
27395
  friend class ::CExprResolve;
 
27396
  friend class ::WinIfExists;
 
27397
  friend class ::WinImportHandler;
 
27398
  friend class ::WinMacros;
 
27399
  friend class ::WinAsm;
 
27400
  friend class ::WinDeclSpecs;
 
27401
  friend class ::WinMemberExplSpec;
 
27402
  friend class ::WinTypeKeywords;
 
27403
  friend class ::WinFriend;
 
27404
  friend class ::ExtAC;
 
27405
  friend class ::ExtACBuilderCoupling;
 
27406
  friend class ::ExtACSyntaxCoupling;
 
27407
  friend class ::ExtACTree;
 
27408
  friend class ::ExtACKeywords;
 
27409
  friend class ::ExtGnu;
 
27410
  friend class ::PragmaOnceUnitState;
 
27411
  friend class ::PragmaOnce;
 
27412
  friend class ::CMatchSyntax;
 
27413
 
 
27414
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27415
 
 
27416
  CTree *sons[5]; // key, open, cond, close, stmt
 
27417
 
 
27418
public:
 
27419
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
27420
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
27421
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
27422
  }
 
27423
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27424
  static const char *NodeId ();
 
27425
  /** Get the name of the node. Can be compared with NodeId(). */
 
27426
  const char *NodeName () const { return NodeId (); }
 
27427
  /** Get the number of sons. */
 
27428
  int Sons () const { return 5; }
 
27429
  /** Get the n-th son.
 
27430
   *  \param n The index of the son.
 
27431
   *  \return The n-th son or NULL. */
 
27432
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
27433
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
27434
  CTree *Condition () const { return sons[2]; }
 
27435
  /** Replace a son.
 
27436
   *  \param old_son The son to replace.
 
27437
   *  \param new_son The new son. */
 
27438
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
27439
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
27440
  }
 
27441
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
27442
};
 
27443
 
 
27444
 
 
27445
#line 27446 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27446
} // closed Puma
 
27447
class CCExprResolve;
 
27448
class CExprResolve;
 
27449
class WinIfExists;
 
27450
class WinImportHandler;
 
27451
class WinMacros;
 
27452
class WinAsm;
 
27453
class WinDeclSpecs;
 
27454
class WinMemberExplSpec;
 
27455
class WinTypeKeywords;
 
27456
class WinFriend;
 
27457
class ExtAC;
 
27458
class ExtACBuilderCoupling;
 
27459
class ExtACSyntaxCoupling;
 
27460
class ExtACTree;
 
27461
class ExtACKeywords;
 
27462
class ExtGnu;
 
27463
class PragmaOnceUnitState;
 
27464
class PragmaOnce;
 
27465
class CMatchSyntax;
 
27466
namespace Puma {
 
27467
 
 
27468
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27469
class CT_DoStmt : public CT_Statement {
 
27470
#line 27471 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27471
  friend class ::CCExprResolve;
 
27472
  friend class ::CExprResolve;
 
27473
  friend class ::WinIfExists;
 
27474
  friend class ::WinImportHandler;
 
27475
  friend class ::WinMacros;
 
27476
  friend class ::WinAsm;
 
27477
  friend class ::WinDeclSpecs;
 
27478
  friend class ::WinMemberExplSpec;
 
27479
  friend class ::WinTypeKeywords;
 
27480
  friend class ::WinFriend;
 
27481
  friend class ::ExtAC;
 
27482
  friend class ::ExtACBuilderCoupling;
 
27483
  friend class ::ExtACSyntaxCoupling;
 
27484
  friend class ::ExtACTree;
 
27485
  friend class ::ExtACKeywords;
 
27486
  friend class ::ExtGnu;
 
27487
  friend class ::PragmaOnceUnitState;
 
27488
  friend class ::PragmaOnce;
 
27489
  friend class ::CMatchSyntax;
 
27490
 
 
27491
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27492
 
 
27493
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
 
27494
 
 
27495
public:
 
27496
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
 
27497
             CTree *c, CTree *sc) {
 
27498
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
27499
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
27500
    AddSon (sons[6], sc); 
 
27501
  }
 
27502
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27503
  static const char *NodeId ();
 
27504
  /** Get the name of the node. Can be compared with NodeId(). */
 
27505
  const char *NodeName () const { return NodeId (); }
 
27506
  /** Get the number of sons. */
 
27507
  int Sons () const { return 7; }
 
27508
  /** Get the n-th son.
 
27509
   *  \param n The index of the son.
 
27510
   *  \return The n-th son or NULL. */
 
27511
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
27512
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
 
27513
  CTree *Expr () const { return sons[4]; }
 
27514
  /** Replace a son.
 
27515
   *  \param old_son The son to replace.
 
27516
   *  \param new_son The new son. */
 
27517
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
27518
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
27519
  }
 
27520
};
 
27521
 
 
27522
 
 
27523
#line 27524 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27524
} // closed Puma
 
27525
class CCExprResolve;
 
27526
class CExprResolve;
 
27527
class WinIfExists;
 
27528
class WinImportHandler;
 
27529
class WinMacros;
 
27530
class WinAsm;
 
27531
class WinDeclSpecs;
 
27532
class WinMemberExplSpec;
 
27533
class WinTypeKeywords;
 
27534
class WinFriend;
 
27535
class ExtAC;
 
27536
class ExtACBuilderCoupling;
 
27537
class ExtACSyntaxCoupling;
 
27538
class ExtACTree;
 
27539
class ExtACKeywords;
 
27540
class ExtGnu;
 
27541
class PragmaOnceUnitState;
 
27542
class PragmaOnce;
 
27543
class CMatchSyntax;
 
27544
namespace Puma {
 
27545
 
 
27546
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27547
class CT_ForStmt : public CT_Statement, public CSemScope {
 
27548
#line 27549 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27549
  friend class ::CCExprResolve;
 
27550
  friend class ::CExprResolve;
 
27551
  friend class ::WinIfExists;
 
27552
  friend class ::WinImportHandler;
 
27553
  friend class ::WinMacros;
 
27554
  friend class ::WinAsm;
 
27555
  friend class ::WinDeclSpecs;
 
27556
  friend class ::WinMemberExplSpec;
 
27557
  friend class ::WinTypeKeywords;
 
27558
  friend class ::WinFriend;
 
27559
  friend class ::ExtAC;
 
27560
  friend class ::ExtACBuilderCoupling;
 
27561
  friend class ::ExtACSyntaxCoupling;
 
27562
  friend class ::ExtACTree;
 
27563
  friend class ::ExtACKeywords;
 
27564
  friend class ::ExtGnu;
 
27565
  friend class ::PragmaOnceUnitState;
 
27566
  friend class ::PragmaOnce;
 
27567
  friend class ::CMatchSyntax;
 
27568
 
 
27569
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27570
 
 
27571
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
 
27572
 
 
27573
public:
 
27574
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
 
27575
              CTree *e, CTree *c, CTree *stmt) {
 
27576
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
27577
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
27578
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
 
27579
  }
 
27580
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27581
  static const char *NodeId ();
 
27582
  /** Get the name of the node. Can be compared with NodeId(). */
 
27583
  const char *NodeName () const { return NodeId (); }
 
27584
  /** Get the number of sons. */
 
27585
  int Sons () const { return CTree::Sons (sons, 8); }
 
27586
  /** Get the n-th son.
 
27587
   *  \param n The index of the son.
 
27588
   *  \return The n-th son or NULL. */
 
27589
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
 
27590
  CTree *InitStmt () const { return sons[2]; }
 
27591
  CTree *Condition () const { return sons[3]; }
 
27592
  CTree *Expr () const { return sons[5]; }
 
27593
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
27594
  /** Replace a son.
 
27595
   *  \param old_son The son to replace.
 
27596
   *  \param new_son The new son. */
 
27597
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
27598
    CTree::ReplaceSon (sons, 8, old_son, new_son);
 
27599
  }
 
27600
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
27601
};
 
27602
 
 
27603
 
 
27604
#line 27605 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27605
} // closed Puma
 
27606
class CCExprResolve;
 
27607
class CExprResolve;
 
27608
class WinIfExists;
 
27609
class WinImportHandler;
 
27610
class WinMacros;
 
27611
class WinAsm;
 
27612
class WinDeclSpecs;
 
27613
class WinMemberExplSpec;
 
27614
class WinTypeKeywords;
 
27615
class WinFriend;
 
27616
class ExtAC;
 
27617
class ExtACBuilderCoupling;
 
27618
class ExtACSyntaxCoupling;
 
27619
class ExtACTree;
 
27620
class ExtACKeywords;
 
27621
class ExtGnu;
 
27622
class PragmaOnceUnitState;
 
27623
class PragmaOnce;
 
27624
class CMatchSyntax;
 
27625
namespace Puma {
 
27626
 
 
27627
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27628
class CT_Condition : public CT_Decl, public CSemObject {
 
27629
#line 27630 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27630
  friend class ::CCExprResolve;
 
27631
  friend class ::CExprResolve;
 
27632
  friend class ::WinIfExists;
 
27633
  friend class ::WinImportHandler;
 
27634
  friend class ::WinMacros;
 
27635
  friend class ::WinAsm;
 
27636
  friend class ::WinDeclSpecs;
 
27637
  friend class ::WinMemberExplSpec;
 
27638
  friend class ::WinTypeKeywords;
 
27639
  friend class ::WinFriend;
 
27640
  friend class ::ExtAC;
 
27641
  friend class ::ExtACBuilderCoupling;
 
27642
  friend class ::ExtACSyntaxCoupling;
 
27643
  friend class ::ExtACTree;
 
27644
  friend class ::ExtACKeywords;
 
27645
  friend class ::ExtGnu;
 
27646
  friend class ::PragmaOnceUnitState;
 
27647
  friend class ::PragmaOnce;
 
27648
  friend class ::CMatchSyntax;
 
27649
 
 
27650
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27651
 
 
27652
  CTree *sons[3]; // declspecs, declarator, init
 
27653
 
 
27654
public:
 
27655
  CT_Condition (CTree *dsl, CTree *d) {
 
27656
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
 
27657
  }
 
27658
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27659
  static const char *NodeId ();
 
27660
  /** Get the name of the node. Can be compared with NodeId(). */
 
27661
  const char *NodeName () const { return NodeId (); }
 
27662
  /** Get the number of sons. */
 
27663
  int Sons () const { return CTree::Sons (sons, 3); }
 
27664
  /** Get the n-th son.
 
27665
   *  \param n The index of the son.
 
27666
   *  \return The n-th son or NULL. */
 
27667
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
27668
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
27669
  CTree *Declarator () const { return sons[1]; }
 
27670
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
27671
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
27672
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
27673
  /** Replace a son.
 
27674
   *  \param old_son The son to replace.
 
27675
   *  \param new_son The new son. */
 
27676
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
27677
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
27678
  }
 
27679
};
 
27680
 
 
27681
/*****************************************************************************/
 
27682
/*                                                                           */
 
27683
/*                              Classes                                      */
 
27684
/*                                                                           */
 
27685
/*****************************************************************************/
 
27686
 
 
27687
 
 
27688
#line 27689 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27689
} // closed Puma
 
27690
class CCExprResolve;
 
27691
class CExprResolve;
 
27692
class WinIfExists;
 
27693
class WinImportHandler;
 
27694
class WinMacros;
 
27695
class WinAsm;
 
27696
class WinDeclSpecs;
 
27697
class WinMemberExplSpec;
 
27698
class WinTypeKeywords;
 
27699
class WinFriend;
 
27700
class ExtAC;
 
27701
class ExtACBuilderCoupling;
 
27702
class ExtACSyntaxCoupling;
 
27703
class ExtACTree;
 
27704
class ExtACKeywords;
 
27705
class ExtGnu;
 
27706
class PragmaOnceUnitState;
 
27707
class PragmaOnce;
 
27708
class CMatchSyntax;
 
27709
namespace Puma {
 
27710
 
 
27711
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27712
 
 
27713
#line 27714 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27714
} // closed Puma
 
27715
 
 
27716
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
27717
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
27718
#include "ExtACTree.ah"
 
27719
#endif
 
27720
namespace Puma {
 
27721
 
 
27722
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27723
class CT_ClassDef : public CT_Decl, public CSemObject {
 
27724
#line 27725 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27725
  friend class ::CCExprResolve;
 
27726
  friend class ::CExprResolve;
 
27727
  friend class ::WinIfExists;
 
27728
  friend class ::WinImportHandler;
 
27729
  friend class ::WinMacros;
 
27730
  friend class ::WinAsm;
 
27731
  friend class ::WinDeclSpecs;
 
27732
  friend class ::WinMemberExplSpec;
 
27733
  friend class ::WinTypeKeywords;
 
27734
  friend class ::WinFriend;
 
27735
  friend class ::ExtAC;
 
27736
  friend class ::ExtACBuilderCoupling;
 
27737
  friend class ::ExtACSyntaxCoupling;
 
27738
  friend class ::ExtACTree;
 
27739
  friend class ::ExtACKeywords;
 
27740
  friend class ::ExtGnu;
 
27741
  friend class ::PragmaOnceUnitState;
 
27742
  friend class ::PragmaOnce;
 
27743
  friend class ::CMatchSyntax;
 
27744
 
 
27745
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27746
 
 
27747
   
 
27748
#line 27749 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27749
 
 
27750
  struct __ac_wrapper_sons {
 
27751
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
 
27752
    operator A& () { return _data; }
 
27753
    operator A& () const { return (A&)*(::Puma::CTree * *)_data; }
 
27754
    operator const A& () { return _data; }
 
27755
    operator const A& () const { return _data; }
 
27756
    operator void* () { return _data; }
 
27757
    operator void* () const { return (void*)_data; }
 
27758
    operator const void* () { return _data; }
 
27759
    operator const void* () const { return _data; }
 
27760
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
 
27761
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
 
27762
  } sons
 
27763
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27764
 
 
27765
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27766
; // key, name, bases, members
 
27767
  CTree *obj_decl;
 
27768
 
 
27769
public:
 
27770
  
 
27771
#line 27772 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27772
 
 
27773
 
 
27774
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
27775
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
27776
  typedef TResult Result;
 
27777
  typedef TThat   That;
 
27778
  typedef TTarget Target;
 
27779
  enum { ARGS = TArgs::ARGS };
 
27780
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
27781
  static const int JPID = 55;
 
27782
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
27783
  struct Res {
 
27784
    typedef void Type;
 
27785
    typedef void ReferredType;
 
27786
  };
 
27787
 
 
27788
  That *_that;
 
27789
 
 
27790
  inline That *that() {return (That*)_that;}
 
27791
 
 
27792
};
 
27793
 
 
27794
 
 
27795
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27796
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
 
27797
#line 27798 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27798
{
 
27799
  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;
 
27800
    __TJP tjp;
 
27801
  tjp._that =  (__TJP::That*)this;
 
27802
    this->__exec_old_C1(arg0, arg1, arg2);
 
27803
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
27804
  
 
27805
}
 
27806
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
27807
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27808
{
 
27809
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
27810
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
 
27811
  }
 
27812
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27813
  static const char *NodeId ();
 
27814
  /** Get the name of the node. Can be compared with NodeId(). */
 
27815
  const char *NodeName () const { return NodeId (); }
 
27816
  /** Get the number of sons. */
 
27817
  int Sons () const { return CTree::Sons (sons, 4); }
 
27818
  /** Get the n-th son.
 
27819
   *  \param n The index of the son.
 
27820
   *  \return The n-th son or NULL. */
 
27821
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
27822
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
27823
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
 
27824
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
 
27825
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
 
27826
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
27827
  void Members (CTree *m) { AddSon (sons[3], m); }
 
27828
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
27829
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
27830
  /** Replace a son.
 
27831
   *  \param old_son The son to replace.
 
27832
   *  \param new_son The new son. */
 
27833
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
27834
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
27835
  }
 
27836
   private:
 
27837
 
 
27838
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
27839
 Puma :: CTree * _intro_members ;
 
27840
Puma :: CTree * _base_intros ;
 
27841
public :
 
27842
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
27843
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
27844
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
27845
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
27846
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27847
 
 
27848
#line 27849 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27849
 
 
27850
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
27851
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
27852
  typedef TResult Result;
 
27853
  typedef TThat   That;
 
27854
  typedef TTarget Target;
 
27855
  enum { ARGS = TArgs::ARGS };
 
27856
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
27857
  static const int JPID = 6218;
 
27858
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
27859
  struct Res {
 
27860
    typedef void Type;
 
27861
    typedef void ReferredType;
 
27862
  };
 
27863
 
 
27864
  That *_that;
 
27865
 
 
27866
  inline That *that() {return (That*)_that;}
 
27867
 
 
27868
};
 
27869
 
 
27870
 
 
27871
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27872
 
 
27873
#line 27874 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27874
 
 
27875
public:
 
27876
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) {
 
27877
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
27878
  __TJP tjp;
 
27879
  tjp._that =  (__TJP::That*)this;
 
27880
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
27881
 
 
27882
}
 
27883
 
 
27884
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27885
 
 
27886
#line 27887 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27887
 
 
27888
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
27889
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
27890
  typedef TResult Result;
 
27891
  typedef TThat   That;
 
27892
  typedef TTarget Target;
 
27893
  enum { ARGS = TArgs::ARGS };
 
27894
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
27895
  static const int JPID = 6216;
 
27896
  static const AC::JPType JPTYPE = (AC::JPType)32;
 
27897
  struct Res {
 
27898
    typedef void Type;
 
27899
    typedef void ReferredType;
 
27900
  };
 
27901
 
 
27902
  That *_that;
 
27903
 
 
27904
  inline That *that() {return (That*)_that;}
 
27905
 
 
27906
};
 
27907
 
 
27908
 
 
27909
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27910
 
 
27911
#line 27912 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27912
 
 
27913
public:
 
27914
inline ~CT_ClassDef () {
 
27915
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
27916
  __TJP tjp;
 
27917
  tjp._that =  (__TJP::That*)this;
 
27918
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
 
27919
 
 
27920
}
 
27921
 
 
27922
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27923
};
 
27924
      
 
27925
 
 
27926
#line 27927 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27927
} // closed Puma
 
27928
class CCExprResolve;
 
27929
class CExprResolve;
 
27930
class WinIfExists;
 
27931
class WinImportHandler;
 
27932
class WinMacros;
 
27933
class WinAsm;
 
27934
class WinDeclSpecs;
 
27935
class WinMemberExplSpec;
 
27936
class WinTypeKeywords;
 
27937
class WinFriend;
 
27938
class ExtAC;
 
27939
class ExtACBuilderCoupling;
 
27940
class ExtACSyntaxCoupling;
 
27941
class ExtACTree;
 
27942
class ExtACKeywords;
 
27943
class ExtGnu;
 
27944
class PragmaOnceUnitState;
 
27945
class PragmaOnce;
 
27946
class CMatchSyntax;
 
27947
namespace Puma {
 
27948
 
 
27949
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27950
class CT_UnionDef : public CT_ClassDef {
 
27951
#line 27952 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27952
  friend class ::CCExprResolve;
 
27953
  friend class ::CExprResolve;
 
27954
  friend class ::WinIfExists;
 
27955
  friend class ::WinImportHandler;
 
27956
  friend class ::WinMacros;
 
27957
  friend class ::WinAsm;
 
27958
  friend class ::WinDeclSpecs;
 
27959
  friend class ::WinMemberExplSpec;
 
27960
  friend class ::WinTypeKeywords;
 
27961
  friend class ::WinFriend;
 
27962
  friend class ::ExtAC;
 
27963
  friend class ::ExtACBuilderCoupling;
 
27964
  friend class ::ExtACSyntaxCoupling;
 
27965
  friend class ::ExtACTree;
 
27966
  friend class ::ExtACKeywords;
 
27967
  friend class ::ExtGnu;
 
27968
  friend class ::PragmaOnceUnitState;
 
27969
  friend class ::PragmaOnce;
 
27970
  friend class ::CMatchSyntax;
 
27971
 
 
27972
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27973
 
 
27974
public:
 
27975
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
 
27976
  static const char *NodeId ();
 
27977
  /** Get the name of the node. Can be compared with NodeId(). */
 
27978
  const char *NodeName () const { return NodeId (); }
 
27979
};
 
27980
      
 
27981
 
 
27982
#line 27983 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
27983
} // closed Puma
 
27984
class CCExprResolve;
 
27985
class CExprResolve;
 
27986
class WinIfExists;
 
27987
class WinImportHandler;
 
27988
class WinMacros;
 
27989
class WinAsm;
 
27990
class WinDeclSpecs;
 
27991
class WinMemberExplSpec;
 
27992
class WinTypeKeywords;
 
27993
class WinFriend;
 
27994
class ExtAC;
 
27995
class ExtACBuilderCoupling;
 
27996
class ExtACSyntaxCoupling;
 
27997
class ExtACTree;
 
27998
class ExtACKeywords;
 
27999
class ExtGnu;
 
28000
class PragmaOnceUnitState;
 
28001
class PragmaOnce;
 
28002
class CMatchSyntax;
 
28003
namespace Puma {
 
28004
 
 
28005
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28006
class CT_MembList : public CT_DeclList, public CSemScope {
 
28007
#line 28008 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28008
  friend class ::CCExprResolve;
 
28009
  friend class ::CExprResolve;
 
28010
  friend class ::WinIfExists;
 
28011
  friend class ::WinImportHandler;
 
28012
  friend class ::WinMacros;
 
28013
  friend class ::WinAsm;
 
28014
  friend class ::WinDeclSpecs;
 
28015
  friend class ::WinMemberExplSpec;
 
28016
  friend class ::WinTypeKeywords;
 
28017
  friend class ::WinFriend;
 
28018
  friend class ::ExtAC;
 
28019
  friend class ::ExtACBuilderCoupling;
 
28020
  friend class ::ExtACSyntaxCoupling;
 
28021
  friend class ::ExtACTree;
 
28022
  friend class ::ExtACKeywords;
 
28023
  friend class ::ExtGnu;
 
28024
  friend class ::PragmaOnceUnitState;
 
28025
  friend class ::PragmaOnce;
 
28026
  friend class ::CMatchSyntax;
 
28027
 
 
28028
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28029
 
 
28030
public:
 
28031
  CT_MembList (int size = 10, int incr = 10) : 
 
28032
    CT_DeclList (size, incr) {}
 
28033
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28034
  static const char *NodeId ();
 
28035
  /** Get the name of the node. Can be compared with NodeId(). */
 
28036
  const char *NodeName () const { return NodeId (); }
 
28037
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
28038
};
 
28039
 
 
28040
 
 
28041
#line 28042 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28042
} // closed Puma
 
28043
class CCExprResolve;
 
28044
class CExprResolve;
 
28045
class WinIfExists;
 
28046
class WinImportHandler;
 
28047
class WinMacros;
 
28048
class WinAsm;
 
28049
class WinDeclSpecs;
 
28050
class WinMemberExplSpec;
 
28051
class WinTypeKeywords;
 
28052
class WinFriend;
 
28053
class ExtAC;
 
28054
class ExtACBuilderCoupling;
 
28055
class ExtACSyntaxCoupling;
 
28056
class ExtACTree;
 
28057
class ExtACKeywords;
 
28058
class ExtGnu;
 
28059
class PragmaOnceUnitState;
 
28060
class PragmaOnce;
 
28061
class CMatchSyntax;
 
28062
namespace Puma {
 
28063
 
 
28064
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28065
class CT_MembInitList : public CT_List, public CSemScope {
 
28066
#line 28067 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28067
  friend class ::CCExprResolve;
 
28068
  friend class ::CExprResolve;
 
28069
  friend class ::WinIfExists;
 
28070
  friend class ::WinImportHandler;
 
28071
  friend class ::WinMacros;
 
28072
  friend class ::WinAsm;
 
28073
  friend class ::WinDeclSpecs;
 
28074
  friend class ::WinMemberExplSpec;
 
28075
  friend class ::WinTypeKeywords;
 
28076
  friend class ::WinFriend;
 
28077
  friend class ::ExtAC;
 
28078
  friend class ::ExtACBuilderCoupling;
 
28079
  friend class ::ExtACSyntaxCoupling;
 
28080
  friend class ::ExtACTree;
 
28081
  friend class ::ExtACKeywords;
 
28082
  friend class ::ExtGnu;
 
28083
  friend class ::PragmaOnceUnitState;
 
28084
  friend class ::PragmaOnce;
 
28085
  friend class ::CMatchSyntax;
 
28086
 
 
28087
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28088
 
 
28089
public:
 
28090
  CT_MembInitList (int size = 2) : 
 
28091
    CT_List (size, 2, CT_List::OPEN) {}
 
28092
  static const char *NodeId ();
 
28093
  /** Get the name of the node. Can be compared with NodeId(). */
 
28094
  const char *NodeName () const { return NodeId (); }
 
28095
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
28096
};
 
28097
 
 
28098
 
 
28099
#line 28100 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28100
} // closed Puma
 
28101
class CCExprResolve;
 
28102
class CExprResolve;
 
28103
class WinIfExists;
 
28104
class WinImportHandler;
 
28105
class WinMacros;
 
28106
class WinAsm;
 
28107
class WinDeclSpecs;
 
28108
class WinMemberExplSpec;
 
28109
class WinTypeKeywords;
 
28110
class WinFriend;
 
28111
class ExtAC;
 
28112
class ExtACBuilderCoupling;
 
28113
class ExtACSyntaxCoupling;
 
28114
class ExtACTree;
 
28115
class ExtACKeywords;
 
28116
class ExtGnu;
 
28117
class PragmaOnceUnitState;
 
28118
class PragmaOnce;
 
28119
class CMatchSyntax;
 
28120
namespace Puma {
 
28121
 
 
28122
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28123
 
 
28124
#line 28125 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28125
} // closed Puma
 
28126
 
 
28127
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28128
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28129
#include "CCExprResolveH.ah"
 
28130
#endif
 
28131
namespace Puma {
 
28132
 
 
28133
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28134
 
 
28135
#line 28136 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28136
} // closed Puma
 
28137
 
 
28138
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28139
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28140
#include "CExprResolveH.ah"
 
28141
#endif
 
28142
namespace Puma {
 
28143
 
 
28144
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28145
class CT_MembInit : public CT_Expression, public CSemObject {
 
28146
#line 28147 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28147
  friend class ::CCExprResolve;
 
28148
  friend class ::CExprResolve;
 
28149
  friend class ::WinIfExists;
 
28150
  friend class ::WinImportHandler;
 
28151
  friend class ::WinMacros;
 
28152
  friend class ::WinAsm;
 
28153
  friend class ::WinDeclSpecs;
 
28154
  friend class ::WinMemberExplSpec;
 
28155
  friend class ::WinTypeKeywords;
 
28156
  friend class ::WinFriend;
 
28157
  friend class ::ExtAC;
 
28158
  friend class ::ExtACBuilderCoupling;
 
28159
  friend class ::ExtACSyntaxCoupling;
 
28160
  friend class ::ExtACTree;
 
28161
  friend class ::ExtACKeywords;
 
28162
  friend class ::ExtGnu;
 
28163
  friend class ::PragmaOnceUnitState;
 
28164
  friend class ::PragmaOnce;
 
28165
  friend class ::CMatchSyntax;
 
28166
 
 
28167
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28168
 
 
28169
  CTree *sons[2]; // name, init
 
28170
 
 
28171
public:
 
28172
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
28173
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28174
  static const char *NodeId ();
 
28175
  /** Get the name of the node. Can be compared with NodeId(). */
 
28176
  const char *NodeName () const { return NodeId (); }
 
28177
  /** Get the number of sons. */
 
28178
  int Sons () const { return 2; }
 
28179
  /** Get the n-th son.
 
28180
   *  \param n The index of the son.
 
28181
   *  \return The n-th son or NULL. */
 
28182
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
28183
  /** Replace a son.
 
28184
   *  \param old_son The son to replace.
 
28185
   *  \param new_son The new son. */
 
28186
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
28187
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
28188
  }
 
28189
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
28190
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
28191
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
28192
   private:
 
28193
  typedef CT_MembInit CCExprResolveExpr;
 
28194
 
 
28195
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
28196
 public :
 
28197
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
28198
  typedef CT_MembInit CExprResolveExpr;
 
28199
 
 
28200
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
28201
 public :
 
28202
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
28203
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28204
};
 
28205
 
 
28206
 
 
28207
#line 28208 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28208
} // closed Puma
 
28209
class CCExprResolve;
 
28210
class CExprResolve;
 
28211
class WinIfExists;
 
28212
class WinImportHandler;
 
28213
class WinMacros;
 
28214
class WinAsm;
 
28215
class WinDeclSpecs;
 
28216
class WinMemberExplSpec;
 
28217
class WinTypeKeywords;
 
28218
class WinFriend;
 
28219
class ExtAC;
 
28220
class ExtACBuilderCoupling;
 
28221
class ExtACSyntaxCoupling;
 
28222
class ExtACTree;
 
28223
class ExtACKeywords;
 
28224
class ExtGnu;
 
28225
class PragmaOnceUnitState;
 
28226
class PragmaOnce;
 
28227
class CMatchSyntax;
 
28228
namespace Puma {
 
28229
 
 
28230
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28231
class CT_BaseSpecList : public CT_List {
 
28232
#line 28233 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28233
  friend class ::CCExprResolve;
 
28234
  friend class ::CExprResolve;
 
28235
  friend class ::WinIfExists;
 
28236
  friend class ::WinImportHandler;
 
28237
  friend class ::WinMacros;
 
28238
  friend class ::WinAsm;
 
28239
  friend class ::WinDeclSpecs;
 
28240
  friend class ::WinMemberExplSpec;
 
28241
  friend class ::WinTypeKeywords;
 
28242
  friend class ::WinFriend;
 
28243
  friend class ::ExtAC;
 
28244
  friend class ::ExtACBuilderCoupling;
 
28245
  friend class ::ExtACSyntaxCoupling;
 
28246
  friend class ::ExtACTree;
 
28247
  friend class ::ExtACKeywords;
 
28248
  friend class ::ExtGnu;
 
28249
  friend class ::PragmaOnceUnitState;
 
28250
  friend class ::PragmaOnce;
 
28251
  friend class ::CMatchSyntax;
 
28252
 
 
28253
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28254
 
 
28255
public:
 
28256
  CT_BaseSpecList (int size = 2) : 
 
28257
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
28258
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28259
  static const char *NodeId ();
 
28260
  /** Get the name of the node. Can be compared with NodeId(). */
 
28261
  const char *NodeName () const { return NodeId (); }
 
28262
};
 
28263
 
 
28264
 
 
28265
#line 28266 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28266
} // closed Puma
 
28267
class CCExprResolve;
 
28268
class CExprResolve;
 
28269
class WinIfExists;
 
28270
class WinImportHandler;
 
28271
class WinMacros;
 
28272
class WinAsm;
 
28273
class WinDeclSpecs;
 
28274
class WinMemberExplSpec;
 
28275
class WinTypeKeywords;
 
28276
class WinFriend;
 
28277
class ExtAC;
 
28278
class ExtACBuilderCoupling;
 
28279
class ExtACSyntaxCoupling;
 
28280
class ExtACTree;
 
28281
class ExtACKeywords;
 
28282
class ExtGnu;
 
28283
class PragmaOnceUnitState;
 
28284
class PragmaOnce;
 
28285
class CMatchSyntax;
 
28286
namespace Puma {
 
28287
 
 
28288
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28289
class CT_AccessSpec : public CTree {
 
28290
#line 28291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28291
  friend class ::CCExprResolve;
 
28292
  friend class ::CExprResolve;
 
28293
  friend class ::WinIfExists;
 
28294
  friend class ::WinImportHandler;
 
28295
  friend class ::WinMacros;
 
28296
  friend class ::WinAsm;
 
28297
  friend class ::WinDeclSpecs;
 
28298
  friend class ::WinMemberExplSpec;
 
28299
  friend class ::WinTypeKeywords;
 
28300
  friend class ::WinFriend;
 
28301
  friend class ::ExtAC;
 
28302
  friend class ::ExtACBuilderCoupling;
 
28303
  friend class ::ExtACSyntaxCoupling;
 
28304
  friend class ::ExtACTree;
 
28305
  friend class ::ExtACKeywords;
 
28306
  friend class ::ExtGnu;
 
28307
  friend class ::PragmaOnceUnitState;
 
28308
  friend class ::PragmaOnce;
 
28309
  friend class ::CMatchSyntax;
 
28310
 
 
28311
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28312
 
 
28313
  CTree *sons[2]; // access, colon
 
28314
 
 
28315
public:
 
28316
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
28317
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28318
  static const char *NodeId ();
 
28319
  /** Get the name of the node. Can be compared with NodeId(). */
 
28320
  const char *NodeName () const { return NodeId (); }
 
28321
  /** Get the number of sons. */
 
28322
  int Sons () const { return 2; }
 
28323
  /** Get the n-th son.
 
28324
   *  \param n The index of the son.
 
28325
   *  \return The n-th son or NULL. */
 
28326
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
28327
  int Access () const { return sons[0]->token ()->type (); }
 
28328
  /** Replace a son.
 
28329
   *  \param old_son The son to replace.
 
28330
   *  \param new_son The new son. */
 
28331
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
28332
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
28333
  }
 
28334
};
 
28335
 
 
28336
 
 
28337
#line 28338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28338
} // closed Puma
 
28339
class CCExprResolve;
 
28340
class CExprResolve;
 
28341
class WinIfExists;
 
28342
class WinImportHandler;
 
28343
class WinMacros;
 
28344
class WinAsm;
 
28345
class WinDeclSpecs;
 
28346
class WinMemberExplSpec;
 
28347
class WinTypeKeywords;
 
28348
class WinFriend;
 
28349
class ExtAC;
 
28350
class ExtACBuilderCoupling;
 
28351
class ExtACSyntaxCoupling;
 
28352
class ExtACTree;
 
28353
class ExtACKeywords;
 
28354
class ExtGnu;
 
28355
class PragmaOnceUnitState;
 
28356
class PragmaOnce;
 
28357
class CMatchSyntax;
 
28358
namespace Puma {
 
28359
 
 
28360
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28361
class CT_BaseSpec : public CTree {
 
28362
#line 28363 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28363
  friend class ::CCExprResolve;
 
28364
  friend class ::CExprResolve;
 
28365
  friend class ::WinIfExists;
 
28366
  friend class ::WinImportHandler;
 
28367
  friend class ::WinMacros;
 
28368
  friend class ::WinAsm;
 
28369
  friend class ::WinDeclSpecs;
 
28370
  friend class ::WinMemberExplSpec;
 
28371
  friend class ::WinTypeKeywords;
 
28372
  friend class ::WinFriend;
 
28373
  friend class ::ExtAC;
 
28374
  friend class ::ExtACBuilderCoupling;
 
28375
  friend class ::ExtACSyntaxCoupling;
 
28376
  friend class ::ExtACTree;
 
28377
  friend class ::ExtACKeywords;
 
28378
  friend class ::ExtGnu;
 
28379
  friend class ::PragmaOnceUnitState;
 
28380
  friend class ::PragmaOnce;
 
28381
  friend class ::CMatchSyntax;
 
28382
 
 
28383
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28384
 
 
28385
  CTree *sons[3]; // virtual, access, name
 
28386
 
 
28387
public:
 
28388
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
 
28389
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
 
28390
  }
 
28391
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28392
  static const char *NodeId ();
 
28393
  /** Get the name of the node. Can be compared with NodeId(). */
 
28394
  const char *NodeName () const { return NodeId (); }
 
28395
  /** Get the number of sons. */
 
28396
  int Sons () const { return CTree::Sons (sons, 3); }
 
28397
  /** Get the n-th son.
 
28398
   *  \param n The index of the son.
 
28399
   *  \return The n-th son or NULL. */
 
28400
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
28401
  int Access () const { return sons[1]->token ()->type (); }
 
28402
  CTree *AccessSpec () const { return sons[1]; }
 
28403
  CTree *Virtual () const { return sons[0]; }
 
28404
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
28405
  /** Replace a son.
 
28406
   *  \param old_son The son to replace.
 
28407
   *  \param new_son The new son. */
 
28408
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
28409
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
28410
  }
 
28411
};
 
28412
 
 
28413
 
 
28414
#line 28415 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28415
} // closed Puma
 
28416
class CCExprResolve;
 
28417
class CExprResolve;
 
28418
class WinIfExists;
 
28419
class WinImportHandler;
 
28420
class WinMacros;
 
28421
class WinAsm;
 
28422
class WinDeclSpecs;
 
28423
class WinMemberExplSpec;
 
28424
class WinTypeKeywords;
 
28425
class WinFriend;
 
28426
class ExtAC;
 
28427
class ExtACBuilderCoupling;
 
28428
class ExtACSyntaxCoupling;
 
28429
class ExtACTree;
 
28430
class ExtACKeywords;
 
28431
class ExtGnu;
 
28432
class PragmaOnceUnitState;
 
28433
class PragmaOnce;
 
28434
class CMatchSyntax;
 
28435
namespace Puma {
 
28436
 
 
28437
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28438
class CT_AccessDecl : public CT_Decl {
 
28439
#line 28440 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28440
  friend class ::CCExprResolve;
 
28441
  friend class ::CExprResolve;
 
28442
  friend class ::WinIfExists;
 
28443
  friend class ::WinImportHandler;
 
28444
  friend class ::WinMacros;
 
28445
  friend class ::WinAsm;
 
28446
  friend class ::WinDeclSpecs;
 
28447
  friend class ::WinMemberExplSpec;
 
28448
  friend class ::WinTypeKeywords;
 
28449
  friend class ::WinFriend;
 
28450
  friend class ::ExtAC;
 
28451
  friend class ::ExtACBuilderCoupling;
 
28452
  friend class ::ExtACSyntaxCoupling;
 
28453
  friend class ::ExtACTree;
 
28454
  friend class ::ExtACKeywords;
 
28455
  friend class ::ExtGnu;
 
28456
  friend class ::PragmaOnceUnitState;
 
28457
  friend class ::PragmaOnce;
 
28458
  friend class ::CMatchSyntax;
 
28459
 
 
28460
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28461
 
 
28462
  CTree *sons[2]; // name, semi_colon
 
28463
 
 
28464
public:
 
28465
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
28466
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28467
  static const char *NodeId ();
 
28468
  /** Get the name of the node. Can be compared with NodeId(). */
 
28469
  const char *NodeName () const { return NodeId (); }
 
28470
  /** Get the number of sons. */
 
28471
  int Sons () const { return 2; }
 
28472
  /** Get the n-th son.
 
28473
   *  \param n The index of the son.
 
28474
   *  \return The n-th son or NULL. */
 
28475
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
28476
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
28477
  /** Replace a son.
 
28478
   *  \param old_son The son to replace.
 
28479
   *  \param new_son The new son. */
 
28480
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
28481
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
28482
  }
 
28483
};
 
28484
 
 
28485
 
 
28486
#line 28487 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28487
} // closed Puma
 
28488
class CCExprResolve;
 
28489
class CExprResolve;
 
28490
class WinIfExists;
 
28491
class WinImportHandler;
 
28492
class WinMacros;
 
28493
class WinAsm;
 
28494
class WinDeclSpecs;
 
28495
class WinMemberExplSpec;
 
28496
class WinTypeKeywords;
 
28497
class WinFriend;
 
28498
class ExtAC;
 
28499
class ExtACBuilderCoupling;
 
28500
class ExtACSyntaxCoupling;
 
28501
class ExtACTree;
 
28502
class ExtACKeywords;
 
28503
class ExtGnu;
 
28504
class PragmaOnceUnitState;
 
28505
class PragmaOnce;
 
28506
class CMatchSyntax;
 
28507
namespace Puma {
 
28508
 
 
28509
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28510
class CT_UsingDecl : public CT_AccessDecl {
 
28511
#line 28512 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28512
  friend class ::CCExprResolve;
 
28513
  friend class ::CExprResolve;
 
28514
  friend class ::WinIfExists;
 
28515
  friend class ::WinImportHandler;
 
28516
  friend class ::WinMacros;
 
28517
  friend class ::WinAsm;
 
28518
  friend class ::WinDeclSpecs;
 
28519
  friend class ::WinMemberExplSpec;
 
28520
  friend class ::WinTypeKeywords;
 
28521
  friend class ::WinFriend;
 
28522
  friend class ::ExtAC;
 
28523
  friend class ::ExtACBuilderCoupling;
 
28524
  friend class ::ExtACSyntaxCoupling;
 
28525
  friend class ::ExtACTree;
 
28526
  friend class ::ExtACKeywords;
 
28527
  friend class ::ExtGnu;
 
28528
  friend class ::PragmaOnceUnitState;
 
28529
  friend class ::PragmaOnce;
 
28530
  friend class ::CMatchSyntax;
 
28531
 
 
28532
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28533
 
 
28534
  CTree *sons[2]; // using, typename
 
28535
 
 
28536
public:
 
28537
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
 
28538
    AddSon (sons[0], u); AddSon (sons[1], 0); 
 
28539
  }
 
28540
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
 
28541
    AddSon (sons[0], u); AddSon (sons[1], t); 
 
28542
  }
 
28543
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28544
  static const char *NodeId ();
 
28545
  /** Get the name of the node. Can be compared with NodeId(). */
 
28546
  const char *NodeName () const { return NodeId (); }
 
28547
  /** Get the number of sons. */
 
28548
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
28549
  /** Get the n-th son.
 
28550
   *  \param n The index of the son.
 
28551
   *  \return The n-th son or NULL. */
 
28552
  CTree *Son (int n) const {
 
28553
    int num = CTree::Sons (sons, 2);
 
28554
    CTree *result = CTree::Son (sons, 2, n);
 
28555
    return result ? result : CT_AccessDecl::Son (n-num);
 
28556
  }
 
28557
  CTree *Typename () const { return sons[1]; }
 
28558
  /** Replace a son.
 
28559
   *  \param old_son The son to replace.
 
28560
   *  \param new_son The new son. */
 
28561
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
28562
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
28563
    CT_AccessDecl::ReplaceSon (old_son, new_son);
 
28564
  }
 
28565
};
 
28566
 
 
28567
/*****************************************************************************/
 
28568
/*                                                                           */
 
28569
/*                              Wildcards                                    */
 
28570
/*                                                                           */
 
28571
/*****************************************************************************/
 
28572
 
 
28573
 
 
28574
#line 28575 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28575
} // closed Puma
 
28576
class CCExprResolve;
 
28577
class CExprResolve;
 
28578
class WinIfExists;
 
28579
class WinImportHandler;
 
28580
class WinMacros;
 
28581
class WinAsm;
 
28582
class WinDeclSpecs;
 
28583
class WinMemberExplSpec;
 
28584
class WinTypeKeywords;
 
28585
class WinFriend;
 
28586
class ExtAC;
 
28587
class ExtACBuilderCoupling;
 
28588
class ExtACSyntaxCoupling;
 
28589
class ExtACTree;
 
28590
class ExtACKeywords;
 
28591
class ExtGnu;
 
28592
class PragmaOnceUnitState;
 
28593
class PragmaOnce;
 
28594
class CMatchSyntax;
 
28595
namespace Puma {
 
28596
 
 
28597
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28598
class CT_Any : public CTree {
 
28599
#line 28600 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28600
  friend class ::CCExprResolve;
 
28601
  friend class ::CExprResolve;
 
28602
  friend class ::WinIfExists;
 
28603
  friend class ::WinImportHandler;
 
28604
  friend class ::WinMacros;
 
28605
  friend class ::WinAsm;
 
28606
  friend class ::WinDeclSpecs;
 
28607
  friend class ::WinMemberExplSpec;
 
28608
  friend class ::WinTypeKeywords;
 
28609
  friend class ::WinFriend;
 
28610
  friend class ::ExtAC;
 
28611
  friend class ::ExtACBuilderCoupling;
 
28612
  friend class ::ExtACSyntaxCoupling;
 
28613
  friend class ::ExtACTree;
 
28614
  friend class ::ExtACKeywords;
 
28615
  friend class ::ExtGnu;
 
28616
  friend class ::PragmaOnceUnitState;
 
28617
  friend class ::PragmaOnce;
 
28618
  friend class ::CMatchSyntax;
 
28619
 
 
28620
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28621
 
 
28622
  CTree *sons[2]; // keyword, extension
 
28623
 
 
28624
public:
 
28625
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
28626
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28627
  static const char *NodeId ();
 
28628
  /** Get the name of the node. Can be compared with NodeId(). */
 
28629
  const char *NodeName () const { return NodeId (); }
 
28630
  /** Get the number of sons. */
 
28631
  int Sons () const { return CTree::Sons (sons, 2); }
 
28632
  /** Get the n-th son.
 
28633
   *  \param n The index of the son.
 
28634
   *  \return The n-th son or NULL. */
 
28635
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
28636
  /** Replace a son.
 
28637
   *  \param old_son The son to replace.
 
28638
   *  \param new_son The new son. */
 
28639
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
28640
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
28641
  }
 
28642
  int AnyType () const { return sons[0]->token ()->type (); }
 
28643
  CT_AnyExtension *Extension () const { return (CT_AnyExtension*)sons[1]; }
 
28644
};
 
28645
 
 
28646
 
 
28647
#line 28648 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28648
} // closed Puma
 
28649
class CCExprResolve;
 
28650
class CExprResolve;
 
28651
class WinIfExists;
 
28652
class WinImportHandler;
 
28653
class WinMacros;
 
28654
class WinAsm;
 
28655
class WinDeclSpecs;
 
28656
class WinMemberExplSpec;
 
28657
class WinTypeKeywords;
 
28658
class WinFriend;
 
28659
class ExtAC;
 
28660
class ExtACBuilderCoupling;
 
28661
class ExtACSyntaxCoupling;
 
28662
class ExtACTree;
 
28663
class ExtACKeywords;
 
28664
class ExtGnu;
 
28665
class PragmaOnceUnitState;
 
28666
class PragmaOnce;
 
28667
class CMatchSyntax;
 
28668
namespace Puma {
 
28669
 
 
28670
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28671
class CT_AnyList : public CT_Any {
 
28672
#line 28673 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28673
  friend class ::CCExprResolve;
 
28674
  friend class ::CExprResolve;
 
28675
  friend class ::WinIfExists;
 
28676
  friend class ::WinImportHandler;
 
28677
  friend class ::WinMacros;
 
28678
  friend class ::WinAsm;
 
28679
  friend class ::WinDeclSpecs;
 
28680
  friend class ::WinMemberExplSpec;
 
28681
  friend class ::WinTypeKeywords;
 
28682
  friend class ::WinFriend;
 
28683
  friend class ::ExtAC;
 
28684
  friend class ::ExtACBuilderCoupling;
 
28685
  friend class ::ExtACSyntaxCoupling;
 
28686
  friend class ::ExtACTree;
 
28687
  friend class ::ExtACKeywords;
 
28688
  friend class ::ExtGnu;
 
28689
  friend class ::PragmaOnceUnitState;
 
28690
  friend class ::PragmaOnce;
 
28691
  friend class ::CMatchSyntax;
 
28692
 
 
28693
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28694
 
 
28695
public:
 
28696
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
28697
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28698
  static const char *NodeId ();
 
28699
  /** Get the name of the node. Can be compared with NodeId(). */
 
28700
  const char *NodeName () const { return NodeId (); }
 
28701
};
 
28702
 
 
28703
 
 
28704
#line 28705 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28705
} // closed Puma
 
28706
class CCExprResolve;
 
28707
class CExprResolve;
 
28708
class WinIfExists;
 
28709
class WinImportHandler;
 
28710
class WinMacros;
 
28711
class WinAsm;
 
28712
class WinDeclSpecs;
 
28713
class WinMemberExplSpec;
 
28714
class WinTypeKeywords;
 
28715
class WinFriend;
 
28716
class ExtAC;
 
28717
class ExtACBuilderCoupling;
 
28718
class ExtACSyntaxCoupling;
 
28719
class ExtACTree;
 
28720
class ExtACKeywords;
 
28721
class ExtGnu;
 
28722
class PragmaOnceUnitState;
 
28723
class PragmaOnce;
 
28724
class CMatchSyntax;
 
28725
namespace Puma {
 
28726
 
 
28727
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28728
class CT_AnyExtension : public CTree, public CSemValue {
 
28729
#line 28730 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28730
  friend class ::CCExprResolve;
 
28731
  friend class ::CExprResolve;
 
28732
  friend class ::WinIfExists;
 
28733
  friend class ::WinImportHandler;
 
28734
  friend class ::WinMacros;
 
28735
  friend class ::WinAsm;
 
28736
  friend class ::WinDeclSpecs;
 
28737
  friend class ::WinMemberExplSpec;
 
28738
  friend class ::WinTypeKeywords;
 
28739
  friend class ::WinFriend;
 
28740
  friend class ::ExtAC;
 
28741
  friend class ::ExtACBuilderCoupling;
 
28742
  friend class ::ExtACSyntaxCoupling;
 
28743
  friend class ::ExtACTree;
 
28744
  friend class ::ExtACKeywords;
 
28745
  friend class ::ExtGnu;
 
28746
  friend class ::PragmaOnceUnitState;
 
28747
  friend class ::PragmaOnce;
 
28748
  friend class ::CMatchSyntax;
 
28749
 
 
28750
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28751
 
 
28752
  CTree *sons[5]; // open, string, comma, cond, close
 
28753
 
 
28754
public:
 
28755
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
 
28756
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
28757
    AddSon (sons[3], c); AddSon (sons[4], cr); 
 
28758
  }
 
28759
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28760
  static const char *NodeId ();
 
28761
  /** Get the name of the node. Can be compared with NodeId(). */
 
28762
  const char *NodeName () const { return NodeId (); }
 
28763
  /** Get the number of sons. */
 
28764
  int Sons () const { return CTree::Sons (sons, 5); }
 
28765
  /** Get the n-th son.
 
28766
   *  \param n The index of the son.
 
28767
   *  \return The n-th son or NULL. */
 
28768
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
28769
  /** Replace a son.
 
28770
   *  \param old_son The son to replace.
 
28771
   *  \param new_son The new son. */
 
28772
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
28773
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
28774
  }
 
28775
  CTree *Condition () const { return sons[3]; }
 
28776
  CT_Token *String () const { return (CT_Token*)sons[1]; }
 
28777
  const char *Name () const { 
 
28778
    return value ? value->StrLiteral ()->String () : (const char*)0; }
 
28779
 
 
28780
  CExprValue *Value () const { return value; }
 
28781
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
28782
};
 
28783
 
 
28784
 
 
28785
#line 28786 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28786
} // closed Puma
 
28787
class CCExprResolve;
 
28788
class CExprResolve;
 
28789
class WinIfExists;
 
28790
class WinImportHandler;
 
28791
class WinMacros;
 
28792
class WinAsm;
 
28793
class WinDeclSpecs;
 
28794
class WinMemberExplSpec;
 
28795
class WinTypeKeywords;
 
28796
class WinFriend;
 
28797
class ExtAC;
 
28798
class ExtACBuilderCoupling;
 
28799
class ExtACSyntaxCoupling;
 
28800
class ExtACTree;
 
28801
class ExtACKeywords;
 
28802
class ExtGnu;
 
28803
class PragmaOnceUnitState;
 
28804
class PragmaOnce;
 
28805
class CMatchSyntax;
 
28806
namespace Puma {
 
28807
 
 
28808
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28809
class CT_AnyCondition : public CTree {
 
28810
#line 28811 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28811
  friend class ::CCExprResolve;
 
28812
  friend class ::CExprResolve;
 
28813
  friend class ::WinIfExists;
 
28814
  friend class ::WinImportHandler;
 
28815
  friend class ::WinMacros;
 
28816
  friend class ::WinAsm;
 
28817
  friend class ::WinDeclSpecs;
 
28818
  friend class ::WinMemberExplSpec;
 
28819
  friend class ::WinTypeKeywords;
 
28820
  friend class ::WinFriend;
 
28821
  friend class ::ExtAC;
 
28822
  friend class ::ExtACBuilderCoupling;
 
28823
  friend class ::ExtACSyntaxCoupling;
 
28824
  friend class ::ExtACTree;
 
28825
  friend class ::ExtACKeywords;
 
28826
  friend class ::ExtGnu;
 
28827
  friend class ::PragmaOnceUnitState;
 
28828
  friend class ::PragmaOnce;
 
28829
  friend class ::CMatchSyntax;
 
28830
 
 
28831
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28832
 
 
28833
  CTree *sons[3]; // arg1, arg2, arg3
 
28834
 
 
28835
public:
 
28836
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
 
28837
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
 
28838
  }
 
28839
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28840
  static const char *NodeId ();
 
28841
  /** Get the name of the node. Can be compared with NodeId(). */
 
28842
  const char *NodeName () const { return NodeId (); }
 
28843
  /** Get the number of sons. */
 
28844
  int Sons () const { return CTree::Sons (sons, 3); }
 
28845
  /** Get the n-th son.
 
28846
   *  \param n The index of the son.
 
28847
   *  \return The n-th son or NULL. */
 
28848
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
28849
  /** Replace a son.
 
28850
   *  \param old_son The son to replace.
 
28851
   *  \param new_son The new son. */
 
28852
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
28853
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
28854
  }
 
28855
};
 
28856
 
 
28857
 
 
28858
} // namespace Puma
 
28859
 
 
28860
#endif /* __CTree_h__ */
 
28861
 
 
28862
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
28863
namespace Puma {
 
28864
 
 
28865
 
 
28866
 
 
28867
#line 28868 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28868
} // closed Puma
 
28869
class CCExprResolve;
 
28870
class CExprResolve;
 
28871
class WinIfExists;
 
28872
class WinImportHandler;
 
28873
class WinMacros;
 
28874
class WinAsm;
 
28875
class WinDeclSpecs;
 
28876
class WinMemberExplSpec;
 
28877
class WinTypeKeywords;
 
28878
class WinFriend;
 
28879
class ExtAC;
 
28880
class ExtACBuilderCoupling;
 
28881
class ExtACSyntaxCoupling;
 
28882
class ExtACTree;
 
28883
class ExtACKeywords;
 
28884
class ExtGnu;
 
28885
class PragmaOnceUnitState;
 
28886
class PragmaOnce;
 
28887
class CMatchSyntax;
 
28888
namespace Puma {
 
28889
 
 
28890
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
28891
class CT_GnuAsmSpec : public CTree {
 
28892
#line 28893 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28893
  friend class ::CCExprResolve;
 
28894
  friend class ::CExprResolve;
 
28895
  friend class ::WinIfExists;
 
28896
  friend class ::WinImportHandler;
 
28897
  friend class ::WinMacros;
 
28898
  friend class ::WinAsm;
 
28899
  friend class ::WinDeclSpecs;
 
28900
  friend class ::WinMemberExplSpec;
 
28901
  friend class ::WinTypeKeywords;
 
28902
  friend class ::WinFriend;
 
28903
  friend class ::ExtAC;
 
28904
  friend class ::ExtACBuilderCoupling;
 
28905
  friend class ::ExtACSyntaxCoupling;
 
28906
  friend class ::ExtACTree;
 
28907
  friend class ::ExtACKeywords;
 
28908
  friend class ::ExtGnu;
 
28909
  friend class ::PragmaOnceUnitState;
 
28910
  friend class ::PragmaOnce;
 
28911
  friend class ::CMatchSyntax;
 
28912
 
 
28913
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
28914
 
 
28915
  CTree *_key_asm;    // CT_Token
 
28916
  CTree *_open;   // CT_Token
 
28917
  CTree *_expr;
 
28918
  CTree *_close;  // CT_Token
 
28919
 
 
28920
public:
 
28921
  CT_GnuAsmSpec (CTree *a, CTree *o, CTree *e, CTree *c) :
 
28922
    _key_asm (a), _open (o), _expr (e), _close (c) {}
 
28923
  static const char *NodeId ();
 
28924
  const char *NodeName () const { return NodeId (); } 
 
28925
  int Sons () const { return 4; }
 
28926
  CTree *Son (int n) const {
 
28927
    switch (n) {
 
28928
      case 0: return _key_asm;
 
28929
      case 1: return _open;
 
28930
      case 2: return _expr;
 
28931
      case 3: return _close;
 
28932
      default: return (CTree*)0;
 
28933
    }
 
28934
  }
 
28935
  CT_Expression *Expr () const { return (CT_Expression*)_expr; }
 
28936
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
28937
    if (old_son == _expr) _expr = new_son;
 
28938
    else if (old_son == _key_asm) _key_asm = new_son;
 
28939
    else if (old_son == _open) _open = new_son;
 
28940
    else if (old_son == _close) _close = new_son;
 
28941
  }
 
28942
};
 
28943
 
 
28944
 
 
28945
#line 28946 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28946
} // closed Puma
 
28947
class CCExprResolve;
 
28948
class CExprResolve;
 
28949
class WinIfExists;
 
28950
class WinImportHandler;
 
28951
class WinMacros;
 
28952
class WinAsm;
 
28953
class WinDeclSpecs;
 
28954
class WinMemberExplSpec;
 
28955
class WinTypeKeywords;
 
28956
class WinFriend;
 
28957
class ExtAC;
 
28958
class ExtACBuilderCoupling;
 
28959
class ExtACSyntaxCoupling;
 
28960
class ExtACTree;
 
28961
class ExtACKeywords;
 
28962
class ExtGnu;
 
28963
class PragmaOnceUnitState;
 
28964
class PragmaOnce;
 
28965
class CMatchSyntax;
 
28966
namespace Puma {
 
28967
 
 
28968
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14291
28969
class CT_GnuAsmDef : public CT_AsmDef {
14292
 
#line 14293 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28970
#line 28971 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
28971
  friend class ::CCExprResolve;
 
28972
  friend class ::CExprResolve;
14293
28973
  friend class ::WinIfExists;
14294
28974
  friend class ::WinImportHandler;
14295
28975
  friend class ::WinMacros;
14296
 
  friend class ::CMatchSyntax;
14297
 
  friend class ::ExtGnu;
 
28976
  friend class ::WinAsm;
 
28977
  friend class ::WinDeclSpecs;
 
28978
  friend class ::WinMemberExplSpec;
 
28979
  friend class ::WinTypeKeywords;
 
28980
  friend class ::WinFriend;
14298
28981
  friend class ::ExtAC;
14299
28982
  friend class ::ExtACBuilderCoupling;
14300
28983
  friend class ::ExtACSyntaxCoupling;
14301
28984
  friend class ::ExtACTree;
14302
28985
  friend class ::ExtACKeywords;
14303
 
  friend class ::WinAsm;
14304
 
  friend class ::WinDeclSpecs;
14305
 
  friend class ::WinMemberExplSpec;
14306
 
  friend class ::WinTypeKeywords;
 
28986
  friend class ::ExtGnu;
14307
28987
  friend class ::PragmaOnceUnitState;
14308
28988
  friend class ::PragmaOnce;
14309
 
  friend class ::CCExprResolve;
14310
 
  friend class ::CExprResolve;
 
28989
  friend class ::CMatchSyntax;
14311
28990
 
14312
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
28991
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14313
28992
 
14314
28993
  CTree *_cvqual;
14315
28994
  CTree *_operands0;
14365
29044
};
14366
29045
 
14367
29046
 
14368
 
#line 14369 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29047
#line 29048 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
14369
29048
} // closed Puma
 
29049
class CCExprResolve;
 
29050
class CExprResolve;
14370
29051
class WinIfExists;
14371
29052
class WinImportHandler;
14372
29053
class WinMacros;
14373
 
class CMatchSyntax;
14374
 
class ExtGnu;
 
29054
class WinAsm;
 
29055
class WinDeclSpecs;
 
29056
class WinMemberExplSpec;
 
29057
class WinTypeKeywords;
 
29058
class WinFriend;
14375
29059
class ExtAC;
14376
29060
class ExtACBuilderCoupling;
14377
29061
class ExtACSyntaxCoupling;
14378
29062
class ExtACTree;
14379
29063
class ExtACKeywords;
14380
 
class WinAsm;
14381
 
class WinDeclSpecs;
14382
 
class WinMemberExplSpec;
14383
 
class WinTypeKeywords;
 
29064
class ExtGnu;
14384
29065
class PragmaOnceUnitState;
14385
29066
class PragmaOnce;
14386
 
class CCExprResolve;
14387
 
class CExprResolve;
 
29067
class CMatchSyntax;
14388
29068
namespace Puma {
14389
29069
 
14390
 
#line 92 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29070
#line 123 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14391
29071
class CT_GnuAsmOperand : public CTree {
14392
 
#line 14393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29072
#line 29073 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29073
  friend class ::CCExprResolve;
 
29074
  friend class ::CExprResolve;
14393
29075
  friend class ::WinIfExists;
14394
29076
  friend class ::WinImportHandler;
14395
29077
  friend class ::WinMacros;
14396
 
  friend class ::CMatchSyntax;
14397
 
  friend class ::ExtGnu;
 
29078
  friend class ::WinAsm;
 
29079
  friend class ::WinDeclSpecs;
 
29080
  friend class ::WinMemberExplSpec;
 
29081
  friend class ::WinTypeKeywords;
 
29082
  friend class ::WinFriend;
14398
29083
  friend class ::ExtAC;
14399
29084
  friend class ::ExtACBuilderCoupling;
14400
29085
  friend class ::ExtACSyntaxCoupling;
14401
29086
  friend class ::ExtACTree;
14402
29087
  friend class ::ExtACKeywords;
14403
 
  friend class ::WinAsm;
14404
 
  friend class ::WinDeclSpecs;
14405
 
  friend class ::WinMemberExplSpec;
14406
 
  friend class ::WinTypeKeywords;
 
29088
  friend class ::ExtGnu;
14407
29089
  friend class ::PragmaOnceUnitState;
14408
29090
  friend class ::PragmaOnce;
14409
 
  friend class ::CCExprResolve;
14410
 
  friend class ::CExprResolve;
 
29091
  friend class ::CMatchSyntax;
14411
29092
 
14412
 
#line 92 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29093
#line 123 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14413
29094
 
14414
29095
  CTree *_string;
14415
29096
  CTree *_open;   // CT_Token
14442
29123
};
14443
29124
 
14444
29125
 
14445
 
#line 14446 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29126
#line 29127 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
14446
29127
} // closed Puma
 
29128
class CCExprResolve;
 
29129
class CExprResolve;
14447
29130
class WinIfExists;
14448
29131
class WinImportHandler;
14449
29132
class WinMacros;
14450
 
class CMatchSyntax;
14451
 
class ExtGnu;
 
29133
class WinAsm;
 
29134
class WinDeclSpecs;
 
29135
class WinMemberExplSpec;
 
29136
class WinTypeKeywords;
 
29137
class WinFriend;
14452
29138
class ExtAC;
14453
29139
class ExtACBuilderCoupling;
14454
29140
class ExtACSyntaxCoupling;
14455
29141
class ExtACTree;
14456
29142
class ExtACKeywords;
14457
 
class WinAsm;
14458
 
class WinDeclSpecs;
14459
 
class WinMemberExplSpec;
14460
 
class WinTypeKeywords;
 
29143
class ExtGnu;
14461
29144
class PragmaOnceUnitState;
14462
29145
class PragmaOnce;
14463
 
class CCExprResolve;
14464
 
class CExprResolve;
 
29146
class CMatchSyntax;
14465
29147
namespace Puma {
14466
29148
 
14467
 
#line 123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29149
#line 154 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14468
29150
class CT_GnuAsmOperands : public CT_List {
14469
 
#line 14470 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29151
#line 29152 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29152
  friend class ::CCExprResolve;
 
29153
  friend class ::CExprResolve;
14470
29154
  friend class ::WinIfExists;
14471
29155
  friend class ::WinImportHandler;
14472
29156
  friend class ::WinMacros;
14473
 
  friend class ::CMatchSyntax;
14474
 
  friend class ::ExtGnu;
 
29157
  friend class ::WinAsm;
 
29158
  friend class ::WinDeclSpecs;
 
29159
  friend class ::WinMemberExplSpec;
 
29160
  friend class ::WinTypeKeywords;
 
29161
  friend class ::WinFriend;
14475
29162
  friend class ::ExtAC;
14476
29163
  friend class ::ExtACBuilderCoupling;
14477
29164
  friend class ::ExtACSyntaxCoupling;
14478
29165
  friend class ::ExtACTree;
14479
29166
  friend class ::ExtACKeywords;
14480
 
  friend class ::WinAsm;
14481
 
  friend class ::WinDeclSpecs;
14482
 
  friend class ::WinMemberExplSpec;
14483
 
  friend class ::WinTypeKeywords;
 
29167
  friend class ::ExtGnu;
14484
29168
  friend class ::PragmaOnceUnitState;
14485
29169
  friend class ::PragmaOnce;
14486
 
  friend class ::CCExprResolve;
14487
 
  friend class ::CExprResolve;
 
29170
  friend class ::CMatchSyntax;
14488
29171
 
14489
 
#line 123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29172
#line 154 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14490
29173
 
14491
29174
public:
14492
29175
  CT_GnuAsmOperands () { AddProperties (OPEN | SEPARATORS); }
14495
29178
};
14496
29179
 
14497
29180
 
14498
 
#line 14499 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29181
#line 29182 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
14499
29182
} // closed Puma
 
29183
class CCExprResolve;
 
29184
class CExprResolve;
14500
29185
class WinIfExists;
14501
29186
class WinImportHandler;
14502
29187
class WinMacros;
14503
 
class CMatchSyntax;
14504
 
class ExtGnu;
 
29188
class WinAsm;
 
29189
class WinDeclSpecs;
 
29190
class WinMemberExplSpec;
 
29191
class WinTypeKeywords;
 
29192
class WinFriend;
14505
29193
class ExtAC;
14506
29194
class ExtACBuilderCoupling;
14507
29195
class ExtACSyntaxCoupling;
14508
29196
class ExtACTree;
14509
29197
class ExtACKeywords;
14510
 
class WinAsm;
14511
 
class WinDeclSpecs;
14512
 
class WinMemberExplSpec;
14513
 
class WinTypeKeywords;
 
29198
class ExtGnu;
14514
29199
class PragmaOnceUnitState;
14515
29200
class PragmaOnce;
14516
 
class CCExprResolve;
14517
 
class CExprResolve;
 
29201
class CMatchSyntax;
14518
29202
namespace Puma {
14519
29203
 
14520
 
#line 130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29204
#line 161 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14521
29205
class CT_GnuAsmClobbers : public CT_List {
14522
 
#line 14523 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29206
#line 29207 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29207
  friend class ::CCExprResolve;
 
29208
  friend class ::CExprResolve;
14523
29209
  friend class ::WinIfExists;
14524
29210
  friend class ::WinImportHandler;
14525
29211
  friend class ::WinMacros;
14526
 
  friend class ::CMatchSyntax;
14527
 
  friend class ::ExtGnu;
 
29212
  friend class ::WinAsm;
 
29213
  friend class ::WinDeclSpecs;
 
29214
  friend class ::WinMemberExplSpec;
 
29215
  friend class ::WinTypeKeywords;
 
29216
  friend class ::WinFriend;
14528
29217
  friend class ::ExtAC;
14529
29218
  friend class ::ExtACBuilderCoupling;
14530
29219
  friend class ::ExtACSyntaxCoupling;
14531
29220
  friend class ::ExtACTree;
14532
29221
  friend class ::ExtACKeywords;
14533
 
  friend class ::WinAsm;
14534
 
  friend class ::WinDeclSpecs;
14535
 
  friend class ::WinMemberExplSpec;
14536
 
  friend class ::WinTypeKeywords;
 
29222
  friend class ::ExtGnu;
14537
29223
  friend class ::PragmaOnceUnitState;
14538
29224
  friend class ::PragmaOnce;
14539
 
  friend class ::CCExprResolve;
14540
 
  friend class ::CExprResolve;
 
29225
  friend class ::CMatchSyntax;
14541
29226
 
14542
 
#line 130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29227
#line 161 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14543
29228
 
14544
29229
public:
14545
29230
  CT_GnuAsmClobbers () { AddProperties (OPEN | SEPARATORS); }
14554
29239
/*****************************************************************************/
14555
29240
 
14556
29241
 
14557
 
#line 14558 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29242
#line 29243 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
14558
29243
} // closed Puma
 
29244
class CCExprResolve;
 
29245
class CExprResolve;
14559
29246
class WinIfExists;
14560
29247
class WinImportHandler;
14561
29248
class WinMacros;
14562
 
class CMatchSyntax;
14563
 
class ExtGnu;
 
29249
class WinAsm;
 
29250
class WinDeclSpecs;
 
29251
class WinMemberExplSpec;
 
29252
class WinTypeKeywords;
 
29253
class WinFriend;
14564
29254
class ExtAC;
14565
29255
class ExtACBuilderCoupling;
14566
29256
class ExtACSyntaxCoupling;
14567
29257
class ExtACTree;
14568
29258
class ExtACKeywords;
14569
 
class WinAsm;
14570
 
class WinDeclSpecs;
14571
 
class WinMemberExplSpec;
14572
 
class WinTypeKeywords;
 
29259
class ExtGnu;
14573
29260
class PragmaOnceUnitState;
14574
29261
class PragmaOnce;
14575
 
class CCExprResolve;
14576
 
class CExprResolve;
14577
 
namespace Puma {
14578
 
 
14579
 
#line 143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29262
class CMatchSyntax;
 
29263
namespace Puma {
 
29264
 
 
29265
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29266
 
 
29267
#line 29268 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29268
} // closed Puma
 
29269
 
 
29270
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29271
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29272
#include "CCExprResolveH.ah"
 
29273
#endif
 
29274
namespace Puma {
 
29275
 
 
29276
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29277
 
 
29278
#line 29279 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29279
} // closed Puma
 
29280
 
 
29281
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29282
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29283
#include "CExprResolveH.ah"
 
29284
#endif
 
29285
namespace Puma {
 
29286
 
 
29287
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14580
29288
class CT_GnuStatementExpr : public CT_Expression {
14581
 
#line 14582 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29289
#line 29290 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29290
  friend class ::CCExprResolve;
 
29291
  friend class ::CExprResolve;
14582
29292
  friend class ::WinIfExists;
14583
29293
  friend class ::WinImportHandler;
14584
29294
  friend class ::WinMacros;
14585
 
  friend class ::CMatchSyntax;
14586
 
  friend class ::ExtGnu;
 
29295
  friend class ::WinAsm;
 
29296
  friend class ::WinDeclSpecs;
 
29297
  friend class ::WinMemberExplSpec;
 
29298
  friend class ::WinTypeKeywords;
 
29299
  friend class ::WinFriend;
14587
29300
  friend class ::ExtAC;
14588
29301
  friend class ::ExtACBuilderCoupling;
14589
29302
  friend class ::ExtACSyntaxCoupling;
14590
29303
  friend class ::ExtACTree;
14591
29304
  friend class ::ExtACKeywords;
14592
 
  friend class ::WinAsm;
14593
 
  friend class ::WinDeclSpecs;
14594
 
  friend class ::WinMemberExplSpec;
14595
 
  friend class ::WinTypeKeywords;
 
29305
  friend class ::ExtGnu;
14596
29306
  friend class ::PragmaOnceUnitState;
14597
29307
  friend class ::PragmaOnce;
14598
 
  friend class ::CCExprResolve;
14599
 
  friend class ::CExprResolve;
 
29308
  friend class ::CMatchSyntax;
14600
29309
 
14601
 
#line 143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29310
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14602
29311
 
14603
29312
  CTree *_open;
14604
29313
  CTree *_stmt;
14621
29330
   private:
14622
29331
  typedef CT_GnuStatementExpr CCExprResolveExpr;
14623
29332
 
14624
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
29333
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
14625
29334
 public :
14626
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
29335
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
14627
29336
  typedef CT_GnuStatementExpr CExprResolveExpr;
14628
29337
 
14629
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
29338
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
14630
29339
 public :
14631
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
14632
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29340
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
29341
#line 193 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14633
29342
};
14634
29343
 
14635
29344
/*****************************************************************************/
14640
29349
 
14641
29350
// typeof(expr) or typeof(named type) feature
14642
29351
 
14643
 
#line 14644 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29352
#line 29353 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
14644
29353
} // closed Puma
 
29354
class CCExprResolve;
 
29355
class CExprResolve;
14645
29356
class WinIfExists;
14646
29357
class WinImportHandler;
14647
29358
class WinMacros;
14648
 
class CMatchSyntax;
14649
 
class ExtGnu;
 
29359
class WinAsm;
 
29360
class WinDeclSpecs;
 
29361
class WinMemberExplSpec;
 
29362
class WinTypeKeywords;
 
29363
class WinFriend;
14650
29364
class ExtAC;
14651
29365
class ExtACBuilderCoupling;
14652
29366
class ExtACSyntaxCoupling;
14653
29367
class ExtACTree;
14654
29368
class ExtACKeywords;
14655
 
class WinAsm;
14656
 
class WinDeclSpecs;
14657
 
class WinMemberExplSpec;
14658
 
class WinTypeKeywords;
 
29369
class ExtGnu;
14659
29370
class PragmaOnceUnitState;
14660
29371
class PragmaOnce;
14661
 
class CCExprResolve;
14662
 
class CExprResolve;
 
29372
class CMatchSyntax;
14663
29373
namespace Puma {
14664
29374
 
14665
 
#line 171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29375
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14666
29376
class CT_GnuTypeof : public CT_DeclSpec, public CSemValue {
14667
 
#line 14668 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29377
#line 29378 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29378
  friend class ::CCExprResolve;
 
29379
  friend class ::CExprResolve;
14668
29380
  friend class ::WinIfExists;
14669
29381
  friend class ::WinImportHandler;
14670
29382
  friend class ::WinMacros;
14671
 
  friend class ::CMatchSyntax;
14672
 
  friend class ::ExtGnu;
 
29383
  friend class ::WinAsm;
 
29384
  friend class ::WinDeclSpecs;
 
29385
  friend class ::WinMemberExplSpec;
 
29386
  friend class ::WinTypeKeywords;
 
29387
  friend class ::WinFriend;
14673
29388
  friend class ::ExtAC;
14674
29389
  friend class ::ExtACBuilderCoupling;
14675
29390
  friend class ::ExtACSyntaxCoupling;
14676
29391
  friend class ::ExtACTree;
14677
29392
  friend class ::ExtACKeywords;
14678
 
  friend class ::WinAsm;
14679
 
  friend class ::WinDeclSpecs;
14680
 
  friend class ::WinMemberExplSpec;
14681
 
  friend class ::WinTypeKeywords;
 
29393
  friend class ::ExtGnu;
14682
29394
  friend class ::PragmaOnceUnitState;
14683
29395
  friend class ::PragmaOnce;
14684
 
  friend class ::CCExprResolve;
14685
 
  friend class ::CExprResolve;
 
29396
  friend class ::CMatchSyntax;
14686
29397
 
14687
 
#line 171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
29398
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14688
29399
 
14689
29400
  CTree *sons[5]; // key, open, type, close, expr
14690
29401
 
14712
29423
 
14713
29424
#endif /* __gnu_c_tree_h__ */
14714
29425
 
14715
 
#line 14716 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
14716
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_GnuCTree_h__
14717
 
 
14718
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
14719
 
 
14720
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStructure.h"
14721
 
// This file is part of PUMA.
14722
 
// Copyright (C) 1999-2003  The PUMA developer team.
14723
 
//                                                                
14724
 
// This program is free software;  you can redistribute it and/or 
14725
 
// modify it under the terms of the GNU General Public License as 
14726
 
// published by the Free Software Foundation; either version 2 of 
14727
 
// the License, or (at your option) any later version.            
14728
 
//                                                                
14729
 
// This program is distributed in the hope that it will be useful,
14730
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
14731
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
14732
 
// GNU General Public License for more details.                   
14733
 
//                                                                
14734
 
// You should have received a copy of the GNU General Public      
14735
 
// License along with this program; if not, write to the Free     
14736
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
14737
 
// MA  02111-1307  USA                                            
14738
 
 
14739
 
#ifndef __CStructure_h__
14740
 
#define __CStructure_h__
14741
 
 
14742
 
// base class of everything that also is a scope
14743
 
// (function, class, union, namespace...)
14744
 
// stores semantic info objects for variables, 
14745
 
// enumerators, function and template parameters,
14746
 
// typedefs, classes, unions, enumerations, 
14747
 
// namespaces, using-directives, friend function 
14748
 
// declarations, functions, class methods, class 
14749
 
// data members, function and class templates,
14750
 
// function and class template instances, member 
14751
 
// aliases
14752
 
 
14753
 
 
14754
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
14755
 
// This file is part of PUMA.
14756
 
// Copyright (C) 1999-2003  The PUMA developer team.
14757
 
//                                                                
14758
 
// This program is free software;  you can redistribute it and/or 
14759
 
// modify it under the terms of the GNU General Public License as 
14760
 
// published by the Free Software Foundation; either version 2 of 
14761
 
// the License, or (at your option) any later version.            
14762
 
//                                                                
14763
 
// This program is distributed in the hope that it will be useful,
14764
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
14765
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
14766
 
// GNU General Public License for more details.                   
14767
 
//                                                                
14768
 
// You should have received a copy of the GNU General Public      
14769
 
// License along with this program; if not, write to the Free     
14770
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
14771
 
// MA  02111-1307  USA                                            
14772
 
 
14773
 
#ifndef __CScopeInfo_h__
14774
 
#define __CScopeInfo_h__
14775
 
 
14776
 
// scope info
14777
 
 
14778
 
 
14779
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
 
29426
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnuCSemDeclSpecs.ah"
 
29427
namespace Puma {
 
29428
  
 
29429
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnuCSemDeclSpecs.ah"
 
29430
 
 
29431
}
 
29432
 
 
29433
#endif /* __ext_gnu_csem_decl_specs_ah__ */
 
29434
 
 
29435
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
29436
#endif
 
29437
namespace Puma {
 
29438
 
 
29439
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
29440
class CSemDeclSpecs {
 
29441
#line 29442 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29442
  friend class ::CCExprResolve;
 
29443
  friend class ::CExprResolve;
 
29444
  friend class ::WinIfExists;
 
29445
  friend class ::WinImportHandler;
 
29446
  friend class ::WinMacros;
 
29447
  friend class ::WinAsm;
 
29448
  friend class ::WinDeclSpecs;
 
29449
  friend class ::WinMemberExplSpec;
 
29450
  friend class ::WinTypeKeywords;
 
29451
  friend class ::WinFriend;
 
29452
  friend class ::ExtAC;
 
29453
  friend class ::ExtACBuilderCoupling;
 
29454
  friend class ::ExtACSyntaxCoupling;
 
29455
  friend class ::ExtACTree;
 
29456
  friend class ::ExtACKeywords;
 
29457
  friend class ::ExtGnu;
 
29458
  friend class ::PragmaOnceUnitState;
 
29459
  friend class ::PragmaOnce;
 
29460
  friend class ::CMatchSyntax;
 
29461
 
 
29462
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
29463
 
 
29464
 
 
29465
  // initialization context
 
29466
  ErrorSink *_err;
 
29467
  CT_DeclSpecSeq *_dss;
 
29468
  
 
29469
  // analysis results:
 
29470
  // -----------------
 
29471
  // counters
 
29472
  int _names;
 
29473
  int _class_specs;
 
29474
  int _union_specs;
 
29475
  int _enum_specs;
 
29476
  // nodes/objects
 
29477
  int _prim_map[CT_PrimDeclSpec::NumTypes];
 
29478
  Token *_prim_token[CT_PrimDeclSpec::NumTypes];
 
29479
  CT_SimpleName *_name;
 
29480
 
 
29481
  // final results after all checks:
 
29482
  // -------------------------------
 
29483
  CTypeInfo *_type;
 
29484
  bool _def_class, _def_union, _def_enum;
 
29485
 
 
29486
  // analyses the syntax tree nodes of the decl-spec sequence. Return false
 
29487
  // if an error was detected. 
 
29488
  
 
29489
#line 29490 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29490
public: __attribute__((always_inline)) inline bool __exec_old_analyze_seq();
 
29491
private:
 
29492
 
 
29493
#line 55 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
29494
bool analyze_seq ();
 
29495
  
 
29496
  // analyzes the current declaration specifier in the sequence and set some
 
29497
  // attributes according to the result. Returns false if the specifier type
 
29498
  // is unknown.
 
29499
  
 
29500
#line 29501 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29501
public: __attribute__((always_inline)) inline bool __exec_old_analyze(::Puma::CTree * spec);
 
29502
private:
 
29503
 
 
29504
#line 60 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
29505
bool analyze (CTree *spec);
 
29506
 
 
29507
  // check functions (used after analyse_seq()
 
29508
  bool check_prim_decl_specs (bool &have_type);
 
29509
  
 
29510
#line 29511 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29511
public: __attribute__((always_inline)) inline bool __exec_old_check_complex_decl_specs(bool & have_type);
 
29512
private:
 
29513
 
 
29514
#line 64 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
29515
bool check_complex_decl_specs (bool &have_type);  
 
29516
  bool check_storage_class ();
 
29517
  
 
29518
#line 29519 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29519
public: __attribute__((always_inline)) inline bool __exec_old_check_signed_unsigned();
 
29520
private:
 
29521
 
 
29522
#line 66 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
29523
bool check_signed_unsigned ();
 
29524
  bool check_long_short (); 
 
29525
  
 
29526
#line 29527 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29527
public: __attribute__((always_inline)) inline bool __exec_old_check_finally();
 
29528
private:
 
29529
 
 
29530
#line 68 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
29531
bool check_finally ();
 
29532
  
 
29533
  // type creation code
 
29534
  
 
29535
#line 29536 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29536
public: __attribute__((always_inline)) inline ::Puma::CTypeInfo * __exec_old_create_type();
 
29537
private:
 
29538
 
 
29539
#line 71 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
29540
CTypeInfo *create_type ();
 
29541
  CTypeInfo *create_qualifiers (CTypeInfo *type);
 
29542
  
 
29543
public:
 
29544
  CSemDeclSpecs (ErrorSink *, CT_DeclSpecSeq *, bool support_implicit_int = false);
 
29545
  ~CSemDeclSpecs ();
 
29546
 
 
29547
  CTypeInfo *make_type () const;
 
29548
  CT_DeclSpecSeq *DeclSpecSeq () const;
 
29549
 
 
29550
  bool declared (CT_PrimDeclSpec::Type) const;
 
29551
  bool defClass () const;
 
29552
  bool defUnion () const;
 
29553
  bool defEnum () const;
 
29554
   private:
 
29555
  typedef CSemDeclSpecs ExtGnuCSemDeclSpecs;
 
29556
 
 
29557
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnuCSemDeclSpecs.ah"
 
29558
 public :
 
29559
int _typeofs ;
 
29560
CT_GnuTypeof * _typeof_node ;
 
29561
#line 85 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
29562
};
 
29563
 
 
29564
inline CSemDeclSpecs::~CSemDeclSpecs () 
 
29565
 { if (_type) CTypeInfo::Destroy (_type); }
 
29566
  
 
29567
inline CTypeInfo *CSemDeclSpecs::make_type () const 
 
29568
 { return CTypeInfo::Duplicate (_type); }
 
29569
inline CT_DeclSpecSeq *CSemDeclSpecs::DeclSpecSeq () const 
 
29570
 { return _dss; }
 
29571
 
 
29572
inline bool CSemDeclSpecs::declared (CT_PrimDeclSpec::Type as) const 
 
29573
 { return _prim_map[as] > 0; }
 
29574
 
 
29575
inline bool CSemDeclSpecs::defClass () const
 
29576
 { return _def_class; }
 
29577
inline bool CSemDeclSpecs::defUnion () const
 
29578
 { return _def_union; }
 
29579
inline bool CSemDeclSpecs::defEnum () const
 
29580
 { return _def_enum; }
 
29581
 
 
29582
 
 
29583
} // namespace Puma
 
29584
 
 
29585
#endif /* __c_sem_decl_specs_h__ */
 
29586
 
 
29587
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
14780
29588
// This file is part of PUMA.
14781
29589
// Copyright (C) 1999-2003  The PUMA developer team.
14782
29590
//                                                                
14810
29618
// to the same entity
14811
29619
 
14812
29620
 
14813
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
 
29621
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
14814
29622
// This file is part of PUMA.
14815
29623
// Copyright (C) 1999-2003  The PUMA developer team.
14816
29624
//                                                                
14845
29653
class Unit;
14846
29654
 
14847
29655
 
14848
 
#line 14849 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29656
#line 29657 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
14849
29657
} // closed Puma
 
29658
class CCExprResolve;
 
29659
class CExprResolve;
14850
29660
class WinIfExists;
14851
29661
class WinImportHandler;
14852
29662
class WinMacros;
14853
 
class CMatchSyntax;
14854
 
class ExtGnu;
 
29663
class WinAsm;
 
29664
class WinDeclSpecs;
 
29665
class WinMemberExplSpec;
 
29666
class WinTypeKeywords;
 
29667
class WinFriend;
14855
29668
class ExtAC;
14856
29669
class ExtACBuilderCoupling;
14857
29670
class ExtACSyntaxCoupling;
14858
29671
class ExtACTree;
14859
29672
class ExtACKeywords;
14860
 
class WinAsm;
14861
 
class WinDeclSpecs;
14862
 
class WinMemberExplSpec;
14863
 
class WinTypeKeywords;
 
29673
class ExtGnu;
14864
29674
class PragmaOnceUnitState;
14865
29675
class PragmaOnce;
14866
 
class CCExprResolve;
14867
 
class CExprResolve;
 
29676
class CMatchSyntax;
14868
29677
namespace Puma {
14869
29678
 
14870
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
 
29679
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
14871
29680
class CSourceInfo {
14872
 
#line 14873 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29681
#line 29682 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29682
  friend class ::CCExprResolve;
 
29683
  friend class ::CExprResolve;
14873
29684
  friend class ::WinIfExists;
14874
29685
  friend class ::WinImportHandler;
14875
29686
  friend class ::WinMacros;
14876
 
  friend class ::CMatchSyntax;
14877
 
  friend class ::ExtGnu;
 
29687
  friend class ::WinAsm;
 
29688
  friend class ::WinDeclSpecs;
 
29689
  friend class ::WinMemberExplSpec;
 
29690
  friend class ::WinTypeKeywords;
 
29691
  friend class ::WinFriend;
14878
29692
  friend class ::ExtAC;
14879
29693
  friend class ::ExtACBuilderCoupling;
14880
29694
  friend class ::ExtACSyntaxCoupling;
14881
29695
  friend class ::ExtACTree;
14882
29696
  friend class ::ExtACKeywords;
14883
 
  friend class ::WinAsm;
14884
 
  friend class ::WinDeclSpecs;
14885
 
  friend class ::WinMemberExplSpec;
14886
 
  friend class ::WinTypeKeywords;
 
29697
  friend class ::ExtGnu;
14887
29698
  friend class ::PragmaOnceUnitState;
14888
29699
  friend class ::PragmaOnce;
14889
 
  friend class ::CCExprResolve;
14890
 
  friend class ::CExprResolve;
 
29700
  friend class ::CMatchSyntax;
14891
29701
 
14892
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
 
29702
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
14893
29703
 
14894
29704
  CFileInfo *_FileInfo; 
14895
29705
  CT_Token *_StartToken;
14963
29773
 
14964
29774
#endif /* __CSourceInfo_h__ */
14965
29775
 
14966
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProtection.h"
 
29776
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProtection.h"
14967
29777
// This file is part of PUMA.
14968
29778
// Copyright (C) 1999-2003  The PUMA developer team.
14969
29779
//                                                                
14991
29801
 
14992
29802
 
14993
29803
 
14994
 
#line 14995 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29804
#line 29805 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
14995
29805
} // closed Puma
 
29806
class CCExprResolve;
 
29807
class CExprResolve;
14996
29808
class WinIfExists;
14997
29809
class WinImportHandler;
14998
29810
class WinMacros;
14999
 
class CMatchSyntax;
15000
 
class ExtGnu;
 
29811
class WinAsm;
 
29812
class WinDeclSpecs;
 
29813
class WinMemberExplSpec;
 
29814
class WinTypeKeywords;
 
29815
class WinFriend;
15001
29816
class ExtAC;
15002
29817
class ExtACBuilderCoupling;
15003
29818
class ExtACSyntaxCoupling;
15004
29819
class ExtACTree;
15005
29820
class ExtACKeywords;
15006
 
class WinAsm;
15007
 
class WinDeclSpecs;
15008
 
class WinMemberExplSpec;
15009
 
class WinTypeKeywords;
 
29821
class ExtGnu;
15010
29822
class PragmaOnceUnitState;
15011
29823
class PragmaOnce;
15012
 
class CCExprResolve;
15013
 
class CExprResolve;
 
29824
class CMatchSyntax;
15014
29825
namespace Puma {
15015
29826
 
15016
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProtection.h"
 
29827
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProtection.h"
15017
29828
struct CProtection {
15018
 
#line 15019 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29829
#line 29830 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29830
  friend class ::CCExprResolve;
 
29831
  friend class ::CExprResolve;
15019
29832
  friend class ::WinIfExists;
15020
29833
  friend class ::WinImportHandler;
15021
29834
  friend class ::WinMacros;
15022
 
  friend class ::CMatchSyntax;
15023
 
  friend class ::ExtGnu;
 
29835
  friend class ::WinAsm;
 
29836
  friend class ::WinDeclSpecs;
 
29837
  friend class ::WinMemberExplSpec;
 
29838
  friend class ::WinTypeKeywords;
 
29839
  friend class ::WinFriend;
15024
29840
  friend class ::ExtAC;
15025
29841
  friend class ::ExtACBuilderCoupling;
15026
29842
  friend class ::ExtACSyntaxCoupling;
15027
29843
  friend class ::ExtACTree;
15028
29844
  friend class ::ExtACKeywords;
15029
 
  friend class ::WinAsm;
15030
 
  friend class ::WinDeclSpecs;
15031
 
  friend class ::WinMemberExplSpec;
15032
 
  friend class ::WinTypeKeywords;
 
29845
  friend class ::ExtGnu;
15033
29846
  friend class ::PragmaOnceUnitState;
15034
29847
  friend class ::PragmaOnce;
15035
 
  friend class ::CCExprResolve;
15036
 
  friend class ::CExprResolve;
 
29848
  friend class ::CMatchSyntax;
15037
29849
 
15038
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProtection.h"
 
29850
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProtection.h"
15039
29851
 
15040
29852
  enum Type {
15041
29853
    PROT_PUBLIC, 
15050
29862
 
15051
29863
#endif /* __CProtection_h__ */
15052
29864
 
15053
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStorage.h"
 
29865
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStorage.h"
15054
29866
// This file is part of PUMA.
15055
29867
// Copyright (C) 1999-2003  The PUMA developer team.
15056
29868
//                                                                
15078
29890
 
15079
29891
 
15080
29892
 
15081
 
#line 15082 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29893
#line 29894 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
15082
29894
} // closed Puma
 
29895
class CCExprResolve;
 
29896
class CExprResolve;
15083
29897
class WinIfExists;
15084
29898
class WinImportHandler;
15085
29899
class WinMacros;
15086
 
class CMatchSyntax;
15087
 
class ExtGnu;
 
29900
class WinAsm;
 
29901
class WinDeclSpecs;
 
29902
class WinMemberExplSpec;
 
29903
class WinTypeKeywords;
 
29904
class WinFriend;
15088
29905
class ExtAC;
15089
29906
class ExtACBuilderCoupling;
15090
29907
class ExtACSyntaxCoupling;
15091
29908
class ExtACTree;
15092
29909
class ExtACKeywords;
15093
 
class WinAsm;
15094
 
class WinDeclSpecs;
15095
 
class WinMemberExplSpec;
15096
 
class WinTypeKeywords;
 
29910
class ExtGnu;
15097
29911
class PragmaOnceUnitState;
15098
29912
class PragmaOnce;
15099
 
class CCExprResolve;
15100
 
class CExprResolve;
 
29913
class CMatchSyntax;
15101
29914
namespace Puma {
15102
29915
 
15103
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStorage.h"
 
29916
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStorage.h"
15104
29917
struct CStorage {
15105
 
#line 15106 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29918
#line 29919 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29919
  friend class ::CCExprResolve;
 
29920
  friend class ::CExprResolve;
15106
29921
  friend class ::WinIfExists;
15107
29922
  friend class ::WinImportHandler;
15108
29923
  friend class ::WinMacros;
15109
 
  friend class ::CMatchSyntax;
15110
 
  friend class ::ExtGnu;
 
29924
  friend class ::WinAsm;
 
29925
  friend class ::WinDeclSpecs;
 
29926
  friend class ::WinMemberExplSpec;
 
29927
  friend class ::WinTypeKeywords;
 
29928
  friend class ::WinFriend;
15111
29929
  friend class ::ExtAC;
15112
29930
  friend class ::ExtACBuilderCoupling;
15113
29931
  friend class ::ExtACSyntaxCoupling;
15114
29932
  friend class ::ExtACTree;
15115
29933
  friend class ::ExtACKeywords;
15116
 
  friend class ::WinAsm;
15117
 
  friend class ::WinDeclSpecs;
15118
 
  friend class ::WinMemberExplSpec;
15119
 
  friend class ::WinTypeKeywords;
 
29934
  friend class ::ExtGnu;
15120
29935
  friend class ::PragmaOnceUnitState;
15121
29936
  friend class ::PragmaOnce;
15122
 
  friend class ::CCExprResolve;
15123
 
  friend class ::CExprResolve;
 
29937
  friend class ::CMatchSyntax;
15124
29938
 
15125
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStorage.h"
 
29939
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStorage.h"
15126
29940
 
15127
29941
  enum Type {
15128
29942
    CLASS_STATIC,
15137
29951
 
15138
29952
#endif /* __CStorage_h__ */
15139
29953
 
15140
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLinkage.h"
 
29954
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLinkage.h"
15141
29955
// This file is part of PUMA.
15142
29956
// Copyright (C) 1999-2003  The PUMA developer team.
15143
29957
//                                                                
15165
29979
 
15166
29980
 
15167
29981
 
15168
 
#line 15169 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
29982
#line 29983 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
15169
29983
} // closed Puma
 
29984
class CCExprResolve;
 
29985
class CExprResolve;
15170
29986
class WinIfExists;
15171
29987
class WinImportHandler;
15172
29988
class WinMacros;
15173
 
class CMatchSyntax;
15174
 
class ExtGnu;
 
29989
class WinAsm;
 
29990
class WinDeclSpecs;
 
29991
class WinMemberExplSpec;
 
29992
class WinTypeKeywords;
 
29993
class WinFriend;
15175
29994
class ExtAC;
15176
29995
class ExtACBuilderCoupling;
15177
29996
class ExtACSyntaxCoupling;
15178
29997
class ExtACTree;
15179
29998
class ExtACKeywords;
15180
 
class WinAsm;
15181
 
class WinDeclSpecs;
15182
 
class WinMemberExplSpec;
15183
 
class WinTypeKeywords;
 
29999
class ExtGnu;
15184
30000
class PragmaOnceUnitState;
15185
30001
class PragmaOnce;
15186
 
class CCExprResolve;
15187
 
class CExprResolve;
 
30002
class CMatchSyntax;
15188
30003
namespace Puma {
15189
30004
 
15190
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLinkage.h"
 
30005
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLinkage.h"
15191
30006
struct CLinkage {
15192
 
#line 15193 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
30007
#line 30008 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
30008
  friend class ::CCExprResolve;
 
30009
  friend class ::CExprResolve;
15193
30010
  friend class ::WinIfExists;
15194
30011
  friend class ::WinImportHandler;
15195
30012
  friend class ::WinMacros;
15196
 
  friend class ::CMatchSyntax;
15197
 
  friend class ::ExtGnu;
 
30013
  friend class ::WinAsm;
 
30014
  friend class ::WinDeclSpecs;
 
30015
  friend class ::WinMemberExplSpec;
 
30016
  friend class ::WinTypeKeywords;
 
30017
  friend class ::WinFriend;
15198
30018
  friend class ::ExtAC;
15199
30019
  friend class ::ExtACBuilderCoupling;
15200
30020
  friend class ::ExtACSyntaxCoupling;
15201
30021
  friend class ::ExtACTree;
15202
30022
  friend class ::ExtACKeywords;
15203
 
  friend class ::WinAsm;
15204
 
  friend class ::WinDeclSpecs;
15205
 
  friend class ::WinMemberExplSpec;
15206
 
  friend class ::WinTypeKeywords;
 
30023
  friend class ::ExtGnu;
15207
30024
  friend class ::PragmaOnceUnitState;
15208
30025
  friend class ::PragmaOnce;
15209
 
  friend class ::CCExprResolve;
15210
 
  friend class ::CExprResolve;
 
30026
  friend class ::CMatchSyntax;
15211
30027
 
15212
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLinkage.h"
 
30028
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLinkage.h"
15213
30029
 
15214
30030
  enum Type {
15215
30031
    LINK_INTERNAL, 
15223
30039
 
15224
30040
#endif /* __CLinkage_h__ */
15225
30041
 
15226
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLanguage.h"
 
30042
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLanguage.h"
15227
30043
// This file is part of PUMA.
15228
30044
// Copyright (C) 1999-2003  The PUMA developer team.
15229
30045
//                                                                
15246
30062
#define __CLanguage_h__
15247
30063
 
15248
30064
 
15249
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLanguage.h"
 
30065
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLanguage.h"
15250
30066
// Entity name encoding language; language linkage
15251
30067
 
15252
30068
namespace Puma {
15253
30069
 
15254
30070
 
15255
30071
 
15256
 
#line 15257 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
30072
#line 30073 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
15257
30073
} // closed Puma
 
30074
class CCExprResolve;
 
30075
class CExprResolve;
15258
30076
class WinIfExists;
15259
30077
class WinImportHandler;
15260
30078
class WinMacros;
15261
 
class CMatchSyntax;
15262
 
class ExtGnu;
 
30079
class WinAsm;
 
30080
class WinDeclSpecs;
 
30081
class WinMemberExplSpec;
 
30082
class WinTypeKeywords;
 
30083
class WinFriend;
15263
30084
class ExtAC;
15264
30085
class ExtACBuilderCoupling;
15265
30086
class ExtACSyntaxCoupling;
15266
30087
class ExtACTree;
15267
30088
class ExtACKeywords;
15268
 
class WinAsm;
15269
 
class WinDeclSpecs;
15270
 
class WinMemberExplSpec;
15271
 
class WinTypeKeywords;
 
30089
class ExtGnu;
15272
30090
class PragmaOnceUnitState;
15273
30091
class PragmaOnce;
15274
 
class CCExprResolve;
15275
 
class CExprResolve;
 
30092
class CMatchSyntax;
15276
30093
namespace Puma {
15277
30094
 
15278
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLanguage.h"
 
30095
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLanguage.h"
15279
30096
class CLanguage {
15280
 
#line 15281 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
30097
#line 30098 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
30098
  friend class ::CCExprResolve;
 
30099
  friend class ::CExprResolve;
15281
30100
  friend class ::WinIfExists;
15282
30101
  friend class ::WinImportHandler;
15283
30102
  friend class ::WinMacros;
15284
 
  friend class ::CMatchSyntax;
15285
 
  friend class ::ExtGnu;
 
30103
  friend class ::WinAsm;
 
30104
  friend class ::WinDeclSpecs;
 
30105
  friend class ::WinMemberExplSpec;
 
30106
  friend class ::WinTypeKeywords;
 
30107
  friend class ::WinFriend;
15286
30108
  friend class ::ExtAC;
15287
30109
  friend class ::ExtACBuilderCoupling;
15288
30110
  friend class ::ExtACSyntaxCoupling;
15289
30111
  friend class ::ExtACTree;
15290
30112
  friend class ::ExtACKeywords;
15291
 
  friend class ::WinAsm;
15292
 
  friend class ::WinDeclSpecs;
15293
 
  friend class ::WinMemberExplSpec;
15294
 
  friend class ::WinTypeKeywords;
 
30113
  friend class ::ExtGnu;
15295
30114
  friend class ::PragmaOnceUnitState;
15296
30115
  friend class ::PragmaOnce;
15297
 
  friend class ::CCExprResolve;
15298
 
  friend class ::CExprResolve;
 
30116
  friend class ::CMatchSyntax;
15299
30117
 
15300
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLanguage.h"
 
30118
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLanguage.h"
15301
30119
 
15302
30120
public:
15303
30121
  enum LangType {
15333
30151
 
15334
30152
#endif /* __CLanguage_h__ */
15335
30153
 
15336
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
 
30154
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
15337
30155
// This file is part of PUMA.
15338
30156
// Copyright (C) 1999-2003  The PUMA developer team.
15339
30157
//                                                                
15361
30179
 
15362
30180
 
15363
30181
 
15364
 
#line 15365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
30182
#line 30183 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
15365
30183
} // closed Puma
 
30184
class CCExprResolve;
 
30185
class CExprResolve;
15366
30186
class WinIfExists;
15367
30187
class WinImportHandler;
15368
30188
class WinMacros;
15369
 
class CMatchSyntax;
15370
 
class ExtGnu;
 
30189
class WinAsm;
 
30190
class WinDeclSpecs;
 
30191
class WinMemberExplSpec;
 
30192
class WinTypeKeywords;
 
30193
class WinFriend;
15371
30194
class ExtAC;
15372
30195
class ExtACBuilderCoupling;
15373
30196
class ExtACSyntaxCoupling;
15374
30197
class ExtACTree;
15375
30198
class ExtACKeywords;
15376
 
class WinAsm;
15377
 
class WinDeclSpecs;
15378
 
class WinMemberExplSpec;
15379
 
class WinTypeKeywords;
 
30199
class ExtGnu;
15380
30200
class PragmaOnceUnitState;
15381
30201
class PragmaOnce;
15382
 
class CCExprResolve;
15383
 
class CExprResolve;
 
30202
class CMatchSyntax;
15384
30203
namespace Puma {
15385
30204
 
15386
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
 
30205
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
15387
30206
class CSpecifiers {
15388
 
#line 15389 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
30207
#line 30208 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
30208
  friend class ::CCExprResolve;
 
30209
  friend class ::CExprResolve;
15389
30210
  friend class ::WinIfExists;
15390
30211
  friend class ::WinImportHandler;
15391
30212
  friend class ::WinMacros;
15392
 
  friend class ::CMatchSyntax;
15393
 
  friend class ::ExtGnu;
 
30213
  friend class ::WinAsm;
 
30214
  friend class ::WinDeclSpecs;
 
30215
  friend class ::WinMemberExplSpec;
 
30216
  friend class ::WinTypeKeywords;
 
30217
  friend class ::WinFriend;
15394
30218
  friend class ::ExtAC;
15395
30219
  friend class ::ExtACBuilderCoupling;
15396
30220
  friend class ::ExtACSyntaxCoupling;
15397
30221
  friend class ::ExtACTree;
15398
30222
  friend class ::ExtACKeywords;
15399
 
  friend class ::WinAsm;
15400
 
  friend class ::WinDeclSpecs;
15401
 
  friend class ::WinMemberExplSpec;
15402
 
  friend class ::WinTypeKeywords;
 
30223
  friend class ::ExtGnu;
15403
30224
  friend class ::PragmaOnceUnitState;
15404
30225
  friend class ::PragmaOnce;
15405
 
  friend class ::CCExprResolve;
15406
 
  friend class ::CExprResolve;
 
30226
  friend class ::CMatchSyntax;
15407
30227
 
15408
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
 
30228
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
15409
30229
 
15410
30230
public:
15411
30231
  enum Spec {
15459
30279
 
15460
30280
#endif /* __CSpecifiers__ */
15461
30281
 
15462
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
 
30282
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
15463
30283
namespace Puma {
15464
30284
 
15465
30285
 
15493
30313
class CTemplateInstance;
15494
30314
 
15495
30315
 
15496
 
#line 15497 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
30316
#line 30317 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
15497
30317
} // closed Puma
 
30318
class CCExprResolve;
 
30319
class CExprResolve;
15498
30320
class WinIfExists;
15499
30321
class WinImportHandler;
15500
30322
class WinMacros;
15501
 
class CMatchSyntax;
15502
 
class ExtGnu;
 
30323
class WinAsm;
 
30324
class WinDeclSpecs;
 
30325
class WinMemberExplSpec;
 
30326
class WinTypeKeywords;
 
30327
class WinFriend;
15503
30328
class ExtAC;
15504
30329
class ExtACBuilderCoupling;
15505
30330
class ExtACSyntaxCoupling;
15506
30331
class ExtACTree;
15507
30332
class ExtACKeywords;
15508
 
class WinAsm;
15509
 
class WinDeclSpecs;
15510
 
class WinMemberExplSpec;
15511
 
class WinTypeKeywords;
 
30333
class ExtGnu;
15512
30334
class PragmaOnceUnitState;
15513
30335
class PragmaOnce;
15514
 
class CCExprResolve;
15515
 
class CExprResolve;
 
30336
class CMatchSyntax;
15516
30337
namespace Puma {
15517
30338
 
15518
 
#line 74 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
 
30339
#line 74 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
15519
30340
class CObjectInfo {
15520
 
#line 15521 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
30341
#line 30342 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
30342
  friend class ::CCExprResolve;
 
30343
  friend class ::CExprResolve;
15521
30344
  friend class ::WinIfExists;
15522
30345
  friend class ::WinImportHandler;
15523
30346
  friend class ::WinMacros;
15524
 
  friend class ::CMatchSyntax;
15525
 
  friend class ::ExtGnu;
 
30347
  friend class ::WinAsm;
 
30348
  friend class ::WinDeclSpecs;
 
30349
  friend class ::WinMemberExplSpec;
 
30350
  friend class ::WinTypeKeywords;
 
30351
  friend class ::WinFriend;
15526
30352
  friend class ::ExtAC;
15527
30353
  friend class ::ExtACBuilderCoupling;
15528
30354
  friend class ::ExtACSyntaxCoupling;
15529
30355
  friend class ::ExtACTree;
15530
30356
  friend class ::ExtACKeywords;
15531
 
  friend class ::WinAsm;
15532
 
  friend class ::WinDeclSpecs;
15533
 
  friend class ::WinMemberExplSpec;
15534
 
  friend class ::WinTypeKeywords;
 
30357
  friend class ::ExtGnu;
15535
30358
  friend class ::PragmaOnceUnitState;
15536
30359
  friend class ::PragmaOnce;
15537
 
  friend class ::CCExprResolve;
15538
 
  friend class ::CExprResolve;
 
30360
  friend class ::CMatchSyntax;
15539
30361
 
15540
 
#line 74 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
 
30362
#line 74 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
15541
30363
 
15542
30364
protected:
15543
30365
  enum ObjectId {
15568
30390
private:
15569
30391
  DString            _Name;
15570
30392
  const char        *_QualName;         // Full qualified name
 
30393
  bool              _abs, _tdef;        // Flags that were used for QualName()
15571
30394
  CTypeInfo         *_TypeInfo;
15572
30395
  CObjectInfo       *_BaseObject;       // corresponding object of base class
15573
30396
  CObjectInfo       *_Next;             // next linked object
15626
30449
  // Get ...
15627
30450
  ObjectId            Id () const;
15628
30451
  const DString&      Name () const; 
15629
 
  const char         *QualName ();                // created on demand
 
30452
  const char         *QualName (bool abs = false, // created on demand
 
30453
                                bool tdef = false);
15630
30454
  CObjectInfo        *DefObject () const;         // info of the definition
15631
30455
  CTypeInfo          *TypeInfo () const;
15632
30456
  CScopeInfo         *Scope () const;             // enclosing scope
15881
30705
 
15882
30706
#endif /* __CObjectInfo_h__ */
15883
30707
 
15884
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
 
30708
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CEnumInfo.h"
 
30709
// This file is part of PUMA.
 
30710
// Copyright (C) 1999-2003  The PUMA developer team.
 
30711
//                                                                
 
30712
// This program is free software;  you can redistribute it and/or 
 
30713
// modify it under the terms of the GNU General Public License as 
 
30714
// published by the Free Software Foundation; either version 2 of 
 
30715
// the License, or (at your option) any later version.            
 
30716
//                                                                
 
30717
// This program is distributed in the hope that it will be useful,
 
30718
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
30719
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
30720
// GNU General Public License for more details.                   
 
30721
//                                                                
 
30722
// You should have received a copy of the GNU General Public      
 
30723
// License along with this program; if not, write to the Free     
 
30724
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
30725
// MA  02111-1307  USA                                            
 
30726
 
 
30727
#ifndef __CEnumInfo_h__
 
30728
#define __CEnumInfo_h__
 
30729
 
 
30730
// enumeration info 
 
30731
// knows its enumerators (enumeration constants)
 
30732
 
 
30733
 
 
30734
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CEnumeratorInfo.h"
 
30735
// This file is part of PUMA.
 
30736
// Copyright (C) 1999-2003  The PUMA developer team.
 
30737
//                                                                
 
30738
// This program is free software;  you can redistribute it and/or 
 
30739
// modify it under the terms of the GNU General Public License as 
 
30740
// published by the Free Software Foundation; either version 2 of 
 
30741
// the License, or (at your option) any later version.            
 
30742
//                                                                
 
30743
// This program is distributed in the hope that it will be useful,
 
30744
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
30745
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
30746
// GNU General Public License for more details.                   
 
30747
//                                                                
 
30748
// You should have received a copy of the GNU General Public      
 
30749
// License along with this program; if not, write to the Free     
 
30750
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
30751
// MA  02111-1307  USA                                            
 
30752
 
 
30753
#ifndef __CEnumeratorInfo_h__
 
30754
#define __CEnumeratorInfo_h__
 
30755
 
 
30756
// enumeration constant (enumerator) info
 
30757
// knows its enumeration and its constant value
 
30758
 
 
30759
 
 
30760
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
 
30761
// This file is part of PUMA.
 
30762
// Copyright (C) 1999-2003  The PUMA developer team.
 
30763
//                                                                
 
30764
// This program is free software;  you can redistribute it and/or 
 
30765
// modify it under the terms of the GNU General Public License as 
 
30766
// published by the Free Software Foundation; either version 2 of 
 
30767
// the License, or (at your option) any later version.            
 
30768
//                                                                
 
30769
// This program is distributed in the hope that it will be useful,
 
30770
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
30771
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
30772
// GNU General Public License for more details.                   
 
30773
//                                                                
 
30774
// You should have received a copy of the GNU General Public      
 
30775
// License along with this program; if not, write to the Free     
 
30776
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
30777
// MA  02111-1307  USA                                            
 
30778
 
 
30779
#ifndef __CAttributeInfo_h__
 
30780
#define __CAttributeInfo_h__
 
30781
 
 
30782
// data object info (variables, class data members)
 
30783
 
 
30784
 
 
30785
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
 
30786
// This file is part of PUMA.
 
30787
// Copyright (C) 1999-2003  The PUMA developer team.
 
30788
//                                                                
 
30789
// This program is free software;  you can redistribute it and/or 
 
30790
// modify it under the terms of the GNU General Public License as 
 
30791
// published by the Free Software Foundation; either version 2 of 
 
30792
// the License, or (at your option) any later version.            
 
30793
//                                                                
 
30794
// This program is distributed in the hope that it will be useful,
 
30795
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
30796
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
30797
// GNU General Public License for more details.                   
 
30798
//                                                                
 
30799
// You should have received a copy of the GNU General Public      
 
30800
// License along with this program; if not, write to the Free     
 
30801
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
30802
// MA  02111-1307  USA                                            
 
30803
 
 
30804
#ifndef __CScopeRequest_h__
 
30805
#define __CScopeRequest_h__
 
30806
 
 
30807
// provide a possibility to store the scope in which 
 
30808
// an entity was declared (if it's not a scope itself)
 
30809
 
 
30810
 
 
30811
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
 
30812
namespace Puma {
 
30813
 
 
30814
 
 
30815
class CScopeInfo;
 
30816
 
 
30817
 
 
30818
#line 30819 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
30819
} // closed Puma
 
30820
class CCExprResolve;
 
30821
class CExprResolve;
 
30822
class WinIfExists;
 
30823
class WinImportHandler;
 
30824
class WinMacros;
 
30825
class WinAsm;
 
30826
class WinDeclSpecs;
 
30827
class WinMemberExplSpec;
 
30828
class WinTypeKeywords;
 
30829
class WinFriend;
 
30830
class ExtAC;
 
30831
class ExtACBuilderCoupling;
 
30832
class ExtACSyntaxCoupling;
 
30833
class ExtACTree;
 
30834
class ExtACKeywords;
 
30835
class ExtGnu;
 
30836
class PragmaOnceUnitState;
 
30837
class PragmaOnce;
 
30838
class CMatchSyntax;
 
30839
namespace Puma {
 
30840
 
 
30841
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
 
30842
class CScopeRequest : public CObjectInfo {
 
30843
#line 30844 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
30844
  friend class ::CCExprResolve;
 
30845
  friend class ::CExprResolve;
 
30846
  friend class ::WinIfExists;
 
30847
  friend class ::WinImportHandler;
 
30848
  friend class ::WinMacros;
 
30849
  friend class ::WinAsm;
 
30850
  friend class ::WinDeclSpecs;
 
30851
  friend class ::WinMemberExplSpec;
 
30852
  friend class ::WinTypeKeywords;
 
30853
  friend class ::WinFriend;
 
30854
  friend class ::ExtAC;
 
30855
  friend class ::ExtACBuilderCoupling;
 
30856
  friend class ::ExtACSyntaxCoupling;
 
30857
  friend class ::ExtACTree;
 
30858
  friend class ::ExtACKeywords;
 
30859
  friend class ::ExtGnu;
 
30860
  friend class ::PragmaOnceUnitState;
 
30861
  friend class ::PragmaOnce;
 
30862
  friend class ::CMatchSyntax;
 
30863
 
 
30864
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
 
30865
 
 
30866
  CScopeInfo *_Scope;
 
30867
 
 
30868
protected:
 
30869
  CScopeRequest (ObjectId);
 
30870
 
 
30871
public: 
 
30872
  ~CScopeRequest ();
 
30873
  
 
30874
  CScopeInfo *Scope () const;        // get the enclosing scope
 
30875
  void Scope (CScopeInfo *);
 
30876
};
 
30877
 
 
30878
inline CScopeRequest::CScopeRequest (CObjectInfo::ObjectId id) :
 
30879
  CObjectInfo (id),
 
30880
  _Scope ((CScopeInfo*)0)
 
30881
 {}
 
30882
inline CScopeRequest::~CScopeRequest ()
 
30883
 {}
 
30884
 
 
30885
inline CScopeInfo *CScopeRequest::Scope () const
 
30886
 { return _Scope; }
 
30887
inline void CScopeRequest::Scope (CScopeInfo *s)
 
30888
 { _Scope = s; }
 
30889
 
 
30890
 
 
30891
} // namespace Puma
 
30892
 
 
30893
#endif /* __CScopeRequest_h__ */
 
30894
 
 
30895
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
 
30896
namespace Puma {
 
30897
 
 
30898
 
 
30899
class CT_InitDeclarator;
 
30900
class CT_ExprList;
 
30901
class CTemplateInfo;
 
30902
class CRecord;
 
30903
class CNamespaceInfo;
 
30904
 
 
30905
/** \file 
 
30906
 *  Representation of local/global variables and class data members. 
 
30907
 *  \see Puma::CAttributeInfo */
 
30908
 
 
30909
/** \class CAttributeInfo CAttributeInfo.h Puma/infos/CAttributeInfo.h
 
30910
 *  A CAttributeInfo object represents a local or global variable 
 
30911
 *  or a class data member. */
 
30912
 
 
30913
#line 30914 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
30914
} // closed Puma
 
30915
class CCExprResolve;
 
30916
class CExprResolve;
 
30917
class WinIfExists;
 
30918
class WinImportHandler;
 
30919
class WinMacros;
 
30920
class WinAsm;
 
30921
class WinDeclSpecs;
 
30922
class WinMemberExplSpec;
 
30923
class WinTypeKeywords;
 
30924
class WinFriend;
 
30925
class ExtAC;
 
30926
class ExtACBuilderCoupling;
 
30927
class ExtACSyntaxCoupling;
 
30928
class ExtACTree;
 
30929
class ExtACKeywords;
 
30930
class ExtGnu;
 
30931
class PragmaOnceUnitState;
 
30932
class PragmaOnce;
 
30933
class CMatchSyntax;
 
30934
namespace Puma {
 
30935
 
 
30936
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
 
30937
class CAttributeInfo : public CScopeRequest {
 
30938
#line 30939 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
30939
  friend class ::CCExprResolve;
 
30940
  friend class ::CExprResolve;
 
30941
  friend class ::WinIfExists;
 
30942
  friend class ::WinImportHandler;
 
30943
  friend class ::WinMacros;
 
30944
  friend class ::WinAsm;
 
30945
  friend class ::WinDeclSpecs;
 
30946
  friend class ::WinMemberExplSpec;
 
30947
  friend class ::WinTypeKeywords;
 
30948
  friend class ::WinFriend;
 
30949
  friend class ::ExtAC;
 
30950
  friend class ::ExtACBuilderCoupling;
 
30951
  friend class ::ExtACSyntaxCoupling;
 
30952
  friend class ::ExtACTree;
 
30953
  friend class ::ExtACKeywords;
 
30954
  friend class ::ExtGnu;
 
30955
  friend class ::PragmaOnceUnitState;
 
30956
  friend class ::PragmaOnce;
 
30957
  friend class ::CMatchSyntax;
 
30958
 
 
30959
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
 
30960
 
 
30961
  CTemplateInfo *_TemplateInfo;
 
30962
  
 
30963
protected:
 
30964
  /** This constructor is to be used by classes inherited from
 
30965
   *  CAttributeInfo. It makes it possible to set another object id
 
30966
   *  than \c ATTRIBUTE_INFO.
 
30967
   *  \param id The object id to be used instead of \c ATTRIBUTE_INFO. */
 
30968
  CAttributeInfo (ObjectId id);
 
30969
 
 
30970
public: 
 
30971
  /** Construct a new attribute info. */
 
30972
  CAttributeInfo ();
 
30973
  /** Destruct the attribute info. If the object id is 
 
30974
   *  \c ATTRIBUTE_INFO, Puma::CObjectInfo::CleanUp() is called. */
 
30975
  ~CAttributeInfo ();
 
30976
  
 
30977
  /** Get the base info object of the info object. <b>The 
 
30978
   *  corresponding information is not yet set!</b>
 
30979
   *  \return This method always returns \c NULL.
 
30980
   *  \warning Do not use this method. */
 
30981
  CAttributeInfo *BaseObject () const;
 
30982
  /** Get the info object of the variable definition. 
 
30983
   *  \return \e this or the info of the definition if the variable 
 
30984
   *          is a static class data member initialized outside of 
 
30985
   *          the class declaration. */
 
30986
  CAttributeInfo *DefObject () const;         
 
30987
  /** Get the syntax tree node of the variable declaration. */
 
30988
  CT_InitDeclarator *Tree () const;  
 
30989
  /** Get the initializer of the variable.
 
30990
   *  \return The syntax tree node of the initializer or \c NULL
 
30991
   *          if there is no initializer. */  
 
30992
  CT_ExprList *Init () const;                  // initializer
 
30993
 
 
30994
  /** Get the corresponding template info of static data members 
 
30995
   *  of class templates. 
 
30996
   *  \return The info or \c NULL otherwise. */
 
30997
  CTemplateInfo *TemplateInfo () const;
 
30998
  /** Set the corresponding of a static data member or a class
 
30999
   *  template. 
 
31000
   *  \param info The info of the template. */
 
31001
  void TemplateInfo (CTemplateInfo *info);
 
31002
 
 
31003
  /** Get the record info if this is a data member of a record. 
 
31004
   *  \return The record info or \c NULL if not a member of a record. */
 
31005
  CRecord *Record () const;
 
31006
  /** Get the namespace info if the variable is declared in a namespace. 
 
31007
   *  \return The info or \c NULL if not declared in a namespace. */
 
31008
  CNamespaceInfo *Namespace () const;
 
31009
  /** Set the qualification scope of the variable. This can be a namespace
 
31010
   *  info for variables declared in a namespace or a record info for 
 
31011
   *  data members of a class/struct/union. 
 
31012
   *  \param scope The qualification scope of the variable. */
 
31013
  void QualifiedScope (CStructure *scope);
 
31014
};
 
31015
 
 
31016
inline CAttributeInfo::CAttributeInfo () :
 
31017
  CScopeRequest (CObjectInfo::ATTRIBUTE_INFO),
 
31018
  _TemplateInfo ((CTemplateInfo*)0)
 
31019
 {}
 
31020
inline CAttributeInfo::CAttributeInfo (CObjectInfo::ObjectId id) :
 
31021
  CScopeRequest (id),
 
31022
  _TemplateInfo ((CTemplateInfo*)0)
 
31023
 {}
 
31024
 
 
31025
inline CAttributeInfo *CAttributeInfo::BaseObject () const
 
31026
 { return (CAttributeInfo*)CObjectInfo::BaseObject (); }
 
31027
 
 
31028
inline CTemplateInfo *CAttributeInfo::TemplateInfo () const
 
31029
 { return _TemplateInfo; }
 
31030
inline void CAttributeInfo::TemplateInfo (CTemplateInfo *info) 
 
31031
 { _TemplateInfo = info; }
 
31032
 
 
31033
inline void CAttributeInfo::QualifiedScope (CStructure *s)
 
31034
 { _QualScope = s; }
 
31035
 
 
31036
 
 
31037
} // namespace Puma
 
31038
 
 
31039
#endif /* __CAttributeInfo_h__ */
 
31040
 
 
31041
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Limits.h"
 
31042
/* This file was generated by the PUMA library, version 1.1. */
 
31043
 
 
31044
// This file is part of PUMA.
 
31045
// Copyright (C) 1999-2003  The PUMA developer team.
 
31046
//                                                                
 
31047
// This program is free software;  you can redistribute it and/or 
 
31048
// modify it under the terms of the GNU General Public License as 
 
31049
// published by the Free Software Foundation; either version 2 of 
 
31050
// the License, or (at your option) any later version.            
 
31051
//                                                                
 
31052
// This program is distributed in the hope that it will be useful,
 
31053
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
31054
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
31055
// GNU General Public License for more details.                   
 
31056
//                                                                
 
31057
// You should have received a copy of the GNU General Public      
 
31058
// License along with this program; if not, write to the Free     
 
31059
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
31060
// MA  02111-1307  USA                                            
 
31061
 
 
31062
#ifndef __Limits_h__
 
31063
#define __Limits_h__
 
31064
 
 
31065
#include <limits.h>
 
31066
 
 
31067
namespace Puma {
 
31068
 
 
31069
 
 
31070
// type `long long' support
 
31071
 
 
31072
#if defined(__GNUC__) || defined(_MSC_VER)
 
31073
typedef long long LONG_LONG;
 
31074
typedef unsigned long long U_LONG_LONG;
 
31075
#else /* __GNUC__ */
 
31076
typedef long LONG_LONG;
 
31077
typedef unsigned long U_LONG_LONG;
 
31078
#endif /* __GNUC__ */
 
31079
 
 
31080
#ifndef LLONG_MAX
 
31081
#  if defined(__GNUC__) || defined(_MSC_VER)
 
31082
#    define LLONG_MAX        9223372036854775807LL
 
31083
#    define LLONG_MIN        (-LLONG_MAX - 1LL)
 
31084
#    define ULLONG_MAX        18446744073709551615ULL
 
31085
#  else /* __GNUC__ */
 
31086
#    define LLONG_MAX        LONG_MAX
 
31087
#    define LLONG_MIN        LONG_MIN
 
31088
#    define ULLONG_MAX       ULONG_MAX
 
31089
#  endif /* __GNUC__ */
 
31090
#endif /* LLONG_MAX */
 
31091
 
 
31092
// type size (in bits)
 
31093
 
 
31094
#define BOOL_SIZE             8
 
31095
#define CHAR_SIZE             8
 
31096
#define SCHAR_SIZE            8
 
31097
#define UCHAR_SIZE            8
 
31098
#define SHORT_SIZE            16
 
31099
#define USHORT_SIZE           16
 
31100
#define WCHAR_T_SIZE          32
 
31101
#define INT_SIZE              32
 
31102
#define UINT_SIZE             32
 
31103
#define LONG_SIZE             32
 
31104
#define ULONG_SIZE            32
 
31105
#define LLONG_SIZE            64
 
31106
#define ULLONG_SIZE           64
 
31107
 
 
31108
#define FLOAT_SIZE            32
 
31109
#define DOUBLE_SIZE           64
 
31110
#define LDOUBLE_SIZE          96
 
31111
 
 
31112
#define PTR_SIZE              32
 
31113
#define MEMB_PTR_SIZE         64
 
31114
 
 
31115
#define ENUM_SIZE             32
 
31116
 
 
31117
 
 
31118
} // namespace Puma
 
31119
 
 
31120
#endif /* __Limits_h__ */
 
31121
 
 
31122
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CEnumeratorInfo.h"
 
31123
namespace Puma {
 
31124
 
 
31125
 
 
31126
class CEnumInfo;
 
31127
class CT_Enumerator;
 
31128
class CT_ExprList;
 
31129
 
 
31130
/** \file 
 
31131
 *  Representation of an enumerator constant.
 
31132
 *  \see Puma::CEnumeratorInfo */
 
31133
 
 
31134
/** \class CEnumeratorInfo CEnumeratorInfo.h Puma/infos/CEnumeratorInfo.h
 
31135
 *  A CEnumeratorInfo object represents an enumerator constant. */
 
31136
 
 
31137
#line 31138 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
31138
} // closed Puma
 
31139
class CCExprResolve;
 
31140
class CExprResolve;
 
31141
class WinIfExists;
 
31142
class WinImportHandler;
 
31143
class WinMacros;
 
31144
class WinAsm;
 
31145
class WinDeclSpecs;
 
31146
class WinMemberExplSpec;
 
31147
class WinTypeKeywords;
 
31148
class WinFriend;
 
31149
class ExtAC;
 
31150
class ExtACBuilderCoupling;
 
31151
class ExtACSyntaxCoupling;
 
31152
class ExtACTree;
 
31153
class ExtACKeywords;
 
31154
class ExtGnu;
 
31155
class PragmaOnceUnitState;
 
31156
class PragmaOnce;
 
31157
class CMatchSyntax;
 
31158
namespace Puma {
 
31159
 
 
31160
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CEnumeratorInfo.h"
 
31161
class CEnumeratorInfo : public CAttributeInfo {
 
31162
#line 31163 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
31163
  friend class ::CCExprResolve;
 
31164
  friend class ::CExprResolve;
 
31165
  friend class ::WinIfExists;
 
31166
  friend class ::WinImportHandler;
 
31167
  friend class ::WinMacros;
 
31168
  friend class ::WinAsm;
 
31169
  friend class ::WinDeclSpecs;
 
31170
  friend class ::WinMemberExplSpec;
 
31171
  friend class ::WinTypeKeywords;
 
31172
  friend class ::WinFriend;
 
31173
  friend class ::ExtAC;
 
31174
  friend class ::ExtACBuilderCoupling;
 
31175
  friend class ::ExtACSyntaxCoupling;
 
31176
  friend class ::ExtACTree;
 
31177
  friend class ::ExtACKeywords;
 
31178
  friend class ::ExtGnu;
 
31179
  friend class ::PragmaOnceUnitState;
 
31180
  friend class ::PragmaOnce;
 
31181
  friend class ::CMatchSyntax;
 
31182
 
 
31183
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CEnumeratorInfo.h"
 
31184
 
 
31185
  CEnumInfo *_Enum;
 
31186
  LONG_LONG _Value;
 
31187
 
 
31188
public: 
 
31189
  /** Construct a new enumerator info. */
 
31190
  CEnumeratorInfo ();
 
31191
  /** Destruct the enumerator info. If the object id is 
 
31192
   *  \c ENUMERATOR_INFO, Puma::CObjectInfo::CleanUp() is called. */
 
31193
  ~CEnumeratorInfo ();
 
31194
  
 
31195
  /** Get the base info object of the info object. <b>The 
 
31196
   *  corresponding information is not yet set!</b>
 
31197
   *  \return This method always returns \c NULL.
 
31198
   *  \warning Do not use this method. */
 
31199
  CEnumeratorInfo *BaseObject () const;
 
31200
  /** Get the syntax tree node of the enumerator constant. */
 
31201
  CT_Enumerator *Tree () const;
 
31202
  /** Get the initialization expression syntax tree node of
 
31203
   *  the enumerator. 
 
31204
   *  \return The syntax tree node or \c NULL if no initializer. */
 
31205
  CT_ExprList *Init () const;
 
31206
  
 
31207
  /** Get the underlying value type. */
 
31208
  CTypeInfo *UnderlyingType () const;
 
31209
 
 
31210
  /** Get the corresponding enumeration info. */
 
31211
  CEnumInfo *Enum () const;
 
31212
  /** Set the enumeration info.
 
31213
   *  \param ei The corresponding enumeration info. */
 
31214
  void Enum (CEnumInfo *ei);
 
31215
 
 
31216
  /** Get the constant value of the enumerator. */
 
31217
  LONG_LONG Value () const;
 
31218
  /** Set the value of the enumerator constant. 
 
31219
   *  \param v The value of the enumerator. */
 
31220
  void Value (LONG_LONG v);
 
31221
};
 
31222
 
 
31223
inline CEnumeratorInfo::CEnumeratorInfo () :
 
31224
  CAttributeInfo (CObjectInfo::ENUMERATOR_INFO),
 
31225
  _Enum ((CEnumInfo*)0),
 
31226
  _Value (0)
 
31227
 {}
 
31228
 
 
31229
inline void CEnumeratorInfo::Enum (CEnumInfo *e) 
 
31230
 { _Enum = e; }
 
31231
inline void CEnumeratorInfo::Value (LONG_LONG v) 
 
31232
 { _Value = v; }
 
31233
 
 
31234
inline CEnumInfo *CEnumeratorInfo::Enum () const 
 
31235
 { return _Enum; }
 
31236
inline LONG_LONG CEnumeratorInfo::Value () const 
 
31237
 { return _Value; }
 
31238
 
 
31239
inline CEnumeratorInfo *CEnumeratorInfo::BaseObject () const
 
31240
 { return (CEnumeratorInfo*)CObjectInfo::BaseObject (); }
 
31241
 
 
31242
} // namespace Puma
 
31243
 
 
31244
#endif /* __CEnumeratorInfo_h__ */
 
31245
 
 
31246
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CEnumInfo.h"
 
31247
namespace Puma {
 
31248
 
 
31249
 
 
31250
/** \file 
 
31251
 *  Representation of a C/C++ 'enum'.
 
31252
 *  \see Puma::CEnumInfo */
 
31253
 
 
31254
/** \class CEnumInfo CEnumInfo.h Puma/infos/CEnumInfo.h
 
31255
 *  A CEnumInfo object represents a C++ 'enum'. */
 
31256
 
 
31257
#line 31258 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
31258
} // closed Puma
 
31259
class CCExprResolve;
 
31260
class CExprResolve;
 
31261
class WinIfExists;
 
31262
class WinImportHandler;
 
31263
class WinMacros;
 
31264
class WinAsm;
 
31265
class WinDeclSpecs;
 
31266
class WinMemberExplSpec;
 
31267
class WinTypeKeywords;
 
31268
class WinFriend;
 
31269
class ExtAC;
 
31270
class ExtACBuilderCoupling;
 
31271
class ExtACSyntaxCoupling;
 
31272
class ExtACTree;
 
31273
class ExtACKeywords;
 
31274
class ExtGnu;
 
31275
class PragmaOnceUnitState;
 
31276
class PragmaOnce;
 
31277
class CMatchSyntax;
 
31278
namespace Puma {
 
31279
 
 
31280
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CEnumInfo.h"
 
31281
class CEnumInfo : public CScopeRequest {
 
31282
#line 31283 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
31283
  friend class ::CCExprResolve;
 
31284
  friend class ::CExprResolve;
 
31285
  friend class ::WinIfExists;
 
31286
  friend class ::WinImportHandler;
 
31287
  friend class ::WinMacros;
 
31288
  friend class ::WinAsm;
 
31289
  friend class ::WinDeclSpecs;
 
31290
  friend class ::WinMemberExplSpec;
 
31291
  friend class ::WinTypeKeywords;
 
31292
  friend class ::WinFriend;
 
31293
  friend class ::ExtAC;
 
31294
  friend class ::ExtACBuilderCoupling;
 
31295
  friend class ::ExtACSyntaxCoupling;
 
31296
  friend class ::ExtACTree;
 
31297
  friend class ::ExtACKeywords;
 
31298
  friend class ::ExtGnu;
 
31299
  friend class ::PragmaOnceUnitState;
 
31300
  friend class ::PragmaOnce;
 
31301
  friend class ::CMatchSyntax;
 
31302
 
 
31303
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CEnumInfo.h"
 
31304
 
 
31305
  Array<CEnumeratorInfo*> _Enumerators;
 
31306
  CTypeInfo *_UnderlyingType;
 
31307
 
 
31308
public: 
 
31309
  /** Construct a new enumeration info object. */
 
31310
  CEnumInfo ();
 
31311
  /** Destroy the enum info object. If the object id is 
 
31312
   *  \c ENUM_INFO, Puma::CObjectInfo::CleanUp() is called. */
 
31313
  ~CEnumInfo ();
 
31314
 
 
31315
  /** Get the number of enumerators in this enumeration. */
 
31316
  unsigned Enumerators () const;
 
31317
  /** Get the n-th enumerator info.
 
31318
   *  \param n The number of the enumerator.
 
31319
   *  \return The enumerator info or \c NULL if \e n is invalid. */
 
31320
  CEnumeratorInfo *Enumerator (unsigned n) const;
 
31321
  /** Get the info of the enumerator with the given name. 
 
31322
   *  \param name The name of the enumerator.
 
31323
   *  \return The enumerator info or \c NULL if no enumerator with that name. */
 
31324
  CEnumeratorInfo *Enumerator (const char *name) const;
 
31325
 
 
31326
  /** Get the base info object of the info object. <b>The 
 
31327
   *  corresponding information is not yet set!</b>
 
31328
   *  \return This method always returns \c NULL.
 
31329
   *  \warning Do not use this method. */
 
31330
  CEnumInfo *BaseObject () const;
 
31331
  /** Get the info object of the enumeration definition. 
 
31332
   *  \return The info or \e this if the enumeration is not defined. */
 
31333
  CEnumInfo *DefObject () const;
 
31334
  /** Get the type information object for the enumeration. */
 
31335
  CTypeEnum *TypeInfo () const;
 
31336
 
 
31337
  /** Add a new enumerator to the enumeration.
 
31338
   *  \param ei The enumerator info to add. */
 
31339
  void addEnumerator (CEnumeratorInfo *ei);
 
31340
  /** Remove the given enumerator from the enumeration.
 
31341
   *  \param ei The enumerator info to remove. */
 
31342
  void removeEnumerator (const CEnumeratorInfo *ei);
 
31343
 
 
31344
  /** Create a new enumerator info. The enumerator info is
 
31345
   *  added to the enumeration. */
 
31346
  CEnumeratorInfo *newEnumerator ();
 
31347
  /** Destroy the given enumerator info. The enumerator info is
 
31348
   *  removed from the enumeration.
 
31349
   *  \param ei The enumerator info to destroy. */
 
31350
  void deleteEnumerator (const CEnumeratorInfo *ei);
 
31351
  
 
31352
  /** Return \e true if the enumeration is defined. */
 
31353
  bool isDefined () const;
 
31354
  /** Return \e true if the enumeration is complete (defined)
 
31355
   *  at the given position.
 
31356
   *  \param pos The current source code position. */
 
31357
  bool isComplete (unsigned long pos = 0) const;
 
31358
 
 
31359
  /** Return the underlying data type. */
 
31360
  CTypeInfo *UnderlyingType () const;
 
31361
  /** Set the underlying data type.
 
31362
   *  \param type The underlying type. */
 
31363
  void UnderlyingType (CTypeInfo *type);
 
31364
};
 
31365
 
 
31366
inline CEnumInfo::CEnumInfo () :
 
31367
  CScopeRequest (CObjectInfo::ENUM_INFO),
 
31368
  _UnderlyingType (&CTYPE_INT)
 
31369
 {}
 
31370
 
 
31371
inline unsigned CEnumInfo::Enumerators () const
 
31372
 { return _Enumerators.length (); }
 
31373
inline CEnumeratorInfo *CEnumInfo::Enumerator (unsigned n) const
 
31374
 { return _Enumerators.lookup (n); }
 
31375
 
 
31376
inline CEnumInfo *CEnumInfo::BaseObject () const
 
31377
 { return (CEnumInfo*)CObjectInfo::BaseObject (); }
 
31378
inline CTypeEnum *CEnumInfo::TypeInfo () const
 
31379
 { return (CTypeEnum*)CObjectInfo::TypeInfo (); }
 
31380
//inline CT_EnumSpec *CEnumInfo::Tree () const
 
31381
// { return (CT_EnumSpec*)CObjectInfo::Tree (); }
 
31382
 
 
31383
inline CTypeInfo *CEnumInfo::UnderlyingType () const
 
31384
 { return (CTypeInfo*)_UnderlyingType; }
 
31385
inline void CEnumInfo::UnderlyingType (CTypeInfo *type)
 
31386
 { _UnderlyingType = type; }
 
31387
 
 
31388
 
 
31389
} // namespace Puma
 
31390
 
 
31391
#endif /* __CEnumInfo_h__ */
 
31392
 
 
31393
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
31394
// This file is part of PUMA.
 
31395
// Copyright (C) 1999-2003  The PUMA developer team.
 
31396
//                                                                
 
31397
// This program is free software;  you can redistribute it and/or 
 
31398
// modify it under the terms of the GNU General Public License as 
 
31399
// published by the Free Software Foundation; either version 2 of 
 
31400
// the License, or (at your option) any later version.            
 
31401
//                                                                
 
31402
// This program is distributed in the hope that it will be useful,
 
31403
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
31404
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
31405
// GNU General Public License for more details.                   
 
31406
//                                                                
 
31407
// You should have received a copy of the GNU General Public      
 
31408
// License along with this program; if not, write to the Free     
 
31409
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
31410
// MA  02111-1307  USA                                            
 
31411
 
 
31412
#ifndef __error_sink_h__
 
31413
#define __error_sink_h__
 
31414
 
 
31415
// This is an interface for classes that may be used to consume error
 
31416
// messages during a process where many errors can occur like parsing
 
31417
// a program.
 
31418
// The error information is handed over to the ErrorSink in stream-like
 
31419
// style. Different severities of errors are predefined and can be used
 
31420
// to classify error information that follows. Also a location can be
 
31421
// handed over to the ErrorSink to specify where the error was found
 
31422
// (filename, line, etc.). The error information itself can be of any
 
31423
// standard data type or anything that is "Printable".
 
31424
// Specializations of this class could either build and print error
 
31425
// messages or collect them for a later processing.
 
31426
 
 
31427
 
 
31428
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
31429
namespace Puma {
 
31430
 
 
31431
 
 
31432
 
 
31433
#line 31434 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
31434
} // closed Puma
 
31435
class CCExprResolve;
 
31436
class CExprResolve;
 
31437
class WinIfExists;
 
31438
class WinImportHandler;
 
31439
class WinMacros;
 
31440
class WinAsm;
 
31441
class WinDeclSpecs;
 
31442
class WinMemberExplSpec;
 
31443
class WinTypeKeywords;
 
31444
class WinFriend;
 
31445
class ExtAC;
 
31446
class ExtACBuilderCoupling;
 
31447
class ExtACSyntaxCoupling;
 
31448
class ExtACTree;
 
31449
class ExtACKeywords;
 
31450
class ExtGnu;
 
31451
class PragmaOnceUnitState;
 
31452
class PragmaOnce;
 
31453
class CMatchSyntax;
 
31454
namespace Puma {
 
31455
 
 
31456
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
31457
class ErrorSink {
 
31458
#line 31459 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
31459
  friend class ::CCExprResolve;
 
31460
  friend class ::CExprResolve;
 
31461
  friend class ::WinIfExists;
 
31462
  friend class ::WinImportHandler;
 
31463
  friend class ::WinMacros;
 
31464
  friend class ::WinAsm;
 
31465
  friend class ::WinDeclSpecs;
 
31466
  friend class ::WinMemberExplSpec;
 
31467
  friend class ::WinTypeKeywords;
 
31468
  friend class ::WinFriend;
 
31469
  friend class ::ExtAC;
 
31470
  friend class ::ExtACBuilderCoupling;
 
31471
  friend class ::ExtACSyntaxCoupling;
 
31472
  friend class ::ExtACTree;
 
31473
  friend class ::ExtACKeywords;
 
31474
  friend class ::ExtGnu;
 
31475
  friend class ::PragmaOnceUnitState;
 
31476
  friend class ::PragmaOnce;
 
31477
  friend class ::CMatchSyntax;
 
31478
 
 
31479
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
31480
 
 
31481
public:
 
31482
  virtual ~ErrorSink () {}
 
31483
  virtual ErrorSink &operator << (const char *) = 0;
 
31484
  virtual ErrorSink &operator << (long) = 0;
 
31485
  virtual ErrorSink &operator << (unsigned) = 0;
 
31486
  virtual ErrorSink &operator << (int) = 0;
 
31487
  virtual ErrorSink &operator << (short) = 0;
 
31488
  virtual ErrorSink &operator << (char) = 0;
 
31489
  virtual ErrorSink &operator << (double) = 0;
 
31490
  virtual ErrorSink &operator << (const ErrorSeverity &) = 0;
 
31491
  virtual ErrorSink &operator << (Location) = 0;
 
31492
  virtual ErrorSink &operator << (const Printable &) = 0;
 
31493
  virtual ErrorSink &operator << (void (*f)(ErrorSink &)) = 0;
 
31494
  virtual void endMessage () = 0;
 
31495
};
 
31496
 
 
31497
void endMessage (ErrorSink &);
 
31498
 
 
31499
 
 
31500
} // namespace Puma
 
31501
 
 
31502
#endif /* __error_sink_h__ */
 
31503
 
 
31504
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecord.h"
 
31505
// This file is part of PUMA.
 
31506
// Copyright (C) 1999-2003  The PUMA developer team.
 
31507
//                                                                
 
31508
// This program is free software;  you can redistribute it and/or 
 
31509
// modify it under the terms of the GNU General Public License as 
 
31510
// published by the Free Software Foundation; either version 2 of 
 
31511
// the License, or (at your option) any later version.            
 
31512
//                                                                
 
31513
// This program is distributed in the hope that it will be useful,
 
31514
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
31515
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
31516
// GNU General Public License for more details.                   
 
31517
//                                                                
 
31518
// You should have received a copy of the GNU General Public      
 
31519
// License along with this program; if not, write to the Free     
 
31520
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
31521
// MA  02111-1307  USA                                            
 
31522
 
 
31523
#ifndef __CRecord_h__
 
31524
#define __CRecord_h__
 
31525
 
 
31526
// base class of class and union infos
 
31527
 
 
31528
 
 
31529
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStructure.h"
 
31530
// This file is part of PUMA.
 
31531
// Copyright (C) 1999-2003  The PUMA developer team.
 
31532
//                                                                
 
31533
// This program is free software;  you can redistribute it and/or 
 
31534
// modify it under the terms of the GNU General Public License as 
 
31535
// published by the Free Software Foundation; either version 2 of 
 
31536
// the License, or (at your option) any later version.            
 
31537
//                                                                
 
31538
// This program is distributed in the hope that it will be useful,
 
31539
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
31540
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
31541
// GNU General Public License for more details.                   
 
31542
//                                                                
 
31543
// You should have received a copy of the GNU General Public      
 
31544
// License along with this program; if not, write to the Free     
 
31545
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
31546
// MA  02111-1307  USA                                            
 
31547
 
 
31548
#ifndef __CStructure_h__
 
31549
#define __CStructure_h__
 
31550
 
 
31551
// base class of everything that also is a scope
 
31552
// (function, class, union, namespace...)
 
31553
// stores semantic info objects for variables, 
 
31554
// enumerators, function and template parameters,
 
31555
// typedefs, classes, unions, enumerations, 
 
31556
// namespaces, using-directives, friend function 
 
31557
// declarations, functions, class methods, class 
 
31558
// data members, function and class templates,
 
31559
// function and class template instances, member 
 
31560
// aliases
 
31561
 
 
31562
 
 
31563
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
 
31564
// This file is part of PUMA.
 
31565
// Copyright (C) 1999-2003  The PUMA developer team.
 
31566
//                                                                
 
31567
// This program is free software;  you can redistribute it and/or 
 
31568
// modify it under the terms of the GNU General Public License as 
 
31569
// published by the Free Software Foundation; either version 2 of 
 
31570
// the License, or (at your option) any later version.            
 
31571
//                                                                
 
31572
// This program is distributed in the hope that it will be useful,
 
31573
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
31574
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
31575
// GNU General Public License for more details.                   
 
31576
//                                                                
 
31577
// You should have received a copy of the GNU General Public      
 
31578
// License along with this program; if not, write to the Free     
 
31579
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
31580
// MA  02111-1307  USA                                            
 
31581
 
 
31582
#ifndef __CScopeInfo_h__
 
31583
#define __CScopeInfo_h__
 
31584
 
 
31585
// scope info
 
31586
 
 
31587
 
 
31588
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
15885
31589
namespace Puma {
15886
31590
 
15887
31591
 
15893
31597
class CTemplateInfo;
15894
31598
 
15895
31599
 
15896
 
#line 15897 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
31600
#line 31601 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
15897
31601
} // closed Puma
 
31602
class CCExprResolve;
 
31603
class CExprResolve;
15898
31604
class WinIfExists;
15899
31605
class WinImportHandler;
15900
31606
class WinMacros;
15901
 
class CMatchSyntax;
15902
 
class ExtGnu;
 
31607
class WinAsm;
 
31608
class WinDeclSpecs;
 
31609
class WinMemberExplSpec;
 
31610
class WinTypeKeywords;
 
31611
class WinFriend;
15903
31612
class ExtAC;
15904
31613
class ExtACBuilderCoupling;
15905
31614
class ExtACSyntaxCoupling;
15906
31615
class ExtACTree;
15907
31616
class ExtACKeywords;
15908
 
class WinAsm;
15909
 
class WinDeclSpecs;
15910
 
class WinMemberExplSpec;
15911
 
class WinTypeKeywords;
 
31617
class ExtGnu;
15912
31618
class PragmaOnceUnitState;
15913
31619
class PragmaOnce;
15914
 
class CCExprResolve;
15915
 
class CExprResolve;
 
31620
class CMatchSyntax;
15916
31621
namespace Puma {
15917
31622
 
15918
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
 
31623
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
15919
31624
class CScopeInfo : public CObjectInfo {
15920
 
#line 15921 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
31625
#line 31626 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
31626
  friend class ::CCExprResolve;
 
31627
  friend class ::CExprResolve;
15921
31628
  friend class ::WinIfExists;
15922
31629
  friend class ::WinImportHandler;
15923
31630
  friend class ::WinMacros;
15924
 
  friend class ::CMatchSyntax;
15925
 
  friend class ::ExtGnu;
 
31631
  friend class ::WinAsm;
 
31632
  friend class ::WinDeclSpecs;
 
31633
  friend class ::WinMemberExplSpec;
 
31634
  friend class ::WinTypeKeywords;
 
31635
  friend class ::WinFriend;
15926
31636
  friend class ::ExtAC;
15927
31637
  friend class ::ExtACBuilderCoupling;
15928
31638
  friend class ::ExtACSyntaxCoupling;
15929
31639
  friend class ::ExtACTree;
15930
31640
  friend class ::ExtACKeywords;
15931
 
  friend class ::WinAsm;
15932
 
  friend class ::WinDeclSpecs;
15933
 
  friend class ::WinMemberExplSpec;
15934
 
  friend class ::WinTypeKeywords;
 
31641
  friend class ::ExtGnu;
15935
31642
  friend class ::PragmaOnceUnitState;
15936
31643
  friend class ::PragmaOnce;
15937
 
  friend class ::CCExprResolve;
15938
 
  friend class ::CExprResolve;
 
31644
  friend class ::CMatchSyntax;
15939
31645
 
15940
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
 
31646
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
15941
31647
 
15942
31648
  Array<CScopeInfo*> _Children; // child scopes
15943
31649
  CScopeInfo *_Parent; // parent scope
16056
31762
 
16057
31763
#endif /* __CScopeInfo_h__ */
16058
31764
 
16059
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStructure.h"
 
31765
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStructure.h"
16060
31766
#ifndef __puma
16061
31767
 
16062
31768
#include <map>
16083
31789
class CMemberAliasInfo;
16084
31790
 
16085
31791
 
16086
 
#line 16087 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
31792
#line 31793 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
16087
31793
} // closed Puma
 
31794
class CCExprResolve;
 
31795
class CExprResolve;
16088
31796
class WinIfExists;
16089
31797
class WinImportHandler;
16090
31798
class WinMacros;
16091
 
class CMatchSyntax;
16092
 
class ExtGnu;
 
31799
class WinAsm;
 
31800
class WinDeclSpecs;
 
31801
class WinMemberExplSpec;
 
31802
class WinTypeKeywords;
 
31803
class WinFriend;
16093
31804
class ExtAC;
16094
31805
class ExtACBuilderCoupling;
16095
31806
class ExtACSyntaxCoupling;
16096
31807
class ExtACTree;
16097
31808
class ExtACKeywords;
16098
 
class WinAsm;
16099
 
class WinDeclSpecs;
16100
 
class WinMemberExplSpec;
16101
 
class WinTypeKeywords;
 
31809
class ExtGnu;
16102
31810
class PragmaOnceUnitState;
16103
31811
class PragmaOnce;
16104
 
class CCExprResolve;
16105
 
class CExprResolve;
 
31812
class CMatchSyntax;
16106
31813
namespace Puma {
16107
31814
 
16108
 
#line 61 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStructure.h"
 
31815
#line 61 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStructure.h"
16109
31816
class CStructure : public CScopeInfo {
16110
 
#line 16111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
31817
#line 31818 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
31818
  friend class ::CCExprResolve;
 
31819
  friend class ::CExprResolve;
16111
31820
  friend class ::WinIfExists;
16112
31821
  friend class ::WinImportHandler;
16113
31822
  friend class ::WinMacros;
16114
 
  friend class ::CMatchSyntax;
16115
 
  friend class ::ExtGnu;
 
31823
  friend class ::WinAsm;
 
31824
  friend class ::WinDeclSpecs;
 
31825
  friend class ::WinMemberExplSpec;
 
31826
  friend class ::WinTypeKeywords;
 
31827
  friend class ::WinFriend;
16116
31828
  friend class ::ExtAC;
16117
31829
  friend class ::ExtACBuilderCoupling;
16118
31830
  friend class ::ExtACSyntaxCoupling;
16119
31831
  friend class ::ExtACTree;
16120
31832
  friend class ::ExtACKeywords;
16121
 
  friend class ::WinAsm;
16122
 
  friend class ::WinDeclSpecs;
16123
 
  friend class ::WinMemberExplSpec;
16124
 
  friend class ::WinTypeKeywords;
 
31833
  friend class ::ExtGnu;
16125
31834
  friend class ::PragmaOnceUnitState;
16126
31835
  friend class ::PragmaOnce;
16127
 
  friend class ::CCExprResolve;
16128
 
  friend class ::CExprResolve;
 
31836
  friend class ::CMatchSyntax;
16129
31837
 
16130
 
#line 61 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStructure.h"
 
31838
#line 61 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStructure.h"
16131
31839
 
16132
31840
public:
16133
31841
#ifndef __puma
16296
32004
 
16297
32005
#endif /* __CStructure_h__ */
16298
32006
 
16299
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
 
32007
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecord.h"
 
32008
namespace Puma {
 
32009
 
 
32010
 
 
32011
class CTemplateInfo;
 
32012
 
 
32013
 
 
32014
#line 32015 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
32015
} // closed Puma
 
32016
class CCExprResolve;
 
32017
class CExprResolve;
 
32018
class WinIfExists;
 
32019
class WinImportHandler;
 
32020
class WinMacros;
 
32021
class WinAsm;
 
32022
class WinDeclSpecs;
 
32023
class WinMemberExplSpec;
 
32024
class WinTypeKeywords;
 
32025
class WinFriend;
 
32026
class ExtAC;
 
32027
class ExtACBuilderCoupling;
 
32028
class ExtACSyntaxCoupling;
 
32029
class ExtACTree;
 
32030
class ExtACKeywords;
 
32031
class ExtGnu;
 
32032
class PragmaOnceUnitState;
 
32033
class PragmaOnce;
 
32034
class CMatchSyntax;
 
32035
namespace Puma {
 
32036
 
 
32037
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecord.h"
 
32038
class CRecord : public CStructure {
 
32039
#line 32040 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
32040
  friend class ::CCExprResolve;
 
32041
  friend class ::CExprResolve;
 
32042
  friend class ::WinIfExists;
 
32043
  friend class ::WinImportHandler;
 
32044
  friend class ::WinMacros;
 
32045
  friend class ::WinAsm;
 
32046
  friend class ::WinDeclSpecs;
 
32047
  friend class ::WinMemberExplSpec;
 
32048
  friend class ::WinTypeKeywords;
 
32049
  friend class ::WinFriend;
 
32050
  friend class ::ExtAC;
 
32051
  friend class ::ExtACBuilderCoupling;
 
32052
  friend class ::ExtACSyntaxCoupling;
 
32053
  friend class ::ExtACTree;
 
32054
  friend class ::ExtACKeywords;
 
32055
  friend class ::ExtGnu;
 
32056
  friend class ::PragmaOnceUnitState;
 
32057
  friend class ::PragmaOnce;
 
32058
  friend class ::CMatchSyntax;
 
32059
 
 
32060
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecord.h"
 
32061
 
 
32062
//  // classes/unions using this as/in an attribute.
 
32063
//  Array<CObjectInfo*> _Referer;     
 
32064
//  // classes/unions/enums used by this class/union as/in an attribute.
 
32065
//  Array<CObjectInfo*> _Used; 
 
32066
//  // methods (defined) of other classes/unions using this 
 
32067
//  // class/union as argument/result. 
 
32068
//  Array<CFunctionInfo*> _Transferer;
 
32069
//  // classes/unions/enums used as/in arguments/results of (defined) 
 
32070
//  // methods of this class/union.
 
32071
//  Array<CObjectInfo*> _Transfered;
 
32072
 
 
32073
  CTemplateInfo *_TemplateInfo;
 
32074
  bool _isTemplate;
 
32075
  bool _hiddenFwdDecl;
 
32076
 
 
32077
protected:
 
32078
  CRecord (ObjectId);
 
32079
 
 
32080
public:
 
32081
  ~CRecord ();
 
32082
 
 
32083
  CTemplateInfo *TemplateInfo () const;
 
32084
  void TemplateInfo (CTemplateInfo *);
 
32085
 
 
32086
  void QualifiedScope (CStructure *);
 
32087
 
 
32088
  // Get ... 
 
32089
  bool isComplete (unsigned long = 0) const;        // is complete type?
 
32090
  bool isDefined () const;                        // has a definition?
 
32091
  bool isTemplate () const;                        // is class template?
 
32092
  bool isHiddenForwardDecl () const;            // hides names?
 
32093
//  unsigned Referers () const;
 
32094
//  unsigned Usages () const;
 
32095
//  unsigned Transferers () const;
 
32096
//  unsigned Transfers () const;
 
32097
//  CObjectInfo *Referer (unsigned) const;
 
32098
//  CObjectInfo *Referer (const char *) const;
 
32099
//  CObjectInfo *Usage (unsigned) const;
 
32100
//  CObjectInfo *Usage (const char *) const;
 
32101
//  CFunctionInfo *Transferer (unsigned) const;
 
32102
//  CFunctionInfo *Transferer (const char *) const;
 
32103
//  CObjectInfo *Transfer (unsigned) const;
 
32104
//  CObjectInfo *Transfer (const char *) const;
 
32105
//  bool isReferer (const CObjectInfo *) const;
 
32106
//  bool isUsed (const CObjectInfo *) const;
 
32107
//  bool isTransferer (const CFunctionInfo *) const;
 
32108
//  bool isTransfered (const CObjectInfo *) const;
 
32109
 
 
32110
  // Set ... 
 
32111
  void isTemplate (bool);
 
32112
  void isHiddenForwardDecl (bool);
 
32113
//  void addReferer (CObjectInfo *);
 
32114
//  void addUsage (CObjectInfo *);
 
32115
//  void addTransferer (CFunctionInfo *);
 
32116
//  void addTransfer (CObjectInfo *);
 
32117
//  void removeReferer (const CObjectInfo *);      // WILL NOT BE DESTROYED!
 
32118
//  void removeUsage (const CObjectInfo *);        // WILL NOT BE DESTROYED!
 
32119
//  void removeTransferer (const CFunctionInfo *); // WILL NOT BE DESTROYED!
 
32120
//  void removeTransfer (const CObjectInfo *);     // WILL NOT BE DESTROYED!
 
32121
 
 
32122
  // additional information
 
32123
//  bool isForward () const;
 
32124
};
 
32125
 
 
32126
inline CRecord::CRecord (CObjectInfo::ObjectId id) :
 
32127
  CStructure (id),
 
32128
  _TemplateInfo ((CTemplateInfo*)0),
 
32129
  _isTemplate (false),
 
32130
  _hiddenFwdDecl (false)
 
32131
 {}
 
32132
 
 
32133
inline bool CRecord::isTemplate () const 
 
32134
 { return _isTemplate; }
 
32135
inline void CRecord::isTemplate (bool v)
 
32136
 { _isTemplate = v; }
 
32137
 
 
32138
inline bool CRecord::isHiddenForwardDecl () const 
 
32139
 { return _hiddenFwdDecl; }
 
32140
inline void CRecord::isHiddenForwardDecl (bool v)
 
32141
 { _hiddenFwdDecl = v; }
 
32142
  
 
32143
inline CTemplateInfo *CRecord::TemplateInfo () const
 
32144
 { return _TemplateInfo; }
 
32145
inline void CRecord::TemplateInfo (CTemplateInfo *info) 
 
32146
 { _TemplateInfo = info; }
 
32147
 
 
32148
inline void CRecord::QualifiedScope (CStructure *s)
 
32149
 { _QualScope = s; }
 
32150
 
 
32151
//inline unsigned CRecord::Referers () const
 
32152
// { return _Referer.length (); }
 
32153
//inline unsigned CRecord::Usages () const
 
32154
// { return _Used.length (); }
 
32155
//inline unsigned CRecord::Transferers () const
 
32156
// { return _Transferer.length (); }
 
32157
//inline unsigned CRecord::Transfers () const
 
32158
// { return _Transfered.length (); }
 
32159
//inline CObjectInfo *CRecord::Referer (unsigned n) const
 
32160
// { return _Referer.lookup (n); }
 
32161
//inline CObjectInfo *CRecord::Usage (unsigned n) const
 
32162
// { return _Used.lookup (n); }
 
32163
//inline CFunctionInfo *CRecord::Transferer (unsigned n) const
 
32164
// { return _Transferer.lookup (n); }
 
32165
//inline CObjectInfo *CRecord::Transfer (unsigned n) const
 
32166
// { return _Transfered.lookup (n); }
 
32167
 
 
32168
 
 
32169
} // namespace Puma
 
32170
 
 
32171
#endif /* __CRecord_h__ */
 
32172
 
 
32173
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32174
 
 
32175
#line 32176 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
32176
 
 
32177
#ifndef __ac_fwd_ExtACTree__
 
32178
#define __ac_fwd_ExtACTree__
 
32179
class ExtACTree;
 
32180
namespace AC {
 
32181
  template <class JoinPoint>
 
32182
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
32183
  template <class JoinPoint>
 
32184
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
32185
}
 
32186
#endif
 
32187
 
 
32188
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
32189
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
32190
#endif
 
32191
 
 
32192
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32193
// This file is part of PUMA.
 
32194
// Copyright (C) 1999-2003  The PUMA developer team.
 
32195
//                                                                
 
32196
// This program is free software;  you can redistribute it and/or 
 
32197
// modify it under the terms of the GNU General Public License as 
 
32198
// published by the Free Software Foundation; either version 2 of 
 
32199
// the License, or (at your option) any later version.            
 
32200
//                                                                
 
32201
// This program is distributed in the hope that it will be useful,
 
32202
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
32203
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
32204
// GNU General Public License for more details.                   
 
32205
//                                                                
 
32206
// You should have received a copy of the GNU General Public      
 
32207
// License along with this program; if not, write to the Free     
 
32208
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
32209
// MA  02111-1307  USA                                            
 
32210
 
 
32211
#ifndef __CTree_h__
 
32212
#define __CTree_h__
 
32213
 
 
32214
namespace Puma {
 
32215
 
 
32216
 
 
32217
// Syntax tree node hierarchy:
 
32218
class CTree;
 
32219
class   CT_Statement;          
 
32220
class     CT_LabelStmt;
 
32221
class     CT_IfStmt;
 
32222
class     CT_IfElseStmt;
 
32223
class     CT_SwitchStmt;
 
32224
class     CT_BreakStmt;
 
32225
class     CT_ExprStmt;
 
32226
class     CT_WhileStmt;
 
32227
class     CT_DoStmt;
 
32228
class     CT_ForStmt;
 
32229
class     CT_ContinueStmt;
 
32230
class     CT_ReturnStmt;
 
32231
class     CT_GotoStmt;
 
32232
class     CT_DeclStmt;
 
32233
class     CT_CaseStmt;
 
32234
class     CT_DefaultStmt;
 
32235
class     CT_TryStmt;
 
32236
class   CT_Expression;
 
32237
class     CT_Call;
 
32238
class       CT_CallExpr;
 
32239
class       CT_ImplicitCall;
 
32240
class     CT_ThrowExpr;
 
32241
class     CT_NewExpr;
 
32242
class     CT_DeleteExpr;
 
32243
class     CT_ConstructExpr;
 
32244
class     CT_Integer;
 
32245
class     CT_Character;
 
32246
class       CT_WideCharacter;
 
32247
class     CT_Float;
 
32248
class     CT_Bool;
 
32249
class     CT_BracedExpr;
 
32250
class     CT_BinaryExpr;
 
32251
class       CT_MembPtrExpr;
 
32252
class         CT_MembRefExpr;
 
32253
class     CT_UnaryExpr;
 
32254
class       CT_PostfixExpr;
 
32255
class       CT_AddrExpr;
 
32256
class       CT_DerefExpr;
 
32257
class     CT_IfThenExpr;
 
32258
class     CT_CmpdLiteral;
 
32259
class     CT_IndexExpr;
 
32260
class     CT_CastExpr;
 
32261
class     CT_StaticCast;
 
32262
class       CT_ConstCast;
 
32263
class       CT_ReintCast;
 
32264
class       CT_DynamicCast;
 
32265
class     CT_TypeidExpr;
 
32266
class     CT_SizeofExpr;
 
32267
class     CT_MembDesignator;
 
32268
class     CT_IndexDesignator;
 
32269
class     CT_ImplicitCast;
 
32270
class   CT_DeclSpec;
 
32271
class     CT_PrimDeclSpec;
 
32272
class     CT_NamedType;
 
32273
class     CT_ClassSpec;
 
32274
class       CT_UnionSpec;
 
32275
class       CT_EnumSpec;
 
32276
class     CT_ExceptionSpec;
 
32277
class   CT_Declarator;
 
32278
class     CT_InitDeclarator;
 
32279
class     CT_BracedDeclarator;
 
32280
class     CT_ArrayDeclarator;
 
32281
class     CT_FctDeclarator;
 
32282
class     CT_RefDeclarator;
 
32283
class     CT_PtrDeclarator;
 
32284
class     CT_MembPtrDeclarator;
 
32285
class     CT_BitFieldDeclarator;
 
32286
class   CT_Decl;
 
32287
class     CT_ObjDecl;
 
32288
class     CT_ArgDecl;
 
32289
class     CT_AccessDecl;
 
32290
class       CT_UsingDecl;
 
32291
class     CT_FctDef;
 
32292
class     CT_AsmDef;
 
32293
class     CT_EnumDef;
 
32294
class     CT_ClassDef;
 
32295
class       CT_UnionDef;
 
32296
class     CT_Enumerator;
 
32297
class     CT_LinkageSpec;
 
32298
class     CT_Handler;
 
32299
class     CT_TemplateDecl;
 
32300
class     CT_TemplateParamDecl;
 
32301
class       CT_TypeParamDecl;
 
32302
class       CT_NonTypeParamDecl;
 
32303
class     CT_NamespaceDef;
 
32304
class     CT_NamespaceAliasDef;
 
32305
class     CT_UsingDirective;
 
32306
class     CT_Condition;
 
32307
class   CT_List;
 
32308
class     CT_CmpdStmt;
 
32309
class     CT_DeclSpecSeq;
 
32310
class     CT_HandlerSeq;
 
32311
class     CT_DesignatorSeq;
 
32312
class     CT_DeclList;
 
32313
class       CT_Program;
 
32314
class       CT_ArgDeclList;
 
32315
class         CT_ArgNameList;
 
32316
class       CT_ArgDeclSeq;
 
32317
class       CT_MembList;
 
32318
class     CT_ExprList;
 
32319
class     CT_DeclaratorList;
 
32320
class     CT_BaseSpecList;
 
32321
class     CT_MembInitList;
 
32322
class     CT_SimpleName;
 
32323
class       CT_SpecialName;
 
32324
class         CT_PrivateName;
 
32325
class         CT_OperatorName;
 
32326
class         CT_DestructorName;
 
32327
class         CT_ConversionName;
 
32328
class         CT_TemplateName;
 
32329
class       CT_QualName;
 
32330
class         CT_RootQualName;
 
32331
class     CT_String;
 
32332
class       CT_WideString;
 
32333
class     CT_TemplateParamList;
 
32334
class     CT_TemplateArgList;
 
32335
class   CT_Token;
 
32336
class   CT_Error;
 
32337
class   CT_BaseSpec;
 
32338
class   CT_AccessSpec;
 
32339
class   CT_ArrayDelimiter;
 
32340
class   CT_Any;
 
32341
class   CT_AnyList;
 
32342
class   CT_AnyExtension;
 
32343
class   CT_AnyCondition;
 
32344
 
 
32345
 
 
32346
} // namespace Puma
 
32347
 
 
32348
#include "Puma/ErrorSeverity.h"
 
32349
#include "Puma/CSemObject.h"
 
32350
#include "Puma/CSemScope.h"
 
32351
#include "Puma/CSemValue.h"
 
32352
#include "Puma/CExprValue.h"
 
32353
#include "Puma/CStrLiteral.h"
 
32354
#include "Puma/CTypeInfo.h"
 
32355
#include "Puma/Printable.h"
 
32356
#include "Puma/CTokens.h"
 
32357
#include "Puma/Token.h"
 
32358
 
 
32359
#include <iostream>
 
32360
#include <string.h>
 
32361
using namespace std;
 
32362
 
 
32363
namespace Puma {
 
32364
 
 
32365
 
 
32366
class ErrorStream;
 
32367
class CObjectInfo;
 
32368
class CStructure;
 
32369
 
 
32370
/*****************************************************************************/
 
32371
/*                                                                           */
 
32372
/*                    S y n t a x  t r e e  n o d e s                        */
 
32373
/*                                                                           */
 
32374
/*****************************************************************************/
 
32375
 
 
32376
/** \file
 
32377
 *  C/C++ syntax tree classes.
 
32378
 *  \see Puma::CTree */
 
32379
 
 
32380
/** \class CTree CTree.h Puma/CTree.h
 
32381
 *  Base class for all C/C++ syntax tree classes. */
 
32382
 
 
32383
#line 32384 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
32384
} // closed Puma
 
32385
class CCExprResolve;
 
32386
class CExprResolve;
 
32387
class WinIfExists;
 
32388
class WinImportHandler;
 
32389
class WinMacros;
 
32390
class WinAsm;
 
32391
class WinDeclSpecs;
 
32392
class WinMemberExplSpec;
 
32393
class WinTypeKeywords;
 
32394
class WinFriend;
 
32395
class ExtAC;
 
32396
class ExtACBuilderCoupling;
 
32397
class ExtACSyntaxCoupling;
 
32398
class ExtACTree;
 
32399
class ExtACKeywords;
 
32400
class ExtGnu;
 
32401
class PragmaOnceUnitState;
 
32402
class PragmaOnce;
 
32403
class CMatchSyntax;
 
32404
namespace Puma {
 
32405
 
 
32406
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32407
 
 
32408
#line 32409 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
32409
} // closed Puma
 
32410
 
 
32411
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32412
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32413
#include "CCExprResolveH.ah"
 
32414
#endif
 
32415
namespace Puma {
 
32416
 
 
32417
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32418
 
 
32419
#line 32420 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
32420
} // closed Puma
 
32421
 
 
32422
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32423
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32424
#include "CExprResolveH.ah"
 
32425
#endif
 
32426
namespace Puma {
 
32427
 
 
32428
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32429
class CTree {
 
32430
#line 32431 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
32431
  friend class ::CCExprResolve;
 
32432
  friend class ::CExprResolve;
 
32433
  friend class ::WinIfExists;
 
32434
  friend class ::WinImportHandler;
 
32435
  friend class ::WinMacros;
 
32436
  friend class ::WinAsm;
 
32437
  friend class ::WinDeclSpecs;
 
32438
  friend class ::WinMemberExplSpec;
 
32439
  friend class ::WinTypeKeywords;
 
32440
  friend class ::WinFriend;
 
32441
  friend class ::ExtAC;
 
32442
  friend class ::ExtACBuilderCoupling;
 
32443
  friend class ::ExtACSyntaxCoupling;
 
32444
  friend class ::ExtACTree;
 
32445
  friend class ::ExtACKeywords;
 
32446
  friend class ::ExtGnu;
 
32447
  friend class ::PragmaOnceUnitState;
 
32448
  friend class ::PragmaOnce;
 
32449
  friend class ::CMatchSyntax;
 
32450
 
 
32451
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32452
 
 
32453
  CTree * _parent;
 
32454
 
 
32455
public:
 
32456
  /*DEBUG*/static int alloc;
 
32457
  /*DEBUG*/static int release;
 
32458
 
 
32459
protected:
 
32460
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
32461
   *  \param sons The sons array.
 
32462
   *  \param len Length of the sons array.
 
32463
   *  \param n Index of the son.
 
32464
   *  \return The n-th son or NULL. */
 
32465
  CTree *Son (CTree * const *sons, int len, int n) const;
 
32466
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
32467
   *  \param sons The sons array.
 
32468
   *  \param len Length of the sons array. */
 
32469
  int Sons (CTree * const *sons, int len) const;
 
32470
  /** Replace a son.
 
32471
   *  \param sons The sons array.
 
32472
   *  \param len Length of the sons array.
 
32473
   *  \param old_son The son to replace.
 
32474
   *  \param new_son The new son. */
 
32475
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
32476
  /** Replace a son if it equals the given son.
 
32477
   *  \param son The actual son.
 
32478
   *  \param old_son The son to replace, must match the actual son.
 
32479
   *  \param new_son The new son, overwrites the actual son. */
 
32480
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
32481
  /** Add a new son.
 
32482
   *  \param son The actual son.
 
32483
   *  \param new_son The new son, overwrites the actual son. */
 
32484
  void AddSon (CTree *&son, CTree *new_son);
 
32485
  /** Set the parent tree node.
 
32486
   *  \param parent The new parent tree node. */
 
32487
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
32488
  /** Set the parent tree node of the given tree node.
 
32489
   *  \param node The tree node.
 
32490
   *  \param parent The new parent. */
 
32491
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
 
32492
  
 
32493
protected:
 
32494
  /** Default constructor. */
 
32495
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
 
32496
 
 
32497
public:
 
32498
  /** Destructor. */
 
32499
  virtual ~CTree () { /*DEBUG*/release++; }
 
32500
  /** Get the number of sons. */
 
32501
  virtual int Sons () const = 0;
 
32502
  /** Get the n-th son.
 
32503
   *  \param n The index of the son.
 
32504
   *  \return The n-th son or NULL. */
 
32505
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
32506
  /** Get the node name (node identifier). */
 
32507
  virtual const char *NodeName () const = 0;
 
32508
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
32509
   *  \return The token or NULL. */
 
32510
  virtual Token *token () const;
 
32511
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
32512
   *  \return The token or NULL. */
 
32513
  virtual Token *end_token () const;
 
32514
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
32515
   *  \return The token node or NULL. */
 
32516
  virtual CT_Token *token_node () const;
 
32517
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
32518
   *  \return The token node or NULL. */
 
32519
  virtual CT_Token *end_token_node () const;
 
32520
  /** Replace a son.
 
32521
   *  \param old_son The son to replace.
 
32522
   *  \param new_son The son with which to replace. */
 
32523
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
32524
  /** Get the parent node.
 
32525
   *  \return The parent node or NULL. */
 
32526
  virtual CTree *Parent () const { return (CTree*)_parent; }
 
32527
 
 
32528
public: // semantic information
 
32529
  /** Get the semantic type of the node.
 
32530
   *  \return The type object or NULL. */
 
32531
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
32532
  /** Get the calculated value of the expression.
 
32533
   *  \return The value object or NULL. */
 
32534
  virtual CExprValue *Value () const { return (CExprValue*)0; }
 
32535
  
 
32536
  /** Get the semantic scope of the node.
 
32537
   *  \return The scope object or NULL. */
 
32538
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
32539
  /** Get the semantic value of the node.
 
32540
   *  \return The value object or NULL. */
 
32541
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
32542
  /** Get the semantic object of the node.
 
32543
   *  \return The semantic object or NULL. */
 
32544
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
 
32545
  
 
32546
public: // node classification function
 
32547
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
32548
   *  \return The CT_SimpleName node or NULL. */
 
32549
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
32550
  /** Get a pointer to CT_String if the current node represents a string.
 
32551
   *  \return The CT_String node or NULL. */
 
32552
  virtual CT_String *IsString () { return 0; }
 
32553
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
32554
   *  \return The CT_Declarator pointer or NULL. */
 
32555
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
32556
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
32557
   *  \return The CT_Statement pointer or NULL. */
 
32558
  virtual CT_Statement *IsStatement () { return 0; }
 
32559
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
32560
   *  \return The CT_Expression pointer or NULL. */
 
32561
  virtual CT_Expression *IsExpression () { return 0; }
 
32562
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
32563
   *  \return The CT_Decl pointer or NULL. */
 
32564
  virtual CT_Decl *IsDeclaration () { return 0; }
 
32565
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
32566
   *  \return The CT_Call pointer or NULL. */
 
32567
  virtual CT_Call *IsCall () { return 0; }
 
32568
   private:
 
32569
  typedef CTree CCExprResolveCTree;
 
32570
 
 
32571
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
32572
 public :
 
32573
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
32574
  typedef CTree CExprResolveCTree;
 
32575
 
 
32576
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
32577
 public :
 
32578
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
32579
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32580
};
 
32581
 
 
32582
/** \class CT_Error CTree.h Puma/CTree.h
 
32583
 *  Error tree node that is inserted into the tree for syntactic constructs
 
32584
 *  that could not be parsed. */
 
32585
 
 
32586
#line 32587 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
32587
} // closed Puma
 
32588
class CCExprResolve;
 
32589
class CExprResolve;
 
32590
class WinIfExists;
 
32591
class WinImportHandler;
 
32592
class WinMacros;
 
32593
class WinAsm;
 
32594
class WinDeclSpecs;
 
32595
class WinMemberExplSpec;
 
32596
class WinTypeKeywords;
 
32597
class WinFriend;
 
32598
class ExtAC;
 
32599
class ExtACBuilderCoupling;
 
32600
class ExtACSyntaxCoupling;
 
32601
class ExtACTree;
 
32602
class ExtACKeywords;
 
32603
class ExtGnu;
 
32604
class PragmaOnceUnitState;
 
32605
class PragmaOnce;
 
32606
class CMatchSyntax;
 
32607
namespace Puma {
 
32608
 
 
32609
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32610
class CT_Error : public CTree {
 
32611
#line 32612 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
32612
  friend class ::CCExprResolve;
 
32613
  friend class ::CExprResolve;
 
32614
  friend class ::WinIfExists;
 
32615
  friend class ::WinImportHandler;
 
32616
  friend class ::WinMacros;
 
32617
  friend class ::WinAsm;
 
32618
  friend class ::WinDeclSpecs;
 
32619
  friend class ::WinMemberExplSpec;
 
32620
  friend class ::WinTypeKeywords;
 
32621
  friend class ::WinFriend;
 
32622
  friend class ::ExtAC;
 
32623
  friend class ::ExtACBuilderCoupling;
 
32624
  friend class ::ExtACSyntaxCoupling;
 
32625
  friend class ::ExtACTree;
 
32626
  friend class ::ExtACKeywords;
 
32627
  friend class ::ExtGnu;
 
32628
  friend class ::PragmaOnceUnitState;
 
32629
  friend class ::PragmaOnce;
 
32630
  friend class ::CMatchSyntax;
 
32631
 
 
32632
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32633
 
 
32634
public:
 
32635
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32636
  static const char *NodeId ();
 
32637
  /** Get the name of the node. Can be compared with NodeId(). */
 
32638
  const char *NodeName () const { return NodeId (); }
 
32639
  /** Get the number of sons. */
 
32640
  int Sons () const { return 0; }
 
32641
};
 
32642
 
 
32643
/** \class CT_Token CTree.h Puma/CTree.h
 
32644
 *  Tree node representing a single token in the source code. */
 
32645
 
 
32646
#line 32647 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
32647
} // closed Puma
 
32648
class CCExprResolve;
 
32649
class CExprResolve;
 
32650
class WinIfExists;
 
32651
class WinImportHandler;
 
32652
class WinMacros;
 
32653
class WinAsm;
 
32654
class WinDeclSpecs;
 
32655
class WinMemberExplSpec;
 
32656
class WinTypeKeywords;
 
32657
class WinFriend;
 
32658
class ExtAC;
 
32659
class ExtACBuilderCoupling;
 
32660
class ExtACSyntaxCoupling;
 
32661
class ExtACTree;
 
32662
class ExtACKeywords;
 
32663
class ExtGnu;
 
32664
class PragmaOnceUnitState;
 
32665
class PragmaOnce;
 
32666
class CMatchSyntax;
 
32667
namespace Puma {
 
32668
 
 
32669
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32670
class CT_Token : public CTree {
 
32671
#line 32672 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
32672
  friend class ::CCExprResolve;
 
32673
  friend class ::CExprResolve;
 
32674
  friend class ::WinIfExists;
 
32675
  friend class ::WinImportHandler;
 
32676
  friend class ::WinMacros;
 
32677
  friend class ::WinAsm;
 
32678
  friend class ::WinDeclSpecs;
 
32679
  friend class ::WinMemberExplSpec;
 
32680
  friend class ::WinTypeKeywords;
 
32681
  friend class ::WinFriend;
 
32682
  friend class ::ExtAC;
 
32683
  friend class ::ExtACBuilderCoupling;
 
32684
  friend class ::ExtACSyntaxCoupling;
 
32685
  friend class ::ExtACTree;
 
32686
  friend class ::ExtACKeywords;
 
32687
  friend class ::ExtGnu;
 
32688
  friend class ::PragmaOnceUnitState;
 
32689
  friend class ::PragmaOnce;
 
32690
  friend class ::CMatchSyntax;
 
32691
 
 
32692
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32693
 
 
32694
  Token *_token;
 
32695
  unsigned long int _number;
 
32696
  
 
32697
public:
 
32698
  /** Constructor. 
 
32699
   *  \param token The represented token.
 
32700
   *  \param number The token number (a consecutive number). */
 
32701
  CT_Token (Token *token, unsigned long int number = 0) : 
 
32702
    _token (token), _number (number) {}
 
32703
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32704
  static const char *NodeId ();
 
32705
  /** Get the name of the node. Can be compared with NodeId(). */
 
32706
  const char *NodeName () const { return NodeId (); }
 
32707
  /** Get the number of sons. */
 
32708
  int Sons () const { return 0; }
 
32709
  /** Get the represented token. */
 
32710
  Token *token () const { return _token; }
 
32711
  /** Get the represented token. */
 
32712
  Token *end_token () const { return _token; }
 
32713
  /** Get this. */
 
32714
  CT_Token *token_node () const { return (CT_Token*)this; }
 
32715
  /** Get this. */
 
32716
  CT_Token *end_token_node () const { return (CT_Token*)this; }
 
32717
  /** Set the token number. 
 
32718
   *  \param number The token number. */ 
 
32719
  void Number (unsigned long int number) { _number = number; }
 
32720
  /** Get the token number. Can be used to indentify this token. */
 
32721
  unsigned long int Number () const { return _number; }
 
32722
  
 
32723
public:
 
32724
  /** Own new operator reusing memory. */
 
32725
  void *operator new (size_t);
 
32726
  /** Own delete operator. */
 
32727
  void operator delete (void *);
 
32728
};
 
32729
 
 
32730
/*****************************************************************************/
 
32731
/*                                                                           */
 
32732
/*                              List nodes                                   */
 
32733
/*                                                                           */
 
32734
/*****************************************************************************/
 
32735
 
 
32736
/** \class CT_List CTree.h Puma/CTree.h
 
32737
 *  Base class for tree nodes representing lists. */
 
32738
 
 
32739
#line 32740 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
32740
} // closed Puma
 
32741
class CCExprResolve;
 
32742
class CExprResolve;
 
32743
class WinIfExists;
 
32744
class WinImportHandler;
 
32745
class WinMacros;
 
32746
class WinAsm;
 
32747
class WinDeclSpecs;
 
32748
class WinMemberExplSpec;
 
32749
class WinTypeKeywords;
 
32750
class WinFriend;
 
32751
class ExtAC;
 
32752
class ExtACBuilderCoupling;
 
32753
class ExtACSyntaxCoupling;
 
32754
class ExtACTree;
 
32755
class ExtACKeywords;
 
32756
class ExtGnu;
 
32757
class PragmaOnceUnitState;
 
32758
class PragmaOnce;
 
32759
class CMatchSyntax;
 
32760
namespace Puma {
 
32761
 
 
32762
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32763
class CT_List : public CTree {
 
32764
#line 32765 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
32765
  friend class ::CCExprResolve;
 
32766
  friend class ::CExprResolve;
 
32767
  friend class ::WinIfExists;
 
32768
  friend class ::WinImportHandler;
 
32769
  friend class ::WinMacros;
 
32770
  friend class ::WinAsm;
 
32771
  friend class ::WinDeclSpecs;
 
32772
  friend class ::WinMemberExplSpec;
 
32773
  friend class ::WinTypeKeywords;
 
32774
  friend class ::WinFriend;
 
32775
  friend class ::ExtAC;
 
32776
  friend class ::ExtACBuilderCoupling;
 
32777
  friend class ::ExtACSyntaxCoupling;
 
32778
  friend class ::ExtACTree;
 
32779
  friend class ::ExtACKeywords;
 
32780
  friend class ::ExtGnu;
 
32781
  friend class ::PragmaOnceUnitState;
 
32782
  friend class ::PragmaOnce;
 
32783
  friend class ::CMatchSyntax;
 
32784
 
 
32785
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32786
 
 
32787
  Array<CTree*> _sons;
 
32788
  int _properties;
 
32789
 
 
32790
protected:
 
32791
  /** Constructor.
 
32792
   *  \param size The initial list size.
 
32793
   *  \param incr The initial increment count. 
 
32794
   *  \param props The list properties (bit array). */
 
32795
  CT_List(int size = 5, int incr = 5, int props = 0) : 
 
32796
    _sons (size, incr), _properties (props) {}
 
32797
 
 
32798
public:
 
32799
  /** List properties. */
 
32800
  enum {
 
32801
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
32802
    CLOSE = 2,        /** List has an end token */
 
32803
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
32804
    SEPARATORS = 4,   /** List has separators, like ',' */
 
32805
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
32806
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
32807
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
32808
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
 
32809
  };
 
32810
 
 
32811
  /** Get the number of list entries. */
 
32812
  int Entries () const;
 
32813
  /** Get the n-th list entry.
 
32814
   *  \param n The index of the entry. 
 
32815
   *  \return The list entry or NULL. */
 
32816
  CTree *Entry (int n) const;
 
32817
  /** Get the number of sons. */
 
32818
  int Sons () const { return _sons.length (); }
 
32819
  /** Get the n-th son.
 
32820
   *  \param n The index of the son. 
 
32821
   *  \return The n-th son or NULL. */
 
32822
  CTree *Son (int n) const { return _sons.lookup (n); }
 
32823
  /** Get the list properties. */
 
32824
  int GetProperties () const { return _properties; }
 
32825
  /** Add a list property.
 
32826
   *  \param p The property to add. */
 
32827
  void AddProperties (int p) { _properties |= p; }
 
32828
  /** Add a son.
 
32829
   *  \param s The son to add. */
 
32830
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
32831
  /** Prepend a son.
 
32832
   *  \param s The son to prepend. */
 
32833
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
32834
  /** Insert a son before another son.
 
32835
   *  \param before The son to insert the new son before.
 
32836
   *  \param son The son to insert. */
 
32837
  void InsertSon (CTree *before, CTree *son); 
 
32838
  /** Replace a son.
 
32839
   *  \param old_son The son to replace.
 
32840
   *  \param new_son The new son. */
 
32841
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
32842
  /** Remove a son.
 
32843
   *  \param son The son to remove. */
 
32844
  void RemoveSon (CTree *son);
 
32845
  /** Insert a son at the given index. 
 
32846
   *  \param idx The index at which to insert.
 
32847
   *  \param s The son to insert. */
 
32848
  void InsertSon (int idx, CTree *s)
 
32849
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
32850
  /** Replace the son at the given index.
 
32851
   *  \param idx The index of the son to replace.
 
32852
   *  \param s The new son. */
 
32853
  void ReplaceSon (int idx, CTree *s) 
 
32854
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
32855
  /** Remove the son at the given index. 
 
32856
   *  \param idx The index of the son to remove. */
 
32857
  void RemoveSon (int idx) 
 
32858
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
 
32859
};
 
32860
 
 
32861
/** \class CT_ExprList CTree.h Puma/CTree.h
 
32862
 *  Tree node representing an expression list. */
 
32863
 
 
32864
#line 32865 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
32865
} // closed Puma
 
32866
class CCExprResolve;
 
32867
class CExprResolve;
 
32868
class WinIfExists;
 
32869
class WinImportHandler;
 
32870
class WinMacros;
 
32871
class WinAsm;
 
32872
class WinDeclSpecs;
 
32873
class WinMemberExplSpec;
 
32874
class WinTypeKeywords;
 
32875
class WinFriend;
 
32876
class ExtAC;
 
32877
class ExtACBuilderCoupling;
 
32878
class ExtACSyntaxCoupling;
 
32879
class ExtACTree;
 
32880
class ExtACKeywords;
 
32881
class ExtGnu;
 
32882
class PragmaOnceUnitState;
 
32883
class PragmaOnce;
 
32884
class CMatchSyntax;
 
32885
namespace Puma {
 
32886
 
 
32887
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32888
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
 
32889
#line 32890 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
32890
  friend class ::CCExprResolve;
 
32891
  friend class ::CExprResolve;
 
32892
  friend class ::WinIfExists;
 
32893
  friend class ::WinImportHandler;
 
32894
  friend class ::WinMacros;
 
32895
  friend class ::WinAsm;
 
32896
  friend class ::WinDeclSpecs;
 
32897
  friend class ::WinMemberExplSpec;
 
32898
  friend class ::WinTypeKeywords;
 
32899
  friend class ::WinFriend;
 
32900
  friend class ::ExtAC;
 
32901
  friend class ::ExtACBuilderCoupling;
 
32902
  friend class ::ExtACSyntaxCoupling;
 
32903
  friend class ::ExtACTree;
 
32904
  friend class ::ExtACKeywords;
 
32905
  friend class ::ExtGnu;
 
32906
  friend class ::PragmaOnceUnitState;
 
32907
  friend class ::PragmaOnce;
 
32908
  friend class ::CMatchSyntax;
 
32909
 
 
32910
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32911
 
 
32912
public:
 
32913
  /** Constructor. */
 
32914
  CT_ExprList () { AddProperties (SEPARATORS); }
 
32915
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32916
  static const char *NodeId ();
 
32917
  /** Get the name of the node. Can be compared with NodeId(). */
 
32918
  const char *NodeName () const { return NodeId (); }
 
32919
 
 
32920
  /** Get the type of the last expression in the expression list.
 
32921
   *  \return The type or NULL. */
 
32922
  CTypeInfo *Type () const { return type; }
 
32923
  /** Get the value of the last expression in the expression list.
 
32924
   *  \return The value of NULL. */
 
32925
  CExprValue *Value () const { return value; }
 
32926
  /** Get the semantic value of the node. */
 
32927
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
32928
  /** Get the semantic object of the node. */
 
32929
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
32930
};
 
32931
 
 
32932
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
32933
 *  Tree node representing a list of declarators. */
 
32934
 
 
32935
#line 32936 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
32936
} // closed Puma
 
32937
class CCExprResolve;
 
32938
class CExprResolve;
 
32939
class WinIfExists;
 
32940
class WinImportHandler;
 
32941
class WinMacros;
 
32942
class WinAsm;
 
32943
class WinDeclSpecs;
 
32944
class WinMemberExplSpec;
 
32945
class WinTypeKeywords;
 
32946
class WinFriend;
 
32947
class ExtAC;
 
32948
class ExtACBuilderCoupling;
 
32949
class ExtACSyntaxCoupling;
 
32950
class ExtACTree;
 
32951
class ExtACKeywords;
 
32952
class ExtGnu;
 
32953
class PragmaOnceUnitState;
 
32954
class PragmaOnce;
 
32955
class CMatchSyntax;
 
32956
namespace Puma {
 
32957
 
 
32958
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32959
class CT_DeclaratorList : public CT_List {
 
32960
#line 32961 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
32961
  friend class ::CCExprResolve;
 
32962
  friend class ::CExprResolve;
 
32963
  friend class ::WinIfExists;
 
32964
  friend class ::WinImportHandler;
 
32965
  friend class ::WinMacros;
 
32966
  friend class ::WinAsm;
 
32967
  friend class ::WinDeclSpecs;
 
32968
  friend class ::WinMemberExplSpec;
 
32969
  friend class ::WinTypeKeywords;
 
32970
  friend class ::WinFriend;
 
32971
  friend class ::ExtAC;
 
32972
  friend class ::ExtACBuilderCoupling;
 
32973
  friend class ::ExtACSyntaxCoupling;
 
32974
  friend class ::ExtACTree;
 
32975
  friend class ::ExtACKeywords;
 
32976
  friend class ::ExtGnu;
 
32977
  friend class ::PragmaOnceUnitState;
 
32978
  friend class ::PragmaOnce;
 
32979
  friend class ::CMatchSyntax;
 
32980
 
 
32981
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32982
 
 
32983
public:
 
32984
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32985
  static const char *NodeId ();
 
32986
  /** Get the name of the node. Can be compared with NodeId(). */
 
32987
  const char *NodeName () const { return NodeId (); }
 
32988
};
 
32989
 
 
32990
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
32991
 *  Tree node representing a list of enumerator constants. */
 
32992
 
 
32993
#line 32994 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
32994
} // closed Puma
 
32995
class CCExprResolve;
 
32996
class CExprResolve;
 
32997
class WinIfExists;
 
32998
class WinImportHandler;
 
32999
class WinMacros;
 
33000
class WinAsm;
 
33001
class WinDeclSpecs;
 
33002
class WinMemberExplSpec;
 
33003
class WinTypeKeywords;
 
33004
class WinFriend;
 
33005
class ExtAC;
 
33006
class ExtACBuilderCoupling;
 
33007
class ExtACSyntaxCoupling;
 
33008
class ExtACTree;
 
33009
class ExtACKeywords;
 
33010
class ExtGnu;
 
33011
class PragmaOnceUnitState;
 
33012
class PragmaOnce;
 
33013
class CMatchSyntax;
 
33014
namespace Puma {
 
33015
 
 
33016
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33017
class CT_EnumeratorList : public CT_List {
 
33018
#line 33019 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33019
  friend class ::CCExprResolve;
 
33020
  friend class ::CExprResolve;
 
33021
  friend class ::WinIfExists;
 
33022
  friend class ::WinImportHandler;
 
33023
  friend class ::WinMacros;
 
33024
  friend class ::WinAsm;
 
33025
  friend class ::WinDeclSpecs;
 
33026
  friend class ::WinMemberExplSpec;
 
33027
  friend class ::WinTypeKeywords;
 
33028
  friend class ::WinFriend;
 
33029
  friend class ::ExtAC;
 
33030
  friend class ::ExtACBuilderCoupling;
 
33031
  friend class ::ExtACSyntaxCoupling;
 
33032
  friend class ::ExtACTree;
 
33033
  friend class ::ExtACKeywords;
 
33034
  friend class ::ExtGnu;
 
33035
  friend class ::PragmaOnceUnitState;
 
33036
  friend class ::PragmaOnce;
 
33037
  friend class ::CMatchSyntax;
 
33038
 
 
33039
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33040
 
 
33041
public:
 
33042
  /** Constructor. */
 
33043
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
33044
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33045
  static const char *NodeId ();
 
33046
  /** Get the name of the node. Can be compared with NodeId(). */
 
33047
  const char *NodeName () const { return NodeId (); }
 
33048
};
 
33049
   
 
33050
/** \class CT_DeclList CTree.h Puma/CTree.h
 
33051
 *  Tree node representing a list of declarations. */
 
33052
 
 
33053
#line 33054 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33054
} // closed Puma
 
33055
class CCExprResolve;
 
33056
class CExprResolve;
 
33057
class WinIfExists;
 
33058
class WinImportHandler;
 
33059
class WinMacros;
 
33060
class WinAsm;
 
33061
class WinDeclSpecs;
 
33062
class WinMemberExplSpec;
 
33063
class WinTypeKeywords;
 
33064
class WinFriend;
 
33065
class ExtAC;
 
33066
class ExtACBuilderCoupling;
 
33067
class ExtACSyntaxCoupling;
 
33068
class ExtACTree;
 
33069
class ExtACKeywords;
 
33070
class ExtGnu;
 
33071
class PragmaOnceUnitState;
 
33072
class PragmaOnce;
 
33073
class CMatchSyntax;
 
33074
namespace Puma {
 
33075
 
 
33076
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33077
class CT_DeclList : public CT_List {
 
33078
#line 33079 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33079
  friend class ::CCExprResolve;
 
33080
  friend class ::CExprResolve;
 
33081
  friend class ::WinIfExists;
 
33082
  friend class ::WinImportHandler;
 
33083
  friend class ::WinMacros;
 
33084
  friend class ::WinAsm;
 
33085
  friend class ::WinDeclSpecs;
 
33086
  friend class ::WinMemberExplSpec;
 
33087
  friend class ::WinTypeKeywords;
 
33088
  friend class ::WinFriend;
 
33089
  friend class ::ExtAC;
 
33090
  friend class ::ExtACBuilderCoupling;
 
33091
  friend class ::ExtACSyntaxCoupling;
 
33092
  friend class ::ExtACTree;
 
33093
  friend class ::ExtACKeywords;
 
33094
  friend class ::ExtGnu;
 
33095
  friend class ::PragmaOnceUnitState;
 
33096
  friend class ::PragmaOnce;
 
33097
  friend class ::CMatchSyntax;
 
33098
 
 
33099
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33100
 
 
33101
public:
 
33102
  /** Constructor. 
 
33103
   *  \param size The initial size of the list.
 
33104
   *  \param incr The initial increment count of the list. */
 
33105
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
33106
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33107
  static const char *NodeId ();
 
33108
  /** Get the name of the node. Can be compared with NodeId(). */
 
33109
  const char *NodeName () const { return NodeId (); }
 
33110
  /** Set the linkage specifiers to each declaration in the list.
 
33111
   *  \param l The linkage specifiers node. */
 
33112
  void Linkage (CT_LinkageSpec *l);
 
33113
};
 
33114
 
 
33115
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
33116
 *  Tree node representing a sequence of declaration specifiers. */
 
33117
 
 
33118
#line 33119 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33119
} // closed Puma
 
33120
class CCExprResolve;
 
33121
class CExprResolve;
 
33122
class WinIfExists;
 
33123
class WinImportHandler;
 
33124
class WinMacros;
 
33125
class WinAsm;
 
33126
class WinDeclSpecs;
 
33127
class WinMemberExplSpec;
 
33128
class WinTypeKeywords;
 
33129
class WinFriend;
 
33130
class ExtAC;
 
33131
class ExtACBuilderCoupling;
 
33132
class ExtACSyntaxCoupling;
 
33133
class ExtACTree;
 
33134
class ExtACKeywords;
 
33135
class ExtGnu;
 
33136
class PragmaOnceUnitState;
 
33137
class PragmaOnce;
 
33138
class CMatchSyntax;
 
33139
namespace Puma {
 
33140
 
 
33141
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33142
class CT_DeclSpecSeq : public CT_List {
 
33143
#line 33144 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33144
  friend class ::CCExprResolve;
 
33145
  friend class ::CExprResolve;
 
33146
  friend class ::WinIfExists;
 
33147
  friend class ::WinImportHandler;
 
33148
  friend class ::WinMacros;
 
33149
  friend class ::WinAsm;
 
33150
  friend class ::WinDeclSpecs;
 
33151
  friend class ::WinMemberExplSpec;
 
33152
  friend class ::WinTypeKeywords;
 
33153
  friend class ::WinFriend;
 
33154
  friend class ::ExtAC;
 
33155
  friend class ::ExtACBuilderCoupling;
 
33156
  friend class ::ExtACSyntaxCoupling;
 
33157
  friend class ::ExtACTree;
 
33158
  friend class ::ExtACKeywords;
 
33159
  friend class ::ExtGnu;
 
33160
  friend class ::PragmaOnceUnitState;
 
33161
  friend class ::PragmaOnce;
 
33162
  friend class ::CMatchSyntax;
 
33163
 
 
33164
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33165
 
 
33166
public:
 
33167
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33168
  static const char *NodeId ();
 
33169
  /** Get the name of the node. Can be compared with NodeId(). */
 
33170
  const char *NodeName () const { return NodeId (); }
 
33171
};
 
33172
 
 
33173
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
33174
 *  Tree node representing a compound statement. */
 
33175
 
 
33176
#line 33177 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33177
} // closed Puma
 
33178
class CCExprResolve;
 
33179
class CExprResolve;
 
33180
class WinIfExists;
 
33181
class WinImportHandler;
 
33182
class WinMacros;
 
33183
class WinAsm;
 
33184
class WinDeclSpecs;
 
33185
class WinMemberExplSpec;
 
33186
class WinTypeKeywords;
 
33187
class WinFriend;
 
33188
class ExtAC;
 
33189
class ExtACBuilderCoupling;
 
33190
class ExtACSyntaxCoupling;
 
33191
class ExtACTree;
 
33192
class ExtACKeywords;
 
33193
class ExtGnu;
 
33194
class PragmaOnceUnitState;
 
33195
class PragmaOnce;
 
33196
class CMatchSyntax;
 
33197
namespace Puma {
 
33198
 
 
33199
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33200
class CT_CmpdStmt : public CT_List, public CSemScope {
 
33201
#line 33202 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33202
  friend class ::CCExprResolve;
 
33203
  friend class ::CExprResolve;
 
33204
  friend class ::WinIfExists;
 
33205
  friend class ::WinImportHandler;
 
33206
  friend class ::WinMacros;
 
33207
  friend class ::WinAsm;
 
33208
  friend class ::WinDeclSpecs;
 
33209
  friend class ::WinMemberExplSpec;
 
33210
  friend class ::WinTypeKeywords;
 
33211
  friend class ::WinFriend;
 
33212
  friend class ::ExtAC;
 
33213
  friend class ::ExtACBuilderCoupling;
 
33214
  friend class ::ExtACSyntaxCoupling;
 
33215
  friend class ::ExtACTree;
 
33216
  friend class ::ExtACKeywords;
 
33217
  friend class ::ExtGnu;
 
33218
  friend class ::PragmaOnceUnitState;
 
33219
  friend class ::PragmaOnce;
 
33220
  friend class ::CMatchSyntax;
 
33221
 
 
33222
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33223
 
 
33224
public:
 
33225
  /* Constructor. */
 
33226
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
33227
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33228
  static const char *NodeId ();
 
33229
  /** Get the name of the node. Can be compared with NodeId(). */
 
33230
  const char *NodeName () const { return NodeId (); }
 
33231
  /** Get the local scope of the compound statement. */
 
33232
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
33233
};
 
33234
 
 
33235
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
33236
 *  Tree node representing an exception handler sequence. */
 
33237
 
 
33238
#line 33239 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33239
} // closed Puma
 
33240
class CCExprResolve;
 
33241
class CExprResolve;
 
33242
class WinIfExists;
 
33243
class WinImportHandler;
 
33244
class WinMacros;
 
33245
class WinAsm;
 
33246
class WinDeclSpecs;
 
33247
class WinMemberExplSpec;
 
33248
class WinTypeKeywords;
 
33249
class WinFriend;
 
33250
class ExtAC;
 
33251
class ExtACBuilderCoupling;
 
33252
class ExtACSyntaxCoupling;
 
33253
class ExtACTree;
 
33254
class ExtACKeywords;
 
33255
class ExtGnu;
 
33256
class PragmaOnceUnitState;
 
33257
class PragmaOnce;
 
33258
class CMatchSyntax;
 
33259
namespace Puma {
 
33260
 
 
33261
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33262
class CT_HandlerSeq : public CT_List {
 
33263
#line 33264 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33264
  friend class ::CCExprResolve;
 
33265
  friend class ::CExprResolve;
 
33266
  friend class ::WinIfExists;
 
33267
  friend class ::WinImportHandler;
 
33268
  friend class ::WinMacros;
 
33269
  friend class ::WinAsm;
 
33270
  friend class ::WinDeclSpecs;
 
33271
  friend class ::WinMemberExplSpec;
 
33272
  friend class ::WinTypeKeywords;
 
33273
  friend class ::WinFriend;
 
33274
  friend class ::ExtAC;
 
33275
  friend class ::ExtACBuilderCoupling;
 
33276
  friend class ::ExtACSyntaxCoupling;
 
33277
  friend class ::ExtACTree;
 
33278
  friend class ::ExtACKeywords;
 
33279
  friend class ::ExtGnu;
 
33280
  friend class ::PragmaOnceUnitState;
 
33281
  friend class ::PragmaOnce;
 
33282
  friend class ::CMatchSyntax;
 
33283
 
 
33284
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33285
 
 
33286
public:
 
33287
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33288
  static const char *NodeId ();
 
33289
  /** Get the name of the node. Can be compared with NodeId(). */
 
33290
  const char *NodeName () const { return NodeId (); }
 
33291
};
 
33292
 
 
33293
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
33294
 *  Tree node representing a template parameter list. */
 
33295
 
 
33296
#line 33297 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33297
} // closed Puma
 
33298
class CCExprResolve;
 
33299
class CExprResolve;
 
33300
class WinIfExists;
 
33301
class WinImportHandler;
 
33302
class WinMacros;
 
33303
class WinAsm;
 
33304
class WinDeclSpecs;
 
33305
class WinMemberExplSpec;
 
33306
class WinTypeKeywords;
 
33307
class WinFriend;
 
33308
class ExtAC;
 
33309
class ExtACBuilderCoupling;
 
33310
class ExtACSyntaxCoupling;
 
33311
class ExtACTree;
 
33312
class ExtACKeywords;
 
33313
class ExtGnu;
 
33314
class PragmaOnceUnitState;
 
33315
class PragmaOnce;
 
33316
class CMatchSyntax;
 
33317
namespace Puma {
 
33318
 
 
33319
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33320
class CT_TemplateParamList : public CT_List, public CSemScope {
 
33321
#line 33322 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33322
  friend class ::CCExprResolve;
 
33323
  friend class ::CExprResolve;
 
33324
  friend class ::WinIfExists;
 
33325
  friend class ::WinImportHandler;
 
33326
  friend class ::WinMacros;
 
33327
  friend class ::WinAsm;
 
33328
  friend class ::WinDeclSpecs;
 
33329
  friend class ::WinMemberExplSpec;
 
33330
  friend class ::WinTypeKeywords;
 
33331
  friend class ::WinFriend;
 
33332
  friend class ::ExtAC;
 
33333
  friend class ::ExtACBuilderCoupling;
 
33334
  friend class ::ExtACSyntaxCoupling;
 
33335
  friend class ::ExtACTree;
 
33336
  friend class ::ExtACKeywords;
 
33337
  friend class ::ExtGnu;
 
33338
  friend class ::PragmaOnceUnitState;
 
33339
  friend class ::PragmaOnce;
 
33340
  friend class ::CMatchSyntax;
 
33341
 
 
33342
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33343
 
 
33344
public:
 
33345
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
33346
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33347
  static const char *NodeId ();
 
33348
  /** Get the name of the node. Can be compared with NodeId(). */
 
33349
  const char *NodeName () const { return NodeId (); }
 
33350
  /** Get the scope of the template parameter list. */
 
33351
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
33352
};
 
33353
 
 
33354
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
33355
 *  Tree node representing a template argument list. */
 
33356
 
 
33357
#line 33358 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33358
} // closed Puma
 
33359
class CCExprResolve;
 
33360
class CExprResolve;
 
33361
class WinIfExists;
 
33362
class WinImportHandler;
 
33363
class WinMacros;
 
33364
class WinAsm;
 
33365
class WinDeclSpecs;
 
33366
class WinMemberExplSpec;
 
33367
class WinTypeKeywords;
 
33368
class WinFriend;
 
33369
class ExtAC;
 
33370
class ExtACBuilderCoupling;
 
33371
class ExtACSyntaxCoupling;
 
33372
class ExtACTree;
 
33373
class ExtACKeywords;
 
33374
class ExtGnu;
 
33375
class PragmaOnceUnitState;
 
33376
class PragmaOnce;
 
33377
class CMatchSyntax;
 
33378
namespace Puma {
 
33379
 
 
33380
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33381
class CT_TemplateArgList : public CT_List {
 
33382
#line 33383 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33383
  friend class ::CCExprResolve;
 
33384
  friend class ::CExprResolve;
 
33385
  friend class ::WinIfExists;
 
33386
  friend class ::WinImportHandler;
 
33387
  friend class ::WinMacros;
 
33388
  friend class ::WinAsm;
 
33389
  friend class ::WinDeclSpecs;
 
33390
  friend class ::WinMemberExplSpec;
 
33391
  friend class ::WinTypeKeywords;
 
33392
  friend class ::WinFriend;
 
33393
  friend class ::ExtAC;
 
33394
  friend class ::ExtACBuilderCoupling;
 
33395
  friend class ::ExtACSyntaxCoupling;
 
33396
  friend class ::ExtACTree;
 
33397
  friend class ::ExtACKeywords;
 
33398
  friend class ::ExtGnu;
 
33399
  friend class ::PragmaOnceUnitState;
 
33400
  friend class ::PragmaOnce;
 
33401
  friend class ::CMatchSyntax;
 
33402
 
 
33403
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33404
 
 
33405
public:
 
33406
  /** Constructor. */
 
33407
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
33408
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33409
  static const char *NodeId ();
 
33410
  /** Get the name of the node. Can be compared with NodeId(). */
 
33411
  const char *NodeName () const { return NodeId (); }
 
33412
};
 
33413
 
 
33414
/*****************************************************************************/
 
33415
/*                                                                           */
 
33416
/*                              Expressions                                  */
 
33417
/*                                                                           */
 
33418
/*****************************************************************************/
 
33419
 
 
33420
/** \class CT_Expression CTree.h Puma/CTree.h
 
33421
 *  Base class for all expression tree nodes. */
 
33422
 
 
33423
#line 33424 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33424
} // closed Puma
 
33425
class CCExprResolve;
 
33426
class CExprResolve;
 
33427
class WinIfExists;
 
33428
class WinImportHandler;
 
33429
class WinMacros;
 
33430
class WinAsm;
 
33431
class WinDeclSpecs;
 
33432
class WinMemberExplSpec;
 
33433
class WinTypeKeywords;
 
33434
class WinFriend;
 
33435
class ExtAC;
 
33436
class ExtACBuilderCoupling;
 
33437
class ExtACSyntaxCoupling;
 
33438
class ExtACTree;
 
33439
class ExtACKeywords;
 
33440
class ExtGnu;
 
33441
class PragmaOnceUnitState;
 
33442
class PragmaOnce;
 
33443
class CMatchSyntax;
 
33444
namespace Puma {
 
33445
 
 
33446
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33447
 
 
33448
#line 33449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33449
} // closed Puma
 
33450
 
 
33451
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33452
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33453
#include "CCExprResolveH.ah"
 
33454
#endif
 
33455
namespace Puma {
 
33456
 
 
33457
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33458
 
 
33459
#line 33460 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33460
} // closed Puma
 
33461
 
 
33462
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33463
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33464
#include "CExprResolveH.ah"
 
33465
#endif
 
33466
namespace Puma {
 
33467
 
 
33468
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33469
class CT_Expression : public CTree, public CSemValue {
 
33470
#line 33471 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33471
  friend class ::CCExprResolve;
 
33472
  friend class ::CExprResolve;
 
33473
  friend class ::WinIfExists;
 
33474
  friend class ::WinImportHandler;
 
33475
  friend class ::WinMacros;
 
33476
  friend class ::WinAsm;
 
33477
  friend class ::WinDeclSpecs;
 
33478
  friend class ::WinMemberExplSpec;
 
33479
  friend class ::WinTypeKeywords;
 
33480
  friend class ::WinFriend;
 
33481
  friend class ::ExtAC;
 
33482
  friend class ::ExtACBuilderCoupling;
 
33483
  friend class ::ExtACSyntaxCoupling;
 
33484
  friend class ::ExtACTree;
 
33485
  friend class ::ExtACKeywords;
 
33486
  friend class ::ExtGnu;
 
33487
  friend class ::PragmaOnceUnitState;
 
33488
  friend class ::PragmaOnce;
 
33489
  friend class ::CMatchSyntax;
 
33490
 
 
33491
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33492
 
 
33493
protected:
 
33494
  /** Constructor. */
 
33495
  CT_Expression () {}
 
33496
 
 
33497
public:
 
33498
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33499
  static const char *NodeId ();
 
33500
  /** Get the name of the node. Can be compared with NodeId(). */
 
33501
  const char *NodeName () const { return NodeId (); }
 
33502
  /** Get the type of the expression.
 
33503
   *  \return The type information object or NULL. */
 
33504
  CTypeInfo *Type () const { return type; }
 
33505
  /** Get the value of the expression.
 
33506
   *  \return The value object or NULL. */
 
33507
  CExprValue *Value () const { return value; }
 
33508
  /** Get the semantic value information of the expression.
 
33509
   *  \return The value object or NULL. */
 
33510
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
33511
  /** Get this. */
 
33512
  virtual CT_Expression *IsExpression () { return this; }
 
33513
   private:
 
33514
  typedef CT_Expression CCExprResolveExpr;
 
33515
 
 
33516
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
33517
 public :
 
33518
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
33519
  typedef CT_Expression CExprResolveExpr;
 
33520
 
 
33521
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
33522
 public :
 
33523
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
33524
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33525
};
 
33526
 
 
33527
/** \class CT_Call CTree.h Puma/CTree.h
 
33528
 *  Tree node representing explicit or implicit function calls 
 
33529
 *  including built-in or user-defined functions and overloaded
 
33530
 *  operators. */
 
33531
 
 
33532
#line 33533 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33533
} // closed Puma
 
33534
class CCExprResolve;
 
33535
class CExprResolve;
 
33536
class WinIfExists;
 
33537
class WinImportHandler;
 
33538
class WinMacros;
 
33539
class WinAsm;
 
33540
class WinDeclSpecs;
 
33541
class WinMemberExplSpec;
 
33542
class WinTypeKeywords;
 
33543
class WinFriend;
 
33544
class ExtAC;
 
33545
class ExtACBuilderCoupling;
 
33546
class ExtACSyntaxCoupling;
 
33547
class ExtACTree;
 
33548
class ExtACKeywords;
 
33549
class ExtGnu;
 
33550
class PragmaOnceUnitState;
 
33551
class PragmaOnce;
 
33552
class CMatchSyntax;
 
33553
namespace Puma {
 
33554
 
 
33555
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33556
 
 
33557
#line 33558 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33558
} // closed Puma
 
33559
 
 
33560
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33561
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33562
#include "CCExprResolveH.ah"
 
33563
#endif
 
33564
namespace Puma {
 
33565
 
 
33566
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33567
 
 
33568
#line 33569 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33569
} // closed Puma
 
33570
 
 
33571
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33572
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33573
#include "CExprResolveH.ah"
 
33574
#endif
 
33575
namespace Puma {
 
33576
 
 
33577
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33578
class CT_Call : public CT_Expression, public CSemObject {
 
33579
#line 33580 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33580
  friend class ::CCExprResolve;
 
33581
  friend class ::CExprResolve;
 
33582
  friend class ::WinIfExists;
 
33583
  friend class ::WinImportHandler;
 
33584
  friend class ::WinMacros;
 
33585
  friend class ::WinAsm;
 
33586
  friend class ::WinDeclSpecs;
 
33587
  friend class ::WinMemberExplSpec;
 
33588
  friend class ::WinTypeKeywords;
 
33589
  friend class ::WinFriend;
 
33590
  friend class ::ExtAC;
 
33591
  friend class ::ExtACBuilderCoupling;
 
33592
  friend class ::ExtACSyntaxCoupling;
 
33593
  friend class ::ExtACTree;
 
33594
  friend class ::ExtACKeywords;
 
33595
  friend class ::ExtGnu;
 
33596
  friend class ::PragmaOnceUnitState;
 
33597
  friend class ::PragmaOnce;
 
33598
  friend class ::CMatchSyntax;
 
33599
 
 
33600
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33601
 
 
33602
protected:
 
33603
  /** Constructor. */
 
33604
  CT_Call () {}
 
33605
  
 
33606
public:
 
33607
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33608
  static const char *NodeId ();
 
33609
  /** Get the name of the node. Can be compared with NodeId(). */
 
33610
  const char *NodeName () const { return NodeId (); }
 
33611
  /** Get the semantic information of the call.
 
33612
   *  \return The semantic information or NULL. */
 
33613
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
33614
  /** Get this. */
 
33615
  CT_Call *IsCall () { return this; }
 
33616
   private:
 
33617
  typedef CT_Call CCExprResolveExpr;
 
33618
 
 
33619
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
33620
 public :
 
33621
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
33622
  typedef CT_Call CExprResolveExpr;
 
33623
 
 
33624
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
33625
 public :
 
33626
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
33627
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33628
};
 
33629
 
 
33630
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
33631
 *  Tree node representing implicit function calls detected by
 
33632
 *  the semantic analysis. */
 
33633
 
 
33634
#line 33635 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33635
} // closed Puma
 
33636
class CCExprResolve;
 
33637
class CExprResolve;
 
33638
class WinIfExists;
 
33639
class WinImportHandler;
 
33640
class WinMacros;
 
33641
class WinAsm;
 
33642
class WinDeclSpecs;
 
33643
class WinMemberExplSpec;
 
33644
class WinTypeKeywords;
 
33645
class WinFriend;
 
33646
class ExtAC;
 
33647
class ExtACBuilderCoupling;
 
33648
class ExtACSyntaxCoupling;
 
33649
class ExtACTree;
 
33650
class ExtACKeywords;
 
33651
class ExtGnu;
 
33652
class PragmaOnceUnitState;
 
33653
class PragmaOnce;
 
33654
class CMatchSyntax;
 
33655
namespace Puma {
 
33656
 
 
33657
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33658
 
 
33659
#line 33660 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33660
} // closed Puma
 
33661
 
 
33662
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33663
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33664
#include "CCExprResolveH.ah"
 
33665
#endif
 
33666
namespace Puma {
 
33667
 
 
33668
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33669
 
 
33670
#line 33671 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33671
} // closed Puma
 
33672
 
 
33673
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33674
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33675
#include "CExprResolveH.ah"
 
33676
#endif
 
33677
namespace Puma {
 
33678
 
 
33679
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33680
class CT_ImplicitCall : public CT_Call {
 
33681
#line 33682 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33682
  friend class ::CCExprResolve;
 
33683
  friend class ::CExprResolve;
 
33684
  friend class ::WinIfExists;
 
33685
  friend class ::WinImportHandler;
 
33686
  friend class ::WinMacros;
 
33687
  friend class ::WinAsm;
 
33688
  friend class ::WinDeclSpecs;
 
33689
  friend class ::WinMemberExplSpec;
 
33690
  friend class ::WinTypeKeywords;
 
33691
  friend class ::WinFriend;
 
33692
  friend class ::ExtAC;
 
33693
  friend class ::ExtACBuilderCoupling;
 
33694
  friend class ::ExtACSyntaxCoupling;
 
33695
  friend class ::ExtACTree;
 
33696
  friend class ::ExtACKeywords;
 
33697
  friend class ::ExtGnu;
 
33698
  friend class ::PragmaOnceUnitState;
 
33699
  friend class ::PragmaOnce;
 
33700
  friend class ::CMatchSyntax;
 
33701
 
 
33702
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33703
 
 
33704
  CTree *_arg;
 
33705
 
 
33706
public:
 
33707
  /** Constructor.
 
33708
   *  \param arg The call argument. */
 
33709
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
33710
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33711
  static const char *NodeId ();
 
33712
  /** Get the name of the node. Can be compared with NodeId(). */
 
33713
  const char *NodeName () const { return NodeId (); }
 
33714
  /** Get the number of sons. */
 
33715
  int Sons () const { return 1; }
 
33716
  /** Get the n-th son.
 
33717
   *  \param n The index of the son.
 
33718
   *  \return The n-th son or NULL. */
 
33719
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
33720
  /** Replace a son.
 
33721
   *  \param old_son The son to replace.
 
33722
   *  \param new_son The new son. */
 
33723
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
33724
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
33725
   private:
 
33726
  typedef CT_ImplicitCall CCExprResolveExpr;
 
33727
 
 
33728
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
33729
 public :
 
33730
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
33731
  typedef CT_ImplicitCall CExprResolveExpr;
 
33732
 
 
33733
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
33734
 public :
 
33735
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
33736
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33737
};
 
33738
 
 
33739
/** \class CT_String CTree.h Puma/CTree.h
 
33740
 *  Tree node representing a string literal. */
 
33741
 
 
33742
#line 33743 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33743
} // closed Puma
 
33744
class CCExprResolve;
 
33745
class CExprResolve;
 
33746
class WinIfExists;
 
33747
class WinImportHandler;
 
33748
class WinMacros;
 
33749
class WinAsm;
 
33750
class WinDeclSpecs;
 
33751
class WinMemberExplSpec;
 
33752
class WinTypeKeywords;
 
33753
class WinFriend;
 
33754
class ExtAC;
 
33755
class ExtACBuilderCoupling;
 
33756
class ExtACSyntaxCoupling;
 
33757
class ExtACTree;
 
33758
class ExtACKeywords;
 
33759
class ExtGnu;
 
33760
class PragmaOnceUnitState;
 
33761
class PragmaOnce;
 
33762
class CMatchSyntax;
 
33763
namespace Puma {
 
33764
 
 
33765
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33766
 
 
33767
#line 33768 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33768
} // closed Puma
 
33769
 
 
33770
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33771
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33772
#include "CCExprResolveH.ah"
 
33773
#endif
 
33774
namespace Puma {
 
33775
 
 
33776
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33777
 
 
33778
#line 33779 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33779
} // closed Puma
 
33780
 
 
33781
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33782
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33783
#include "CExprResolveH.ah"
 
33784
#endif
 
33785
namespace Puma {
 
33786
 
 
33787
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33788
class CT_String : public CT_List, public CSemValue {
 
33789
#line 33790 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33790
  friend class ::CCExprResolve;
 
33791
  friend class ::CExprResolve;
 
33792
  friend class ::WinIfExists;
 
33793
  friend class ::WinImportHandler;
 
33794
  friend class ::WinMacros;
 
33795
  friend class ::WinAsm;
 
33796
  friend class ::WinDeclSpecs;
 
33797
  friend class ::WinMemberExplSpec;
 
33798
  friend class ::WinTypeKeywords;
 
33799
  friend class ::WinFriend;
 
33800
  friend class ::ExtAC;
 
33801
  friend class ::ExtACBuilderCoupling;
 
33802
  friend class ::ExtACSyntaxCoupling;
 
33803
  friend class ::ExtACTree;
 
33804
  friend class ::ExtACKeywords;
 
33805
  friend class ::ExtGnu;
 
33806
  friend class ::PragmaOnceUnitState;
 
33807
  friend class ::PragmaOnce;
 
33808
  friend class ::CMatchSyntax;
 
33809
 
 
33810
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33811
 
 
33812
public:
 
33813
  /** Constructor. 
 
33814
   *  \param size The number of sub-strings. */
 
33815
  CT_String (int size) : CT_List (size, 1) {}
 
33816
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33817
  static const char *NodeId ();
 
33818
  /** Get the name of the node. Can be compared with NodeId(). */
 
33819
  const char *NodeName () const { return NodeId (); }
 
33820
 
 
33821
  /** Get the type of the string. 
 
33822
   *  \return The type or NULL. */
 
33823
  CTypeInfo *Type () const { return type; }
 
33824
  /** Get the string value.
 
33825
   *  \return The value or NULL. */
 
33826
  CExprValue *Value () const { return value; }
 
33827
  /** Get the semantic value info object.
 
33828
   *  \return The semantic value object or NULL. */
 
33829
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
33830
  /** Get this. */
 
33831
  virtual CT_String *IsString () { return this; }
 
33832
   private:
 
33833
  typedef CT_String CCExprResolveExpr;
 
33834
 
 
33835
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
33836
 public :
 
33837
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
33838
  typedef CT_String CExprResolveExpr;
 
33839
 
 
33840
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
33841
 public :
 
33842
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
33843
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33844
};
 
33845
 
 
33846
/** \class CT_WideString CTree.h Puma/CTree.h
 
33847
 *  Tree node representing a wide string literal. */
 
33848
 
 
33849
#line 33850 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33850
} // closed Puma
 
33851
class CCExprResolve;
 
33852
class CExprResolve;
 
33853
class WinIfExists;
 
33854
class WinImportHandler;
 
33855
class WinMacros;
 
33856
class WinAsm;
 
33857
class WinDeclSpecs;
 
33858
class WinMemberExplSpec;
 
33859
class WinTypeKeywords;
 
33860
class WinFriend;
 
33861
class ExtAC;
 
33862
class ExtACBuilderCoupling;
 
33863
class ExtACSyntaxCoupling;
 
33864
class ExtACTree;
 
33865
class ExtACKeywords;
 
33866
class ExtGnu;
 
33867
class PragmaOnceUnitState;
 
33868
class PragmaOnce;
 
33869
class CMatchSyntax;
 
33870
namespace Puma {
 
33871
 
 
33872
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33873
 
 
33874
#line 33875 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33875
} // closed Puma
 
33876
 
 
33877
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33878
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33879
#include "CCExprResolveH.ah"
 
33880
#endif
 
33881
namespace Puma {
 
33882
 
 
33883
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33884
 
 
33885
#line 33886 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33886
} // closed Puma
 
33887
 
 
33888
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33889
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33890
#include "CExprResolveH.ah"
 
33891
#endif
 
33892
namespace Puma {
 
33893
 
 
33894
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33895
class CT_WideString : public CT_String {
 
33896
#line 33897 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33897
  friend class ::CCExprResolve;
 
33898
  friend class ::CExprResolve;
 
33899
  friend class ::WinIfExists;
 
33900
  friend class ::WinImportHandler;
 
33901
  friend class ::WinMacros;
 
33902
  friend class ::WinAsm;
 
33903
  friend class ::WinDeclSpecs;
 
33904
  friend class ::WinMemberExplSpec;
 
33905
  friend class ::WinTypeKeywords;
 
33906
  friend class ::WinFriend;
 
33907
  friend class ::ExtAC;
 
33908
  friend class ::ExtACBuilderCoupling;
 
33909
  friend class ::ExtACSyntaxCoupling;
 
33910
  friend class ::ExtACTree;
 
33911
  friend class ::ExtACKeywords;
 
33912
  friend class ::ExtGnu;
 
33913
  friend class ::PragmaOnceUnitState;
 
33914
  friend class ::PragmaOnce;
 
33915
  friend class ::CMatchSyntax;
 
33916
 
 
33917
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33918
 
 
33919
public:
 
33920
  /** Constructor.
 
33921
   *  \param size The number of sub-strings. */
 
33922
  CT_WideString (int size) : CT_String (size) {}
 
33923
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33924
  static const char *NodeId ();
 
33925
  /** Get the name of the node. Can be compared with NodeId(). */
 
33926
  const char *NodeName () const { return NodeId (); }
 
33927
   private:
 
33928
  typedef CT_WideString CCExprResolveExpr;
 
33929
 
 
33930
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
33931
 public :
 
33932
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
33933
  typedef CT_WideString CExprResolveExpr;
 
33934
 
 
33935
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
33936
 public :
 
33937
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
33938
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33939
};
 
33940
 
 
33941
/** \class CT_Integer CTree.h Puma/CTree.h
 
33942
 *  Tree node representing an integer constant. */
 
33943
 
 
33944
#line 33945 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33945
} // closed Puma
 
33946
class CCExprResolve;
 
33947
class CExprResolve;
 
33948
class WinIfExists;
 
33949
class WinImportHandler;
 
33950
class WinMacros;
 
33951
class WinAsm;
 
33952
class WinDeclSpecs;
 
33953
class WinMemberExplSpec;
 
33954
class WinTypeKeywords;
 
33955
class WinFriend;
 
33956
class ExtAC;
 
33957
class ExtACBuilderCoupling;
 
33958
class ExtACSyntaxCoupling;
 
33959
class ExtACTree;
 
33960
class ExtACKeywords;
 
33961
class ExtGnu;
 
33962
class PragmaOnceUnitState;
 
33963
class PragmaOnce;
 
33964
class CMatchSyntax;
 
33965
namespace Puma {
 
33966
 
 
33967
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33968
 
 
33969
#line 33970 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33970
} // closed Puma
 
33971
 
 
33972
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33973
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
33974
#include "CCExprResolveH.ah"
 
33975
#endif
 
33976
namespace Puma {
 
33977
 
 
33978
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33979
 
 
33980
#line 33981 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33981
} // closed Puma
 
33982
 
 
33983
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33984
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
33985
#include "CExprResolveH.ah"
 
33986
#endif
 
33987
namespace Puma {
 
33988
 
 
33989
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33990
class CT_Integer : public CT_Expression {
 
33991
#line 33992 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
33992
  friend class ::CCExprResolve;
 
33993
  friend class ::CExprResolve;
 
33994
  friend class ::WinIfExists;
 
33995
  friend class ::WinImportHandler;
 
33996
  friend class ::WinMacros;
 
33997
  friend class ::WinAsm;
 
33998
  friend class ::WinDeclSpecs;
 
33999
  friend class ::WinMemberExplSpec;
 
34000
  friend class ::WinTypeKeywords;
 
34001
  friend class ::WinFriend;
 
34002
  friend class ::ExtAC;
 
34003
  friend class ::ExtACBuilderCoupling;
 
34004
  friend class ::ExtACSyntaxCoupling;
 
34005
  friend class ::ExtACTree;
 
34006
  friend class ::ExtACKeywords;
 
34007
  friend class ::ExtGnu;
 
34008
  friend class ::PragmaOnceUnitState;
 
34009
  friend class ::PragmaOnce;
 
34010
  friend class ::CMatchSyntax;
 
34011
 
 
34012
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34013
 
 
34014
  CTree *_value;  // CT_Token
 
34015
 
 
34016
public:
 
34017
  /** Constructor.
 
34018
   *  \param token The token containing the integer value. */
 
34019
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
34020
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34021
  static const char *NodeId ();
 
34022
  /** Get the name of the node. Can be compared with NodeId(). */
 
34023
  const char *NodeName () const { return NodeId (); }
 
34024
  /** Get the number of sons. */
 
34025
  int Sons () const { return _value ? 1 : 0; }
 
34026
  /** Get the n-th son.
 
34027
   *  \param n The index of the son.
 
34028
   *  \return The n-th son or NULL. */
 
34029
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
34030
  /** Replace a son.
 
34031
   *  \param old_son The son to replace.
 
34032
   *  \param new_son The new son. */
 
34033
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
34034
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
34035
   private:
 
34036
  typedef CT_Integer CCExprResolveExpr;
 
34037
 
 
34038
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
34039
 public :
 
34040
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
34041
  typedef CT_Integer CExprResolveExpr;
 
34042
 
 
34043
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
34044
 public :
 
34045
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
34046
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34047
};
 
34048
 
 
34049
/** \class CT_Character CTree.h Puma/CTree.h
 
34050
 *  Tree node representing a single character constant. */
 
34051
 
 
34052
#line 34053 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34053
} // closed Puma
 
34054
class CCExprResolve;
 
34055
class CExprResolve;
 
34056
class WinIfExists;
 
34057
class WinImportHandler;
 
34058
class WinMacros;
 
34059
class WinAsm;
 
34060
class WinDeclSpecs;
 
34061
class WinMemberExplSpec;
 
34062
class WinTypeKeywords;
 
34063
class WinFriend;
 
34064
class ExtAC;
 
34065
class ExtACBuilderCoupling;
 
34066
class ExtACSyntaxCoupling;
 
34067
class ExtACTree;
 
34068
class ExtACKeywords;
 
34069
class ExtGnu;
 
34070
class PragmaOnceUnitState;
 
34071
class PragmaOnce;
 
34072
class CMatchSyntax;
 
34073
namespace Puma {
 
34074
 
 
34075
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34076
 
 
34077
#line 34078 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34078
} // closed Puma
 
34079
 
 
34080
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34081
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34082
#include "CCExprResolveH.ah"
 
34083
#endif
 
34084
namespace Puma {
 
34085
 
 
34086
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34087
 
 
34088
#line 34089 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34089
} // closed Puma
 
34090
 
 
34091
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34092
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34093
#include "CExprResolveH.ah"
 
34094
#endif
 
34095
namespace Puma {
 
34096
 
 
34097
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34098
class CT_Character : public CT_Expression {
 
34099
#line 34100 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34100
  friend class ::CCExprResolve;
 
34101
  friend class ::CExprResolve;
 
34102
  friend class ::WinIfExists;
 
34103
  friend class ::WinImportHandler;
 
34104
  friend class ::WinMacros;
 
34105
  friend class ::WinAsm;
 
34106
  friend class ::WinDeclSpecs;
 
34107
  friend class ::WinMemberExplSpec;
 
34108
  friend class ::WinTypeKeywords;
 
34109
  friend class ::WinFriend;
 
34110
  friend class ::ExtAC;
 
34111
  friend class ::ExtACBuilderCoupling;
 
34112
  friend class ::ExtACSyntaxCoupling;
 
34113
  friend class ::ExtACTree;
 
34114
  friend class ::ExtACKeywords;
 
34115
  friend class ::ExtGnu;
 
34116
  friend class ::PragmaOnceUnitState;
 
34117
  friend class ::PragmaOnce;
 
34118
  friend class ::CMatchSyntax;
 
34119
 
 
34120
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34121
 
 
34122
  CTree *_value;  // CT_Token
 
34123
 
 
34124
public:
 
34125
  /** Constructor.
 
34126
   *  \param token The token containing the character value. */
 
34127
  CT_Character (CTree *token) { AddSon (_value, token); }
 
34128
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34129
  static const char *NodeId ();
 
34130
  /** Get the name of the node. Can be compared with NodeId(). */
 
34131
  const char *NodeName () const { return NodeId (); }
 
34132
  /** Get the number of sons. */
 
34133
  int Sons () const { return 1; }
 
34134
  /** Get the n-th son.
 
34135
   *  \param n The index of the son.
 
34136
   *  \return The n-th son or NULL. */
 
34137
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
34138
  /** Replace a son.
 
34139
   *  \param old_son The son to replace.
 
34140
   *  \param new_son The new son. */
 
34141
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
34142
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
34143
   private:
 
34144
  typedef CT_Character CCExprResolveExpr;
 
34145
 
 
34146
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
34147
 public :
 
34148
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
34149
  typedef CT_Character CExprResolveExpr;
 
34150
 
 
34151
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
34152
 public :
 
34153
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
34154
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34155
};
 
34156
 
 
34157
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
34158
 *  Tree node representing a wide character constant. */
 
34159
 
 
34160
#line 34161 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34161
} // closed Puma
 
34162
class CCExprResolve;
 
34163
class CExprResolve;
 
34164
class WinIfExists;
 
34165
class WinImportHandler;
 
34166
class WinMacros;
 
34167
class WinAsm;
 
34168
class WinDeclSpecs;
 
34169
class WinMemberExplSpec;
 
34170
class WinTypeKeywords;
 
34171
class WinFriend;
 
34172
class ExtAC;
 
34173
class ExtACBuilderCoupling;
 
34174
class ExtACSyntaxCoupling;
 
34175
class ExtACTree;
 
34176
class ExtACKeywords;
 
34177
class ExtGnu;
 
34178
class PragmaOnceUnitState;
 
34179
class PragmaOnce;
 
34180
class CMatchSyntax;
 
34181
namespace Puma {
 
34182
 
 
34183
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34184
 
 
34185
#line 34186 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34186
} // closed Puma
 
34187
 
 
34188
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34189
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34190
#include "CCExprResolveH.ah"
 
34191
#endif
 
34192
namespace Puma {
 
34193
 
 
34194
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34195
 
 
34196
#line 34197 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34197
} // closed Puma
 
34198
 
 
34199
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34200
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34201
#include "CExprResolveH.ah"
 
34202
#endif
 
34203
namespace Puma {
 
34204
 
 
34205
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34206
class CT_WideCharacter : public CT_Character {
 
34207
#line 34208 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34208
  friend class ::CCExprResolve;
 
34209
  friend class ::CExprResolve;
 
34210
  friend class ::WinIfExists;
 
34211
  friend class ::WinImportHandler;
 
34212
  friend class ::WinMacros;
 
34213
  friend class ::WinAsm;
 
34214
  friend class ::WinDeclSpecs;
 
34215
  friend class ::WinMemberExplSpec;
 
34216
  friend class ::WinTypeKeywords;
 
34217
  friend class ::WinFriend;
 
34218
  friend class ::ExtAC;
 
34219
  friend class ::ExtACBuilderCoupling;
 
34220
  friend class ::ExtACSyntaxCoupling;
 
34221
  friend class ::ExtACTree;
 
34222
  friend class ::ExtACKeywords;
 
34223
  friend class ::ExtGnu;
 
34224
  friend class ::PragmaOnceUnitState;
 
34225
  friend class ::PragmaOnce;
 
34226
  friend class ::CMatchSyntax;
 
34227
 
 
34228
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34229
 
 
34230
public:
 
34231
  /** Constructor.
 
34232
   *  \param token The token containing the wide character value. */
 
34233
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
34234
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34235
  static const char *NodeId ();
 
34236
  /** Get the name of the node. Can be compared with NodeId(). */
 
34237
  const char *NodeName () const { return NodeId (); }
 
34238
   private:
 
34239
  typedef CT_WideCharacter CCExprResolveExpr;
 
34240
 
 
34241
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
34242
 public :
 
34243
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
34244
  typedef CT_WideCharacter CExprResolveExpr;
 
34245
 
 
34246
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
34247
 public :
 
34248
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
34249
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34250
};
 
34251
 
 
34252
/** \class CT_Float CTree.h Puma/CTree.h
 
34253
 *  Tree node representing a floating point constant. */
 
34254
 
 
34255
#line 34256 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34256
} // closed Puma
 
34257
class CCExprResolve;
 
34258
class CExprResolve;
 
34259
class WinIfExists;
 
34260
class WinImportHandler;
 
34261
class WinMacros;
 
34262
class WinAsm;
 
34263
class WinDeclSpecs;
 
34264
class WinMemberExplSpec;
 
34265
class WinTypeKeywords;
 
34266
class WinFriend;
 
34267
class ExtAC;
 
34268
class ExtACBuilderCoupling;
 
34269
class ExtACSyntaxCoupling;
 
34270
class ExtACTree;
 
34271
class ExtACKeywords;
 
34272
class ExtGnu;
 
34273
class PragmaOnceUnitState;
 
34274
class PragmaOnce;
 
34275
class CMatchSyntax;
 
34276
namespace Puma {
 
34277
 
 
34278
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34279
 
 
34280
#line 34281 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34281
} // closed Puma
 
34282
 
 
34283
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34284
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34285
#include "CCExprResolveH.ah"
 
34286
#endif
 
34287
namespace Puma {
 
34288
 
 
34289
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34290
 
 
34291
#line 34292 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34292
} // closed Puma
 
34293
 
 
34294
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34295
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34296
#include "CExprResolveH.ah"
 
34297
#endif
 
34298
namespace Puma {
 
34299
 
 
34300
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34301
class CT_Float : public CT_Expression {
 
34302
#line 34303 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34303
  friend class ::CCExprResolve;
 
34304
  friend class ::CExprResolve;
 
34305
  friend class ::WinIfExists;
 
34306
  friend class ::WinImportHandler;
 
34307
  friend class ::WinMacros;
 
34308
  friend class ::WinAsm;
 
34309
  friend class ::WinDeclSpecs;
 
34310
  friend class ::WinMemberExplSpec;
 
34311
  friend class ::WinTypeKeywords;
 
34312
  friend class ::WinFriend;
 
34313
  friend class ::ExtAC;
 
34314
  friend class ::ExtACBuilderCoupling;
 
34315
  friend class ::ExtACSyntaxCoupling;
 
34316
  friend class ::ExtACTree;
 
34317
  friend class ::ExtACKeywords;
 
34318
  friend class ::ExtGnu;
 
34319
  friend class ::PragmaOnceUnitState;
 
34320
  friend class ::PragmaOnce;
 
34321
  friend class ::CMatchSyntax;
 
34322
 
 
34323
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34324
 
 
34325
  CTree *_value;  // CT_Token
 
34326
 
 
34327
public:
 
34328
  /** Constructor.
 
34329
   *  \param token The token containing the floating point value. */
 
34330
  CT_Float (CTree *token) { AddSon (_value, token); }
 
34331
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34332
  static const char *NodeId ();
 
34333
  /** Get the name of the node. Can be compared with NodeId(). */
 
34334
  const char *NodeName () const { return NodeId (); }
 
34335
  /** Get the number of sons. */
 
34336
  int Sons () const { return 1; }
 
34337
  /** Get the n-th son.
 
34338
   *  \param n The index of the son.
 
34339
   *  \return The n-th son or NULL. */
 
34340
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
34341
  /** Replace a son.
 
34342
   *  \param old_son The son to replace.
 
34343
   *  \param new_son The new son. */
 
34344
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
34345
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
34346
   private:
 
34347
  typedef CT_Float CCExprResolveExpr;
 
34348
 
 
34349
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
34350
 public :
 
34351
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
34352
  typedef CT_Float CExprResolveExpr;
 
34353
 
 
34354
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
34355
 public :
 
34356
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
34357
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34358
};
 
34359
 
 
34360
/** \class CT_Bool CTree.h Puma/CTree.h
 
34361
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
 
34362
 
 
34363
#line 34364 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34364
} // closed Puma
 
34365
class CCExprResolve;
 
34366
class CExprResolve;
 
34367
class WinIfExists;
 
34368
class WinImportHandler;
 
34369
class WinMacros;
 
34370
class WinAsm;
 
34371
class WinDeclSpecs;
 
34372
class WinMemberExplSpec;
 
34373
class WinTypeKeywords;
 
34374
class WinFriend;
 
34375
class ExtAC;
 
34376
class ExtACBuilderCoupling;
 
34377
class ExtACSyntaxCoupling;
 
34378
class ExtACTree;
 
34379
class ExtACKeywords;
 
34380
class ExtGnu;
 
34381
class PragmaOnceUnitState;
 
34382
class PragmaOnce;
 
34383
class CMatchSyntax;
 
34384
namespace Puma {
 
34385
 
 
34386
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34387
 
 
34388
#line 34389 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34389
} // closed Puma
 
34390
 
 
34391
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34392
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34393
#include "CCExprResolveH.ah"
 
34394
#endif
 
34395
namespace Puma {
 
34396
 
 
34397
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34398
 
 
34399
#line 34400 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34400
} // closed Puma
 
34401
 
 
34402
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34403
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34404
#include "CExprResolveH.ah"
 
34405
#endif
 
34406
namespace Puma {
 
34407
 
 
34408
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34409
class CT_Bool : public CT_Expression {
 
34410
#line 34411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34411
  friend class ::CCExprResolve;
 
34412
  friend class ::CExprResolve;
 
34413
  friend class ::WinIfExists;
 
34414
  friend class ::WinImportHandler;
 
34415
  friend class ::WinMacros;
 
34416
  friend class ::WinAsm;
 
34417
  friend class ::WinDeclSpecs;
 
34418
  friend class ::WinMemberExplSpec;
 
34419
  friend class ::WinTypeKeywords;
 
34420
  friend class ::WinFriend;
 
34421
  friend class ::ExtAC;
 
34422
  friend class ::ExtACBuilderCoupling;
 
34423
  friend class ::ExtACSyntaxCoupling;
 
34424
  friend class ::ExtACTree;
 
34425
  friend class ::ExtACKeywords;
 
34426
  friend class ::ExtGnu;
 
34427
  friend class ::PragmaOnceUnitState;
 
34428
  friend class ::PragmaOnce;
 
34429
  friend class ::CMatchSyntax;
 
34430
 
 
34431
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34432
 
 
34433
  CTree *_value;  // CT_Token
 
34434
 
 
34435
public:
 
34436
  /** Constructor.
 
34437
   *  \param token The token containing the boolean value. */
 
34438
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
34439
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34440
  static const char *NodeId ();
 
34441
  /** Get the name of the node. Can be compared with NodeId(). */
 
34442
  const char *NodeName () const { return NodeId (); }
 
34443
  /** Get the number of sons. */
 
34444
  int Sons () const { return 1; }
 
34445
  /** Get the n-th son.
 
34446
   *  \param n The index of the son.
 
34447
   *  \return The n-th son or NULL. */
 
34448
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
34449
  /** Replace a son.
 
34450
   *  \param old_son The son to replace.
 
34451
   *  \param new_son The new son. */
 
34452
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
34453
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
34454
   private:
 
34455
  typedef CT_Bool CCExprResolveExpr;
 
34456
 
 
34457
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
34458
 public :
 
34459
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
34460
  typedef CT_Bool CExprResolveExpr;
 
34461
 
 
34462
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
34463
 public :
 
34464
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
34465
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34466
};
 
34467
 
 
34468
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
34469
 *  Tree node representing a braced expression, e.g. (a+b). */
 
34470
 
 
34471
#line 34472 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34472
} // closed Puma
 
34473
class CCExprResolve;
 
34474
class CExprResolve;
 
34475
class WinIfExists;
 
34476
class WinImportHandler;
 
34477
class WinMacros;
 
34478
class WinAsm;
 
34479
class WinDeclSpecs;
 
34480
class WinMemberExplSpec;
 
34481
class WinTypeKeywords;
 
34482
class WinFriend;
 
34483
class ExtAC;
 
34484
class ExtACBuilderCoupling;
 
34485
class ExtACSyntaxCoupling;
 
34486
class ExtACTree;
 
34487
class ExtACKeywords;
 
34488
class ExtGnu;
 
34489
class PragmaOnceUnitState;
 
34490
class PragmaOnce;
 
34491
class CMatchSyntax;
 
34492
namespace Puma {
 
34493
 
 
34494
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34495
 
 
34496
#line 34497 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34497
} // closed Puma
 
34498
 
 
34499
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34500
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34501
#include "CCExprResolveH.ah"
 
34502
#endif
 
34503
namespace Puma {
 
34504
 
 
34505
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34506
 
 
34507
#line 34508 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34508
} // closed Puma
 
34509
 
 
34510
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34511
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34512
#include "CExprResolveH.ah"
 
34513
#endif
 
34514
namespace Puma {
 
34515
 
 
34516
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34517
class CT_BracedExpr : public CT_Expression {
 
34518
#line 34519 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.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 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34540
 
 
34541
  CTree *sons[3]; // open, expr, close
 
34542
 
 
34543
public:
 
34544
  /** Constructor.
 
34545
   *  \param o The opening brace.
 
34546
   *  \param e The enclosed expression.
 
34547
   *  \param c The closing brace. */
 
34548
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
 
34549
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
 
34550
  }
 
34551
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34552
  static const char *NodeId ();
 
34553
  /** Get the name of the node. Can be compared with NodeId(). */
 
34554
  const char *NodeName () const { return NodeId (); }
 
34555
  /** Get the number of sons. */
 
34556
  int Sons () const { return 3; }
 
34557
  /** Get the n-th son.
 
34558
   *  \param n The index of the son.
 
34559
   *  \return The n-th son or NULL. */
 
34560
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
34561
  /** Get the enclosed expression. */
 
34562
  CTree *Expr () const { return sons[1]; }
 
34563
  /** Get the type of the enclosed expression. */
 
34564
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
34565
  /** Get the value of the enclosed expression. */
 
34566
  CExprValue *Value () const { return Expr ()->Value (); }
 
34567
  /** Get the semantic value object. */
 
34568
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
34569
  /** Replace a son.
 
34570
   *  \param old_son The son to replace.
 
34571
   *  \param new_son The new son. */
 
34572
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
34573
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
34574
  }
 
34575
   private:
 
34576
  typedef CT_BracedExpr CCExprResolveExpr;
 
34577
 
 
34578
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
34579
 public :
 
34580
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
34581
  typedef CT_BracedExpr CExprResolveExpr;
 
34582
 
 
34583
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
34584
 public :
 
34585
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
34586
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34587
};
 
34588
 
 
34589
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
34590
 *  Base class for all tree nodes representing a name. */
 
34591
 
 
34592
#line 34593 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34593
} // closed Puma
 
34594
class CCExprResolve;
 
34595
class CExprResolve;
 
34596
class WinIfExists;
 
34597
class WinImportHandler;
 
34598
class WinMacros;
 
34599
class WinAsm;
 
34600
class WinDeclSpecs;
 
34601
class WinMemberExplSpec;
 
34602
class WinTypeKeywords;
 
34603
class WinFriend;
 
34604
class ExtAC;
 
34605
class ExtACBuilderCoupling;
 
34606
class ExtACSyntaxCoupling;
 
34607
class ExtACTree;
 
34608
class ExtACKeywords;
 
34609
class ExtGnu;
 
34610
class PragmaOnceUnitState;
 
34611
class PragmaOnce;
 
34612
class CMatchSyntax;
 
34613
namespace Puma {
 
34614
 
 
34615
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34616
 
 
34617
#line 34618 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34618
} // closed Puma
 
34619
 
 
34620
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34621
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34622
#include "CCExprResolveH.ah"
 
34623
#endif
 
34624
namespace Puma {
 
34625
 
 
34626
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34627
 
 
34628
#line 34629 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34629
} // closed Puma
 
34630
 
 
34631
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34632
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34633
#include "CExprResolveH.ah"
 
34634
#endif
 
34635
namespace Puma {
 
34636
 
 
34637
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34638
class CT_SimpleName : public CT_List, public Printable, 
 
34639
                      public CSemValue, public CSemObject {
 
34640
#line 34641 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34641
  friend class ::CCExprResolve;
 
34642
  friend class ::CExprResolve;
 
34643
  friend class ::WinIfExists;
 
34644
  friend class ::WinImportHandler;
 
34645
  friend class ::WinMacros;
 
34646
  friend class ::WinAsm;
 
34647
  friend class ::WinDeclSpecs;
 
34648
  friend class ::WinMemberExplSpec;
 
34649
  friend class ::WinTypeKeywords;
 
34650
  friend class ::WinFriend;
 
34651
  friend class ::ExtAC;
 
34652
  friend class ::ExtACBuilderCoupling;
 
34653
  friend class ::ExtACSyntaxCoupling;
 
34654
  friend class ::ExtACTree;
 
34655
  friend class ::ExtACKeywords;
 
34656
  friend class ::ExtGnu;
 
34657
  friend class ::PragmaOnceUnitState;
 
34658
  friend class ::PragmaOnce;
 
34659
  friend class ::CMatchSyntax;
 
34660
 
 
34661
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34662
 
 
34663
protected:
 
34664
  /** Constructor.
 
34665
   *  \param size The number of sub-names (for qualified names). */
 
34666
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
34667
  /** Constructor.
 
34668
   *  \param size The number of sub-names (for qualified names). 
 
34669
   *  \param properties Additional name list properties (for root qualified names). */
 
34670
  CT_SimpleName (int size, int properties) : 
 
34671
    CT_List (size, 2, properties) {}
 
34672
  
 
34673
public:
 
34674
  /** Constructor.
 
34675
   *  \param n The sub-tree containing the name. */
 
34676
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
34677
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34678
  static const char *NodeId ();
 
34679
  /** Get the name of the node. Can be compared with NodeId(). */
 
34680
  const char *NodeName () const { return NodeId (); }
 
34681
  /** Get the string containing the name. */
 
34682
  virtual const char *Text () const 
 
34683
   { return Son (Sons ()-1)->token ()->text (); }
 
34684
  /** Print the name on the given stream. 
 
34685
   *  \param os The output stream. */
 
34686
  virtual void print (ostream &os) const { os << Text (); }
 
34687
  /** Get this. */
 
34688
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
34689
  /** Get the type of the entity represented by the name. */
 
34690
  CTypeInfo *Type () const { return type; }
 
34691
  /** Get the value of the entity represented by the name. */ 
 
34692
  CExprValue *Value () const { return value; }
 
34693
  /** Get the sematic value information object. */
 
34694
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
34695
  /** Get the sematic information object. */
 
34696
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
34697
  /** Get this. */
 
34698
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
34699
 
 
34700
public:
 
34701
  /** Own new operator reusing memory. */
 
34702
  void *operator new (size_t);
 
34703
  /** Own delete operator. */
 
34704
  void operator delete (void *);
 
34705
   private:
 
34706
  typedef CT_SimpleName CCExprResolveExpr;
 
34707
 
 
34708
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
34709
 public :
 
34710
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
34711
  typedef CT_SimpleName CExprResolveExpr;
 
34712
 
 
34713
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
34714
 public :
 
34715
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
34716
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34717
};
 
34718
 
 
34719
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
34720
 *  Base class for tree nodes representing a special name, like destructor names. */
 
34721
 
 
34722
#line 34723 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34723
} // closed Puma
 
34724
class CCExprResolve;
 
34725
class CExprResolve;
 
34726
class WinIfExists;
 
34727
class WinImportHandler;
 
34728
class WinMacros;
 
34729
class WinAsm;
 
34730
class WinDeclSpecs;
 
34731
class WinMemberExplSpec;
 
34732
class WinTypeKeywords;
 
34733
class WinFriend;
 
34734
class ExtAC;
 
34735
class ExtACBuilderCoupling;
 
34736
class ExtACSyntaxCoupling;
 
34737
class ExtACTree;
 
34738
class ExtACKeywords;
 
34739
class ExtGnu;
 
34740
class PragmaOnceUnitState;
 
34741
class PragmaOnce;
 
34742
class CMatchSyntax;
 
34743
namespace Puma {
 
34744
 
 
34745
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34746
 
 
34747
#line 34748 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34748
} // closed Puma
 
34749
 
 
34750
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34751
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34752
#include "CCExprResolveH.ah"
 
34753
#endif
 
34754
namespace Puma {
 
34755
 
 
34756
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34757
 
 
34758
#line 34759 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34759
} // closed Puma
 
34760
 
 
34761
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34762
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34763
#include "CExprResolveH.ah"
 
34764
#endif
 
34765
namespace Puma {
 
34766
 
 
34767
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34768
class CT_SpecialName : public CT_SimpleName {
 
34769
#line 34770 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34770
  friend class ::CCExprResolve;
 
34771
  friend class ::CExprResolve;
 
34772
  friend class ::WinIfExists;
 
34773
  friend class ::WinImportHandler;
 
34774
  friend class ::WinMacros;
 
34775
  friend class ::WinAsm;
 
34776
  friend class ::WinDeclSpecs;
 
34777
  friend class ::WinMemberExplSpec;
 
34778
  friend class ::WinTypeKeywords;
 
34779
  friend class ::WinFriend;
 
34780
  friend class ::ExtAC;
 
34781
  friend class ::ExtACBuilderCoupling;
 
34782
  friend class ::ExtACSyntaxCoupling;
 
34783
  friend class ::ExtACTree;
 
34784
  friend class ::ExtACKeywords;
 
34785
  friend class ::ExtGnu;
 
34786
  friend class ::PragmaOnceUnitState;
 
34787
  friend class ::PragmaOnce;
 
34788
  friend class ::CMatchSyntax;
 
34789
 
 
34790
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34791
 
 
34792
  char *_name;
 
34793
  
 
34794
protected:
 
34795
  /** Constructor.
 
34796
   *  \param size The number of sub-names (for qualified names). */
 
34797
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
 
34798
  
 
34799
public:
 
34800
  /** Destructor. Deletes the name string. */
 
34801
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
34802
  /** Get the string containing the name. */
 
34803
  const char *Text () const { return _name; }
 
34804
  /** Set the name. The name is copied.
 
34805
   *  \param n The name. */
 
34806
  void Name (const char *n) { 
 
34807
    if (n) { 
 
34808
      _name = new char[strlen(n) + 1];
 
34809
      strcpy (_name,n);
 
34810
    }
 
34811
  }
 
34812
 
 
34813
public:
 
34814
  /** Own new operator reusing memory. */
 
34815
  void *operator new (size_t);
 
34816
  /** Own delete operator. */
 
34817
  void operator delete (void *);
 
34818
   private:
 
34819
  typedef CT_SpecialName CCExprResolveExpr;
 
34820
 
 
34821
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
34822
 public :
 
34823
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
34824
  typedef CT_SpecialName CExprResolveExpr;
 
34825
 
 
34826
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
34827
 public :
 
34828
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
34829
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34830
};
 
34831
 
 
34832
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
34833
 *  Tree node representing a private name. Private names 
 
34834
 *  are generated names for abstract declarators etc. */
 
34835
 
 
34836
#line 34837 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34837
} // closed Puma
 
34838
class CCExprResolve;
 
34839
class CExprResolve;
 
34840
class WinIfExists;
 
34841
class WinImportHandler;
 
34842
class WinMacros;
 
34843
class WinAsm;
 
34844
class WinDeclSpecs;
 
34845
class WinMemberExplSpec;
 
34846
class WinTypeKeywords;
 
34847
class WinFriend;
 
34848
class ExtAC;
 
34849
class ExtACBuilderCoupling;
 
34850
class ExtACSyntaxCoupling;
 
34851
class ExtACTree;
 
34852
class ExtACKeywords;
 
34853
class ExtGnu;
 
34854
class PragmaOnceUnitState;
 
34855
class PragmaOnce;
 
34856
class CMatchSyntax;
 
34857
namespace Puma {
 
34858
 
 
34859
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34860
 
 
34861
#line 34862 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34862
} // closed Puma
 
34863
 
 
34864
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34865
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34866
#include "CCExprResolveH.ah"
 
34867
#endif
 
34868
namespace Puma {
 
34869
 
 
34870
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34871
 
 
34872
#line 34873 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34873
} // closed Puma
 
34874
 
 
34875
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34876
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34877
#include "CExprResolveH.ah"
 
34878
#endif
 
34879
namespace Puma {
 
34880
 
 
34881
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34882
class CT_PrivateName : public CT_SpecialName {
 
34883
#line 34884 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34884
  friend class ::CCExprResolve;
 
34885
  friend class ::CExprResolve;
 
34886
  friend class ::WinIfExists;
 
34887
  friend class ::WinImportHandler;
 
34888
  friend class ::WinMacros;
 
34889
  friend class ::WinAsm;
 
34890
  friend class ::WinDeclSpecs;
 
34891
  friend class ::WinMemberExplSpec;
 
34892
  friend class ::WinTypeKeywords;
 
34893
  friend class ::WinFriend;
 
34894
  friend class ::ExtAC;
 
34895
  friend class ::ExtACBuilderCoupling;
 
34896
  friend class ::ExtACSyntaxCoupling;
 
34897
  friend class ::ExtACTree;
 
34898
  friend class ::ExtACKeywords;
 
34899
  friend class ::ExtGnu;
 
34900
  friend class ::PragmaOnceUnitState;
 
34901
  friend class ::PragmaOnce;
 
34902
  friend class ::CMatchSyntax;
 
34903
 
 
34904
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34905
 
 
34906
public:
 
34907
  /** Constructor.
 
34908
   *  \param n The private (generated) name. */
 
34909
  CT_PrivateName (const char *n) { Name (n); }
 
34910
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34911
  static const char *NodeId ();
 
34912
  /** Get the name of the node. Can be compared with NodeId(). */
 
34913
  const char *NodeName () const { return NodeId (); }
 
34914
  /** Get the number of sons. */
 
34915
  int Sons () const { return 0; }
 
34916
  /** Get the n-th son.
 
34917
   *  \param n The index of the son.
 
34918
   *  \return The n-th son or NULL. */
 
34919
  CTree *Son (int n) const { return (CTree*)0; }
 
34920
 
 
34921
public:
 
34922
  /** Own new operator reusing memory. */
 
34923
  void *operator new (size_t);
 
34924
  /** Own delete operator. */
 
34925
  void operator delete (void *);
 
34926
   private:
 
34927
  typedef CT_PrivateName CCExprResolveExpr;
 
34928
 
 
34929
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
34930
 public :
 
34931
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
34932
  typedef CT_PrivateName CExprResolveExpr;
 
34933
 
 
34934
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
34935
 public :
 
34936
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
34937
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34938
};
 
34939
 
 
34940
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
34941
 *  Tree node representing a destructor name. */
 
34942
 
 
34943
#line 34944 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34944
} // closed Puma
 
34945
class CCExprResolve;
 
34946
class CExprResolve;
 
34947
class WinIfExists;
 
34948
class WinImportHandler;
 
34949
class WinMacros;
 
34950
class WinAsm;
 
34951
class WinDeclSpecs;
 
34952
class WinMemberExplSpec;
 
34953
class WinTypeKeywords;
 
34954
class WinFriend;
 
34955
class ExtAC;
 
34956
class ExtACBuilderCoupling;
 
34957
class ExtACSyntaxCoupling;
 
34958
class ExtACTree;
 
34959
class ExtACKeywords;
 
34960
class ExtGnu;
 
34961
class PragmaOnceUnitState;
 
34962
class PragmaOnce;
 
34963
class CMatchSyntax;
 
34964
namespace Puma {
 
34965
 
 
34966
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34967
 
 
34968
#line 34969 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34969
} // closed Puma
 
34970
 
 
34971
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34972
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34973
#include "CCExprResolveH.ah"
 
34974
#endif
 
34975
namespace Puma {
 
34976
 
 
34977
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34978
 
 
34979
#line 34980 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34980
} // closed Puma
 
34981
 
 
34982
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34983
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34984
#include "CExprResolveH.ah"
 
34985
#endif
 
34986
namespace Puma {
 
34987
 
 
34988
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34989
class CT_DestructorName : public CT_SpecialName {
 
34990
#line 34991 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
34991
  friend class ::CCExprResolve;
 
34992
  friend class ::CExprResolve;
 
34993
  friend class ::WinIfExists;
 
34994
  friend class ::WinImportHandler;
 
34995
  friend class ::WinMacros;
 
34996
  friend class ::WinAsm;
 
34997
  friend class ::WinDeclSpecs;
 
34998
  friend class ::WinMemberExplSpec;
 
34999
  friend class ::WinTypeKeywords;
 
35000
  friend class ::WinFriend;
 
35001
  friend class ::ExtAC;
 
35002
  friend class ::ExtACBuilderCoupling;
 
35003
  friend class ::ExtACSyntaxCoupling;
 
35004
  friend class ::ExtACTree;
 
35005
  friend class ::ExtACKeywords;
 
35006
  friend class ::ExtGnu;
 
35007
  friend class ::PragmaOnceUnitState;
 
35008
  friend class ::PragmaOnce;
 
35009
  friend class ::CMatchSyntax;
 
35010
 
 
35011
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35012
 
 
35013
public:
 
35014
  /** Constructor.
 
35015
   *  \param t The tilde operator.
 
35016
   *  \param n The class name. */
 
35017
  CT_DestructorName (CTree *t, CTree *n);
 
35018
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35019
  static const char *NodeId ();
 
35020
  /** Get the name of the node. Can be compared with NodeId(). */
 
35021
  const char *NodeName () const { return NodeId (); }
 
35022
 
 
35023
public:
 
35024
  /** Own new operator reusing memory. */
 
35025
  void *operator new (size_t);
 
35026
  /** Own delete operator. */
 
35027
  void operator delete (void *);
 
35028
   private:
 
35029
  typedef CT_DestructorName CCExprResolveExpr;
 
35030
 
 
35031
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
35032
 public :
 
35033
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
35034
  typedef CT_DestructorName CExprResolveExpr;
 
35035
 
 
35036
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
35037
 public :
 
35038
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
35039
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35040
};
 
35041
 
 
35042
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
35043
 *  Tree node representing a template name. */
 
35044
 
 
35045
#line 35046 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35046
} // closed Puma
 
35047
class CCExprResolve;
 
35048
class CExprResolve;
 
35049
class WinIfExists;
 
35050
class WinImportHandler;
 
35051
class WinMacros;
 
35052
class WinAsm;
 
35053
class WinDeclSpecs;
 
35054
class WinMemberExplSpec;
 
35055
class WinTypeKeywords;
 
35056
class WinFriend;
 
35057
class ExtAC;
 
35058
class ExtACBuilderCoupling;
 
35059
class ExtACSyntaxCoupling;
 
35060
class ExtACTree;
 
35061
class ExtACKeywords;
 
35062
class ExtGnu;
 
35063
class PragmaOnceUnitState;
 
35064
class PragmaOnce;
 
35065
class CMatchSyntax;
 
35066
namespace Puma {
 
35067
 
 
35068
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35069
 
 
35070
#line 35071 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35071
} // closed Puma
 
35072
 
 
35073
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35074
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35075
#include "CCExprResolveH.ah"
 
35076
#endif
 
35077
namespace Puma {
 
35078
 
 
35079
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35080
 
 
35081
#line 35082 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35082
} // closed Puma
 
35083
 
 
35084
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35085
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35086
#include "CExprResolveH.ah"
 
35087
#endif
 
35088
namespace Puma {
 
35089
 
 
35090
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35091
class CT_TemplateName : public CT_SpecialName {
 
35092
#line 35093 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35093
  friend class ::CCExprResolve;
 
35094
  friend class ::CExprResolve;
 
35095
  friend class ::WinIfExists;
 
35096
  friend class ::WinImportHandler;
 
35097
  friend class ::WinMacros;
 
35098
  friend class ::WinAsm;
 
35099
  friend class ::WinDeclSpecs;
 
35100
  friend class ::WinMemberExplSpec;
 
35101
  friend class ::WinTypeKeywords;
 
35102
  friend class ::WinFriend;
 
35103
  friend class ::ExtAC;
 
35104
  friend class ::ExtACBuilderCoupling;
 
35105
  friend class ::ExtACSyntaxCoupling;
 
35106
  friend class ::ExtACTree;
 
35107
  friend class ::ExtACKeywords;
 
35108
  friend class ::ExtGnu;
 
35109
  friend class ::PragmaOnceUnitState;
 
35110
  friend class ::PragmaOnce;
 
35111
  friend class ::CMatchSyntax;
 
35112
 
 
35113
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35114
 
 
35115
public:
 
35116
  /** Constructor.
 
35117
   *  \param n The template class or function name.
 
35118
   *  \param a The template argument list. */
 
35119
  CT_TemplateName (CTree *n, CTree *a) 
 
35120
   { AddSon (n); AddSon (a); }
 
35121
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35122
  static const char *NodeId ();
 
35123
  /** Get the name of the node. Can be compared with NodeId(). */
 
35124
  const char *NodeName () const { return NodeId (); }
 
35125
  /** Get the template argument list. */
 
35126
  CT_TemplateArgList *Arguments () const 
 
35127
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
35128
  /** Get the template class or function name. */
 
35129
  CT_SimpleName *TemplateName () const 
 
35130
   { return (CT_SimpleName*)Son (Sons ()-2); }
 
35131
  // may change in the future
 
35132
  const char *Text () const { return TemplateName ()->Text (); }
 
35133
 
 
35134
public:
 
35135
  /** Own new operator reusing memory. */
 
35136
  void *operator new (size_t);
 
35137
  /** Own delete operator. */
 
35138
  void operator delete (void *);
 
35139
   private:
 
35140
  typedef CT_TemplateName CCExprResolveExpr;
 
35141
 
 
35142
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
35143
 public :
 
35144
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
35145
  typedef CT_TemplateName CExprResolveExpr;
 
35146
 
 
35147
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
35148
 public :
 
35149
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
35150
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35151
};
 
35152
 
 
35153
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
35154
 *  Tree node representing the name of an overloaded operator. */
 
35155
 
 
35156
#line 35157 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35157
} // closed Puma
 
35158
class CCExprResolve;
 
35159
class CExprResolve;
 
35160
class WinIfExists;
 
35161
class WinImportHandler;
 
35162
class WinMacros;
 
35163
class WinAsm;
 
35164
class WinDeclSpecs;
 
35165
class WinMemberExplSpec;
 
35166
class WinTypeKeywords;
 
35167
class WinFriend;
 
35168
class ExtAC;
 
35169
class ExtACBuilderCoupling;
 
35170
class ExtACSyntaxCoupling;
 
35171
class ExtACTree;
 
35172
class ExtACKeywords;
 
35173
class ExtGnu;
 
35174
class PragmaOnceUnitState;
 
35175
class PragmaOnce;
 
35176
class CMatchSyntax;
 
35177
namespace Puma {
 
35178
 
 
35179
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35180
 
 
35181
#line 35182 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35182
} // closed Puma
 
35183
 
 
35184
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35185
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35186
#include "CCExprResolveH.ah"
 
35187
#endif
 
35188
namespace Puma {
 
35189
 
 
35190
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35191
 
 
35192
#line 35193 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35193
} // closed Puma
 
35194
 
 
35195
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35196
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35197
#include "CExprResolveH.ah"
 
35198
#endif
 
35199
namespace Puma {
 
35200
 
 
35201
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35202
class CT_OperatorName : public CT_SpecialName {
 
35203
#line 35204 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35204
  friend class ::CCExprResolve;
 
35205
  friend class ::CExprResolve;
 
35206
  friend class ::WinIfExists;
 
35207
  friend class ::WinImportHandler;
 
35208
  friend class ::WinMacros;
 
35209
  friend class ::WinAsm;
 
35210
  friend class ::WinDeclSpecs;
 
35211
  friend class ::WinMemberExplSpec;
 
35212
  friend class ::WinTypeKeywords;
 
35213
  friend class ::WinFriend;
 
35214
  friend class ::ExtAC;
 
35215
  friend class ::ExtACBuilderCoupling;
 
35216
  friend class ::ExtACSyntaxCoupling;
 
35217
  friend class ::ExtACTree;
 
35218
  friend class ::ExtACKeywords;
 
35219
  friend class ::ExtGnu;
 
35220
  friend class ::PragmaOnceUnitState;
 
35221
  friend class ::PragmaOnce;
 
35222
  friend class ::CMatchSyntax;
 
35223
 
 
35224
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35225
 
 
35226
  int _oper;
 
35227
 
 
35228
public:
 
35229
  /** Complex operator types. */
 
35230
  enum { 
 
35231
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
35232
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
35233
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
35234
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
 
35235
  };
 
35236
 
 
35237
public:
 
35238
  /** Constructor.
 
35239
   *  \param op The token containing the operator. */
 
35240
  CT_OperatorName (CTree *op);
 
35241
  /** Constructor.
 
35242
   *  \param f The operator function keyword 'operator'.
 
35243
   *  \param op The token containing the operator. 
 
35244
   *  \param o The token of '[' or '('.
 
35245
   *  \param c The token of ']' or ')'. */
 
35246
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
35247
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35248
  static const char *NodeId ();
 
35249
  /** Get the name of the node. Can be compared with NodeId(). */
 
35250
  const char *NodeName () const { return NodeId (); }
 
35251
  /** Get the operator type (either the token type or one of 
 
35252
   *  the complex operator types). */
 
35253
  int Operator () const { return _oper; }
 
35254
 
 
35255
public:
 
35256
  /** Own new operator reusing memory. */
 
35257
  void *operator new (size_t);
 
35258
  /** Own delete operator. */
 
35259
  void operator delete (void *);
 
35260
   private:
 
35261
  typedef CT_OperatorName CCExprResolveExpr;
 
35262
 
 
35263
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
35264
 public :
 
35265
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
35266
  typedef CT_OperatorName CExprResolveExpr;
 
35267
 
 
35268
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
35269
 public :
 
35270
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
35271
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35272
};
 
35273
 
 
35274
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
35275
 *  Tree node representing the name of a conversion function. */
 
35276
 
 
35277
#line 35278 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35278
} // closed Puma
 
35279
class CCExprResolve;
 
35280
class CExprResolve;
 
35281
class WinIfExists;
 
35282
class WinImportHandler;
 
35283
class WinMacros;
 
35284
class WinAsm;
 
35285
class WinDeclSpecs;
 
35286
class WinMemberExplSpec;
 
35287
class WinTypeKeywords;
 
35288
class WinFriend;
 
35289
class ExtAC;
 
35290
class ExtACBuilderCoupling;
 
35291
class ExtACSyntaxCoupling;
 
35292
class ExtACTree;
 
35293
class ExtACKeywords;
 
35294
class ExtGnu;
 
35295
class PragmaOnceUnitState;
 
35296
class PragmaOnce;
 
35297
class CMatchSyntax;
 
35298
namespace Puma {
 
35299
 
 
35300
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35301
 
 
35302
#line 35303 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35303
} // closed Puma
 
35304
 
 
35305
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35306
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35307
#include "CCExprResolveH.ah"
 
35308
#endif
 
35309
namespace Puma {
 
35310
 
 
35311
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35312
 
 
35313
#line 35314 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35314
} // closed Puma
 
35315
 
 
35316
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35317
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35318
#include "CExprResolveH.ah"
 
35319
#endif
 
35320
namespace Puma {
 
35321
 
 
35322
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35323
class CT_ConversionName : public CT_SpecialName {
 
35324
#line 35325 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35325
  friend class ::CCExprResolve;
 
35326
  friend class ::CExprResolve;
 
35327
  friend class ::WinIfExists;
 
35328
  friend class ::WinImportHandler;
 
35329
  friend class ::WinMacros;
 
35330
  friend class ::WinAsm;
 
35331
  friend class ::WinDeclSpecs;
 
35332
  friend class ::WinMemberExplSpec;
 
35333
  friend class ::WinTypeKeywords;
 
35334
  friend class ::WinFriend;
 
35335
  friend class ::ExtAC;
 
35336
  friend class ::ExtACBuilderCoupling;
 
35337
  friend class ::ExtACSyntaxCoupling;
 
35338
  friend class ::ExtACTree;
 
35339
  friend class ::ExtACKeywords;
 
35340
  friend class ::ExtGnu;
 
35341
  friend class ::PragmaOnceUnitState;
 
35342
  friend class ::PragmaOnce;
 
35343
  friend class ::CMatchSyntax;
 
35344
 
 
35345
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35346
 
 
35347
public:
 
35348
  /** Constructor.
 
35349
   *  \param f The operator function keyword 'operator'.
 
35350
   *  \param t The sub-tree containing the conversion type. */
 
35351
  CT_ConversionName (CTree *f, CTree *t);
 
35352
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35353
  static const char *NodeId ();
 
35354
  /** Get the name of the node. Can be compared with NodeId(). */
 
35355
  const char *NodeName () const { return NodeId (); }
 
35356
  /** Get the conversion type. */
 
35357
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
 
35358
 
 
35359
public:
 
35360
  /** Own new operator reusing memory. */
 
35361
  void *operator new (size_t);
 
35362
  /** Own delete operator. */
 
35363
  void operator delete (void *);
 
35364
   private:
 
35365
  typedef CT_ConversionName CCExprResolveExpr;
 
35366
 
 
35367
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
35368
 public :
 
35369
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
35370
  typedef CT_ConversionName CExprResolveExpr;
 
35371
 
 
35372
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
35373
 public :
 
35374
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
35375
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35376
};
 
35377
 
 
35378
/** \class CT_QualName CTree.h Puma/CTree.h
 
35379
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
 
35380
 
 
35381
#line 35382 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35382
} // closed Puma
 
35383
class CCExprResolve;
 
35384
class CExprResolve;
 
35385
class WinIfExists;
 
35386
class WinImportHandler;
 
35387
class WinMacros;
 
35388
class WinAsm;
 
35389
class WinDeclSpecs;
 
35390
class WinMemberExplSpec;
 
35391
class WinTypeKeywords;
 
35392
class WinFriend;
 
35393
class ExtAC;
 
35394
class ExtACBuilderCoupling;
 
35395
class ExtACSyntaxCoupling;
 
35396
class ExtACTree;
 
35397
class ExtACKeywords;
 
35398
class ExtGnu;
 
35399
class PragmaOnceUnitState;
 
35400
class PragmaOnce;
 
35401
class CMatchSyntax;
 
35402
namespace Puma {
 
35403
 
 
35404
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35405
 
 
35406
#line 35407 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35407
} // closed Puma
 
35408
 
 
35409
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35410
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35411
#include "CCExprResolveH.ah"
 
35412
#endif
 
35413
namespace Puma {
 
35414
 
 
35415
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35416
 
 
35417
#line 35418 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35418
} // closed Puma
 
35419
 
 
35420
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35421
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35422
#include "CExprResolveH.ah"
 
35423
#endif
 
35424
namespace Puma {
 
35425
 
 
35426
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35427
class CT_QualName : public CT_SimpleName {
 
35428
#line 35429 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35429
  friend class ::CCExprResolve;
 
35430
  friend class ::CExprResolve;
 
35431
  friend class ::WinIfExists;
 
35432
  friend class ::WinImportHandler;
 
35433
  friend class ::WinMacros;
 
35434
  friend class ::WinAsm;
 
35435
  friend class ::WinDeclSpecs;
 
35436
  friend class ::WinMemberExplSpec;
 
35437
  friend class ::WinTypeKeywords;
 
35438
  friend class ::WinFriend;
 
35439
  friend class ::ExtAC;
 
35440
  friend class ::ExtACBuilderCoupling;
 
35441
  friend class ::ExtACSyntaxCoupling;
 
35442
  friend class ::ExtACTree;
 
35443
  friend class ::ExtACKeywords;
 
35444
  friend class ::ExtGnu;
 
35445
  friend class ::PragmaOnceUnitState;
 
35446
  friend class ::PragmaOnce;
 
35447
  friend class ::CMatchSyntax;
 
35448
 
 
35449
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35450
 
 
35451
public:
 
35452
  /** Constructor.
 
35453
   *  \param size The initial number sub-names plus separators. */
 
35454
  CT_QualName (int size = 3) : 
 
35455
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
35456
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35457
  static const char *NodeId ();
 
35458
  /** Get the name of the node. Can be compared with NodeId(). */
 
35459
  const char *NodeName () const { return NodeId (); }
 
35460
  /** Print the qualified name on the given stream. 
 
35461
   *  \param os The output stream. */
 
35462
  void print (ostream &os) const;
 
35463
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
 
35464
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
35465
  /** Get the string containing the last name of the qualified name. */
 
35466
  const char *Text () const { return Name ()->Text (); }
 
35467
  /** Get the type of the last name. */
 
35468
  CTypeInfo *Type () const { return Name ()->Type (); }
 
35469
  /** Get the value of the last name. */
 
35470
  CExprValue *Value () const { return Name ()->Value (); }
 
35471
  /** Get the semantic value object of the last name. */
 
35472
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
35473
  /** Get the semantic information object of the last name. */
 
35474
  CSemObject *SemObject () const { return Name ()->SemObject (); }
 
35475
 
 
35476
public:
 
35477
  /** Own new operator reusing memory. */
 
35478
  void *operator new (size_t);
 
35479
  /** Own delete operator. */
 
35480
  void operator delete (void *);
 
35481
   private:
 
35482
  typedef CT_QualName CCExprResolveExpr;
 
35483
 
 
35484
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
35485
 public :
 
35486
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
35487
  typedef CT_QualName CExprResolveExpr;
 
35488
 
 
35489
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
35490
 public :
 
35491
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
35492
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35493
};
 
35494
 
 
35495
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
35496
 *  Tree node representing a qualified name with introducing name separator,
 
35497
 *  e.g. ::X::Y::Z. */
 
35498
 
 
35499
#line 35500 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35500
} // closed Puma
 
35501
class CCExprResolve;
 
35502
class CExprResolve;
 
35503
class WinIfExists;
 
35504
class WinImportHandler;
 
35505
class WinMacros;
 
35506
class WinAsm;
 
35507
class WinDeclSpecs;
 
35508
class WinMemberExplSpec;
 
35509
class WinTypeKeywords;
 
35510
class WinFriend;
 
35511
class ExtAC;
 
35512
class ExtACBuilderCoupling;
 
35513
class ExtACSyntaxCoupling;
 
35514
class ExtACTree;
 
35515
class ExtACKeywords;
 
35516
class ExtGnu;
 
35517
class PragmaOnceUnitState;
 
35518
class PragmaOnce;
 
35519
class CMatchSyntax;
 
35520
namespace Puma {
 
35521
 
 
35522
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35523
 
 
35524
#line 35525 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35525
} // closed Puma
 
35526
 
 
35527
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35528
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35529
#include "CCExprResolveH.ah"
 
35530
#endif
 
35531
namespace Puma {
 
35532
 
 
35533
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35534
 
 
35535
#line 35536 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35536
} // closed Puma
 
35537
 
 
35538
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35539
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35540
#include "CExprResolveH.ah"
 
35541
#endif
 
35542
namespace Puma {
 
35543
 
 
35544
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35545
class CT_RootQualName : public CT_QualName {
 
35546
#line 35547 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35547
  friend class ::CCExprResolve;
 
35548
  friend class ::CExprResolve;
 
35549
  friend class ::WinIfExists;
 
35550
  friend class ::WinImportHandler;
 
35551
  friend class ::WinMacros;
 
35552
  friend class ::WinAsm;
 
35553
  friend class ::WinDeclSpecs;
 
35554
  friend class ::WinMemberExplSpec;
 
35555
  friend class ::WinTypeKeywords;
 
35556
  friend class ::WinFriend;
 
35557
  friend class ::ExtAC;
 
35558
  friend class ::ExtACBuilderCoupling;
 
35559
  friend class ::ExtACSyntaxCoupling;
 
35560
  friend class ::ExtACTree;
 
35561
  friend class ::ExtACKeywords;
 
35562
  friend class ::ExtGnu;
 
35563
  friend class ::PragmaOnceUnitState;
 
35564
  friend class ::PragmaOnce;
 
35565
  friend class ::CMatchSyntax;
 
35566
 
 
35567
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35568
 
 
35569
public:
 
35570
  /** Constructor.
 
35571
   *  \param size Initial number of sub-name plus separator. */
 
35572
  CT_RootQualName (int size = 2) : 
 
35573
    CT_QualName (size) { AddProperties (INTRO); }
 
35574
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35575
  static const char *NodeId ();
 
35576
  /** Get the name of the node. Can be compared with NodeId(). */
 
35577
  const char *NodeName () const { return NodeId (); }
 
35578
 
 
35579
public:
 
35580
  /** Own new operator reusing memory. */
 
35581
  void *operator new (size_t);
 
35582
  /** Own delete operator. */
 
35583
  void operator delete (void *);
 
35584
   private:
 
35585
  typedef CT_RootQualName CCExprResolveExpr;
 
35586
 
 
35587
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
35588
 public :
 
35589
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
35590
  typedef CT_RootQualName CExprResolveExpr;
 
35591
 
 
35592
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
35593
 public :
 
35594
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
35595
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35596
};
 
35597
 
 
35598
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
35599
 *  Tree node representing a binary expression, e.g. a+b. */
 
35600
 
 
35601
#line 35602 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35602
} // closed Puma
 
35603
class CCExprResolve;
 
35604
class CExprResolve;
 
35605
class WinIfExists;
 
35606
class WinImportHandler;
 
35607
class WinMacros;
 
35608
class WinAsm;
 
35609
class WinDeclSpecs;
 
35610
class WinMemberExplSpec;
 
35611
class WinTypeKeywords;
 
35612
class WinFriend;
 
35613
class ExtAC;
 
35614
class ExtACBuilderCoupling;
 
35615
class ExtACSyntaxCoupling;
 
35616
class ExtACTree;
 
35617
class ExtACKeywords;
 
35618
class ExtGnu;
 
35619
class PragmaOnceUnitState;
 
35620
class PragmaOnce;
 
35621
class CMatchSyntax;
 
35622
namespace Puma {
 
35623
 
 
35624
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35625
 
 
35626
#line 35627 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35627
} // closed Puma
 
35628
 
 
35629
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35630
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35631
#include "CCExprResolveH.ah"
 
35632
#endif
 
35633
namespace Puma {
 
35634
 
 
35635
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35636
 
 
35637
#line 35638 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35638
} // closed Puma
 
35639
 
 
35640
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35641
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35642
#include "CExprResolveH.ah"
 
35643
#endif
 
35644
namespace Puma {
 
35645
 
 
35646
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35647
class CT_BinaryExpr : public CT_Call {
 
35648
#line 35649 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35649
  friend class ::CCExprResolve;
 
35650
  friend class ::CExprResolve;
 
35651
  friend class ::WinIfExists;
 
35652
  friend class ::WinImportHandler;
 
35653
  friend class ::WinMacros;
 
35654
  friend class ::WinAsm;
 
35655
  friend class ::WinDeclSpecs;
 
35656
  friend class ::WinMemberExplSpec;
 
35657
  friend class ::WinTypeKeywords;
 
35658
  friend class ::WinFriend;
 
35659
  friend class ::ExtAC;
 
35660
  friend class ::ExtACBuilderCoupling;
 
35661
  friend class ::ExtACSyntaxCoupling;
 
35662
  friend class ::ExtACTree;
 
35663
  friend class ::ExtACKeywords;
 
35664
  friend class ::ExtGnu;
 
35665
  friend class ::PragmaOnceUnitState;
 
35666
  friend class ::PragmaOnce;
 
35667
  friend class ::CMatchSyntax;
 
35668
 
 
35669
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35670
 
 
35671
  CTree *sons[3]; // expr, oper, expr
 
35672
 
 
35673
public:
 
35674
  /** Constructor. 
 
35675
   *  \param l Left hand side of the expression. 
 
35676
   *  \param o The operator token. 
 
35677
   *  \param r Right hand side of the expression. */
 
35678
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
 
35679
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
 
35680
  }
 
35681
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35682
  static const char *NodeId ();
 
35683
  /** Get the name of the node. Can be compared with NodeId(). */
 
35684
  const char *NodeName () const { return NodeId (); }
 
35685
  /** Get the number of sons. */
 
35686
  int Sons () const { return 3; }
 
35687
  /** Get the n-th son.
 
35688
   *  \param n The index of the son.
 
35689
   *  \return The n-th son or NULL. */
 
35690
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
35691
  /** Replace a son.
 
35692
   *  \param old_son The son to replace.
 
35693
   *  \param new_son The new son. */
 
35694
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
35695
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
35696
  }
 
35697
   private:
 
35698
  typedef CT_BinaryExpr CCExprResolveExpr;
 
35699
 
 
35700
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
35701
 public :
 
35702
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
35703
  typedef CT_BinaryExpr CExprResolveExpr;
 
35704
 
 
35705
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
35706
 public :
 
35707
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
35708
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35709
};
 
35710
 
 
35711
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
35712
 *  Tree node representing a member pointer expression, e.g. a->b. */
 
35713
 
 
35714
#line 35715 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35715
} // closed Puma
 
35716
class CCExprResolve;
 
35717
class CExprResolve;
 
35718
class WinIfExists;
 
35719
class WinImportHandler;
 
35720
class WinMacros;
 
35721
class WinAsm;
 
35722
class WinDeclSpecs;
 
35723
class WinMemberExplSpec;
 
35724
class WinTypeKeywords;
 
35725
class WinFriend;
 
35726
class ExtAC;
 
35727
class ExtACBuilderCoupling;
 
35728
class ExtACSyntaxCoupling;
 
35729
class ExtACTree;
 
35730
class ExtACKeywords;
 
35731
class ExtGnu;
 
35732
class PragmaOnceUnitState;
 
35733
class PragmaOnce;
 
35734
class CMatchSyntax;
 
35735
namespace Puma {
 
35736
 
 
35737
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35738
 
 
35739
#line 35740 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35740
} // closed Puma
 
35741
 
 
35742
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35743
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35744
#include "CCExprResolveH.ah"
 
35745
#endif
 
35746
namespace Puma {
 
35747
 
 
35748
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35749
 
 
35750
#line 35751 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35751
} // closed Puma
 
35752
 
 
35753
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35754
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35755
#include "CExprResolveH.ah"
 
35756
#endif
 
35757
namespace Puma {
 
35758
 
 
35759
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35760
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
35761
#line 35762 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35762
  friend class ::CCExprResolve;
 
35763
  friend class ::CExprResolve;
 
35764
  friend class ::WinIfExists;
 
35765
  friend class ::WinImportHandler;
 
35766
  friend class ::WinMacros;
 
35767
  friend class ::WinAsm;
 
35768
  friend class ::WinDeclSpecs;
 
35769
  friend class ::WinMemberExplSpec;
 
35770
  friend class ::WinTypeKeywords;
 
35771
  friend class ::WinFriend;
 
35772
  friend class ::ExtAC;
 
35773
  friend class ::ExtACBuilderCoupling;
 
35774
  friend class ::ExtACSyntaxCoupling;
 
35775
  friend class ::ExtACTree;
 
35776
  friend class ::ExtACKeywords;
 
35777
  friend class ::ExtGnu;
 
35778
  friend class ::PragmaOnceUnitState;
 
35779
  friend class ::PragmaOnce;
 
35780
  friend class ::CMatchSyntax;
 
35781
 
 
35782
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35783
 
 
35784
  CTree *sons[3]; // expr, oper, expr
 
35785
  
 
35786
public:
 
35787
  /** Constructor.
 
35788
   *  \param e Expression on which to call the member.
 
35789
   *  \param o The arrow operator token.
 
35790
   *  \param i The member name. */
 
35791
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
35792
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
35793
  }
 
35794
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35795
  static const char *NodeId ();
 
35796
  /** Get the name of the node. Can be compared with NodeId(). */
 
35797
  const char *NodeName () const { return NodeId (); }
 
35798
  /** Get the number of sons. */
 
35799
  int Sons () const { return 3; }
 
35800
  /** Get the n-th son.
 
35801
   *  \param n The index of the son.
 
35802
   *  \return The n-th son or NULL. */
 
35803
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
35804
  /** Replace a son.
 
35805
   *  \param old_son The son to replace.
 
35806
   *  \param new_son The new son. */
 
35807
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
35808
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
35809
  }
 
35810
   private:
 
35811
  typedef CT_MembPtrExpr CCExprResolveExpr;
 
35812
 
 
35813
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
35814
 public :
 
35815
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
35816
  typedef CT_MembPtrExpr CExprResolveExpr;
 
35817
 
 
35818
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
35819
 public :
 
35820
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
35821
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35822
};
 
35823
 
 
35824
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
35825
 *  Tree node representing a member reference expression, e.g. a.b. */
 
35826
 
 
35827
#line 35828 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35828
} // closed Puma
 
35829
class CCExprResolve;
 
35830
class CExprResolve;
 
35831
class WinIfExists;
 
35832
class WinImportHandler;
 
35833
class WinMacros;
 
35834
class WinAsm;
 
35835
class WinDeclSpecs;
 
35836
class WinMemberExplSpec;
 
35837
class WinTypeKeywords;
 
35838
class WinFriend;
 
35839
class ExtAC;
 
35840
class ExtACBuilderCoupling;
 
35841
class ExtACSyntaxCoupling;
 
35842
class ExtACTree;
 
35843
class ExtACKeywords;
 
35844
class ExtGnu;
 
35845
class PragmaOnceUnitState;
 
35846
class PragmaOnce;
 
35847
class CMatchSyntax;
 
35848
namespace Puma {
 
35849
 
 
35850
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35851
 
 
35852
#line 35853 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35853
} // closed Puma
 
35854
 
 
35855
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35856
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35857
#include "CCExprResolveH.ah"
 
35858
#endif
 
35859
namespace Puma {
 
35860
 
 
35861
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35862
 
 
35863
#line 35864 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35864
} // closed Puma
 
35865
 
 
35866
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35867
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35868
#include "CExprResolveH.ah"
 
35869
#endif
 
35870
namespace Puma {
 
35871
 
 
35872
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35873
class CT_MembRefExpr : public CT_MembPtrExpr {
 
35874
#line 35875 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35875
  friend class ::CCExprResolve;
 
35876
  friend class ::CExprResolve;
 
35877
  friend class ::WinIfExists;
 
35878
  friend class ::WinImportHandler;
 
35879
  friend class ::WinMacros;
 
35880
  friend class ::WinAsm;
 
35881
  friend class ::WinDeclSpecs;
 
35882
  friend class ::WinMemberExplSpec;
 
35883
  friend class ::WinTypeKeywords;
 
35884
  friend class ::WinFriend;
 
35885
  friend class ::ExtAC;
 
35886
  friend class ::ExtACBuilderCoupling;
 
35887
  friend class ::ExtACSyntaxCoupling;
 
35888
  friend class ::ExtACTree;
 
35889
  friend class ::ExtACKeywords;
 
35890
  friend class ::ExtGnu;
 
35891
  friend class ::PragmaOnceUnitState;
 
35892
  friend class ::PragmaOnce;
 
35893
  friend class ::CMatchSyntax;
 
35894
 
 
35895
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35896
 
 
35897
public:
 
35898
  /** Constructor.
 
35899
   *  \param e Expression on which to call the member.
 
35900
   *  \param o The dot operator.
 
35901
   *  \param i The member name. */
 
35902
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
 
35903
    CT_MembPtrExpr (e, o, i) {}
 
35904
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35905
  static const char *NodeId ();
 
35906
  /** Get the name of the node. Can be compared with NodeId(). */
 
35907
  const char *NodeName () const { return NodeId (); }
 
35908
   private:
 
35909
  typedef CT_MembRefExpr CCExprResolveExpr;
 
35910
 
 
35911
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
35912
 public :
 
35913
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
35914
  typedef CT_MembRefExpr CExprResolveExpr;
 
35915
 
 
35916
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
35917
 public :
 
35918
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
35919
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35920
};
 
35921
 
 
35922
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
35923
 *  Base class for tree nodes representing unary expressions. */
 
35924
 
 
35925
#line 35926 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35926
} // closed Puma
 
35927
class CCExprResolve;
 
35928
class CExprResolve;
 
35929
class WinIfExists;
 
35930
class WinImportHandler;
 
35931
class WinMacros;
 
35932
class WinAsm;
 
35933
class WinDeclSpecs;
 
35934
class WinMemberExplSpec;
 
35935
class WinTypeKeywords;
 
35936
class WinFriend;
 
35937
class ExtAC;
 
35938
class ExtACBuilderCoupling;
 
35939
class ExtACSyntaxCoupling;
 
35940
class ExtACTree;
 
35941
class ExtACKeywords;
 
35942
class ExtGnu;
 
35943
class PragmaOnceUnitState;
 
35944
class PragmaOnce;
 
35945
class CMatchSyntax;
 
35946
namespace Puma {
 
35947
 
 
35948
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35949
 
 
35950
#line 35951 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35951
} // closed Puma
 
35952
 
 
35953
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35954
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
35955
#include "CCExprResolveH.ah"
 
35956
#endif
 
35957
namespace Puma {
 
35958
 
 
35959
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35960
 
 
35961
#line 35962 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35962
} // closed Puma
 
35963
 
 
35964
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35965
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
35966
#include "CExprResolveH.ah"
 
35967
#endif
 
35968
namespace Puma {
 
35969
 
 
35970
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35971
class CT_UnaryExpr : public CT_Call {
 
35972
#line 35973 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
35973
  friend class ::CCExprResolve;
 
35974
  friend class ::CExprResolve;
 
35975
  friend class ::WinIfExists;
 
35976
  friend class ::WinImportHandler;
 
35977
  friend class ::WinMacros;
 
35978
  friend class ::WinAsm;
 
35979
  friend class ::WinDeclSpecs;
 
35980
  friend class ::WinMemberExplSpec;
 
35981
  friend class ::WinTypeKeywords;
 
35982
  friend class ::WinFriend;
 
35983
  friend class ::ExtAC;
 
35984
  friend class ::ExtACBuilderCoupling;
 
35985
  friend class ::ExtACSyntaxCoupling;
 
35986
  friend class ::ExtACTree;
 
35987
  friend class ::ExtACKeywords;
 
35988
  friend class ::ExtGnu;
 
35989
  friend class ::PragmaOnceUnitState;
 
35990
  friend class ::PragmaOnce;
 
35991
  friend class ::CMatchSyntax;
 
35992
 
 
35993
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35994
 
 
35995
  CTree *sons[2]; // oper, expr
 
35996
 
 
35997
public:
 
35998
  /** Constructor.
 
35999
   *  \param o The unary operator.
 
36000
   *  \param e The expression on which the operator is invoked. */
 
36001
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
36002
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36003
  static const char *NodeId ();
 
36004
  /** Get the name of the node. Can be compared with NodeId(). */
 
36005
  const char *NodeName () const { return NodeId (); }
 
36006
  /** Get the number of sons. */
 
36007
  int Sons () const { return 2; }
 
36008
  /** Get the n-th son.
 
36009
   *  \param n The index of the son.
 
36010
   *  \return The n-th son or NULL. */
 
36011
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
36012
  /** Replace a son.
 
36013
   *  \param old_son The son to replace.
 
36014
   *  \param new_son The new son. */
 
36015
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
36016
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
36017
  }
 
36018
  /** Get the expression node. */
 
36019
  CTree *Expr () const { return sons[1]; }
 
36020
   private:
 
36021
  typedef CT_UnaryExpr CCExprResolveExpr;
 
36022
 
 
36023
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
36024
 public :
 
36025
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
36026
  typedef CT_UnaryExpr CExprResolveExpr;
 
36027
 
 
36028
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
36029
 public :
 
36030
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
36031
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36032
};
 
36033
 
 
36034
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
36035
 *  Tree node representing a postfix expression, e.g. a++. */
 
36036
 
 
36037
#line 36038 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36038
} // closed Puma
 
36039
class CCExprResolve;
 
36040
class CExprResolve;
 
36041
class WinIfExists;
 
36042
class WinImportHandler;
 
36043
class WinMacros;
 
36044
class WinAsm;
 
36045
class WinDeclSpecs;
 
36046
class WinMemberExplSpec;
 
36047
class WinTypeKeywords;
 
36048
class WinFriend;
 
36049
class ExtAC;
 
36050
class ExtACBuilderCoupling;
 
36051
class ExtACSyntaxCoupling;
 
36052
class ExtACTree;
 
36053
class ExtACKeywords;
 
36054
class ExtGnu;
 
36055
class PragmaOnceUnitState;
 
36056
class PragmaOnce;
 
36057
class CMatchSyntax;
 
36058
namespace Puma {
 
36059
 
 
36060
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36061
 
 
36062
#line 36063 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36063
} // closed Puma
 
36064
 
 
36065
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36066
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36067
#include "CCExprResolveH.ah"
 
36068
#endif
 
36069
namespace Puma {
 
36070
 
 
36071
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36072
 
 
36073
#line 36074 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36074
} // closed Puma
 
36075
 
 
36076
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36077
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36078
#include "CExprResolveH.ah"
 
36079
#endif
 
36080
namespace Puma {
 
36081
 
 
36082
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36083
class CT_PostfixExpr : public CT_UnaryExpr {
 
36084
#line 36085 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36085
  friend class ::CCExprResolve;
 
36086
  friend class ::CExprResolve;
 
36087
  friend class ::WinIfExists;
 
36088
  friend class ::WinImportHandler;
 
36089
  friend class ::WinMacros;
 
36090
  friend class ::WinAsm;
 
36091
  friend class ::WinDeclSpecs;
 
36092
  friend class ::WinMemberExplSpec;
 
36093
  friend class ::WinTypeKeywords;
 
36094
  friend class ::WinFriend;
 
36095
  friend class ::ExtAC;
 
36096
  friend class ::ExtACBuilderCoupling;
 
36097
  friend class ::ExtACSyntaxCoupling;
 
36098
  friend class ::ExtACTree;
 
36099
  friend class ::ExtACKeywords;
 
36100
  friend class ::ExtGnu;
 
36101
  friend class ::PragmaOnceUnitState;
 
36102
  friend class ::PragmaOnce;
 
36103
  friend class ::CMatchSyntax;
 
36104
 
 
36105
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36106
 
 
36107
public:
 
36108
  /** Constructor.
 
36109
   *  \param e The expression on which to invoke the operator. 
 
36110
   *  \param o The postfix operator. */
 
36111
  CT_PostfixExpr (CTree *e, CTree *o) :
 
36112
    CT_UnaryExpr (e, o) {}
 
36113
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36114
  static const char *NodeId ();
 
36115
  /** Get the name of the node. Can be compared with NodeId(). */
 
36116
  const char *NodeName () const { return NodeId (); }
 
36117
   private:
 
36118
  typedef CT_PostfixExpr CCExprResolveExpr;
 
36119
 
 
36120
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
36121
 public :
 
36122
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
36123
  typedef CT_PostfixExpr CExprResolveExpr;
 
36124
 
 
36125
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
36126
 public :
 
36127
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
36128
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36129
};
 
36130
 
 
36131
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
36132
 *  Tree node representing an address expression, e.g. &a. */
 
36133
 
 
36134
#line 36135 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36135
} // closed Puma
 
36136
class CCExprResolve;
 
36137
class CExprResolve;
 
36138
class WinIfExists;
 
36139
class WinImportHandler;
 
36140
class WinMacros;
 
36141
class WinAsm;
 
36142
class WinDeclSpecs;
 
36143
class WinMemberExplSpec;
 
36144
class WinTypeKeywords;
 
36145
class WinFriend;
 
36146
class ExtAC;
 
36147
class ExtACBuilderCoupling;
 
36148
class ExtACSyntaxCoupling;
 
36149
class ExtACTree;
 
36150
class ExtACKeywords;
 
36151
class ExtGnu;
 
36152
class PragmaOnceUnitState;
 
36153
class PragmaOnce;
 
36154
class CMatchSyntax;
 
36155
namespace Puma {
 
36156
 
 
36157
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36158
 
 
36159
#line 36160 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36160
} // closed Puma
 
36161
 
 
36162
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36163
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36164
#include "CCExprResolveH.ah"
 
36165
#endif
 
36166
namespace Puma {
 
36167
 
 
36168
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36169
 
 
36170
#line 36171 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36171
} // closed Puma
 
36172
 
 
36173
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36174
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36175
#include "CExprResolveH.ah"
 
36176
#endif
 
36177
namespace Puma {
 
36178
 
 
36179
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36180
class CT_AddrExpr : public CT_UnaryExpr {
 
36181
#line 36182 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36182
  friend class ::CCExprResolve;
 
36183
  friend class ::CExprResolve;
 
36184
  friend class ::WinIfExists;
 
36185
  friend class ::WinImportHandler;
 
36186
  friend class ::WinMacros;
 
36187
  friend class ::WinAsm;
 
36188
  friend class ::WinDeclSpecs;
 
36189
  friend class ::WinMemberExplSpec;
 
36190
  friend class ::WinTypeKeywords;
 
36191
  friend class ::WinFriend;
 
36192
  friend class ::ExtAC;
 
36193
  friend class ::ExtACBuilderCoupling;
 
36194
  friend class ::ExtACSyntaxCoupling;
 
36195
  friend class ::ExtACTree;
 
36196
  friend class ::ExtACKeywords;
 
36197
  friend class ::ExtGnu;
 
36198
  friend class ::PragmaOnceUnitState;
 
36199
  friend class ::PragmaOnce;
 
36200
  friend class ::CMatchSyntax;
 
36201
 
 
36202
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36203
 
 
36204
public:
 
36205
  /** Constructor.
 
36206
   *  \param o The address operator, i.e. '&'.
 
36207
   *  \param e The expression from which to take the address. */
 
36208
  CT_AddrExpr (CTree *o, CTree *e) :
 
36209
    CT_UnaryExpr (o, e) {}
 
36210
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36211
  static const char *NodeId ();
 
36212
  /** Get the name of the node. Can be compared with NodeId(). */
 
36213
  const char *NodeName () const { return NodeId (); }
 
36214
   private:
 
36215
  typedef CT_AddrExpr CCExprResolveExpr;
 
36216
 
 
36217
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
36218
 public :
 
36219
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
36220
  typedef CT_AddrExpr CExprResolveExpr;
 
36221
 
 
36222
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
36223
 public :
 
36224
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
36225
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36226
};
 
36227
 
 
36228
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
36229
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
 
36230
 
 
36231
#line 36232 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36232
} // closed Puma
 
36233
class CCExprResolve;
 
36234
class CExprResolve;
 
36235
class WinIfExists;
 
36236
class WinImportHandler;
 
36237
class WinMacros;
 
36238
class WinAsm;
 
36239
class WinDeclSpecs;
 
36240
class WinMemberExplSpec;
 
36241
class WinTypeKeywords;
 
36242
class WinFriend;
 
36243
class ExtAC;
 
36244
class ExtACBuilderCoupling;
 
36245
class ExtACSyntaxCoupling;
 
36246
class ExtACTree;
 
36247
class ExtACKeywords;
 
36248
class ExtGnu;
 
36249
class PragmaOnceUnitState;
 
36250
class PragmaOnce;
 
36251
class CMatchSyntax;
 
36252
namespace Puma {
 
36253
 
 
36254
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36255
 
 
36256
#line 36257 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36257
} // closed Puma
 
36258
 
 
36259
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36260
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36261
#include "CCExprResolveH.ah"
 
36262
#endif
 
36263
namespace Puma {
 
36264
 
 
36265
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36266
 
 
36267
#line 36268 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36268
} // closed Puma
 
36269
 
 
36270
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36271
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36272
#include "CExprResolveH.ah"
 
36273
#endif
 
36274
namespace Puma {
 
36275
 
 
36276
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36277
class CT_DerefExpr : public CT_UnaryExpr {
 
36278
#line 36279 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36279
  friend class ::CCExprResolve;
 
36280
  friend class ::CExprResolve;
 
36281
  friend class ::WinIfExists;
 
36282
  friend class ::WinImportHandler;
 
36283
  friend class ::WinMacros;
 
36284
  friend class ::WinAsm;
 
36285
  friend class ::WinDeclSpecs;
 
36286
  friend class ::WinMemberExplSpec;
 
36287
  friend class ::WinTypeKeywords;
 
36288
  friend class ::WinFriend;
 
36289
  friend class ::ExtAC;
 
36290
  friend class ::ExtACBuilderCoupling;
 
36291
  friend class ::ExtACSyntaxCoupling;
 
36292
  friend class ::ExtACTree;
 
36293
  friend class ::ExtACKeywords;
 
36294
  friend class ::ExtGnu;
 
36295
  friend class ::PragmaOnceUnitState;
 
36296
  friend class ::PragmaOnce;
 
36297
  friend class ::CMatchSyntax;
 
36298
 
 
36299
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36300
 
 
36301
public:
 
36302
  /** Constructor.
 
36303
   *  \param o The dereferencing operator, i.e. '*'.
 
36304
   *  \param e The expression to dereference. */
 
36305
  CT_DerefExpr (CTree *o, CTree *e) :
 
36306
    CT_UnaryExpr (o, e) {}
 
36307
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36308
  static const char *NodeId ();
 
36309
  /** Get the name of the node. Can be compared with NodeId(). */
 
36310
  const char *NodeName () const { return NodeId (); }
 
36311
   private:
 
36312
  typedef CT_DerefExpr CCExprResolveExpr;
 
36313
 
 
36314
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
36315
 public :
 
36316
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
36317
  typedef CT_DerefExpr CExprResolveExpr;
 
36318
 
 
36319
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
36320
 public :
 
36321
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
36322
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36323
};
 
36324
 
 
36325
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
36326
 *  Tree node representing a delete expression, e.g. delete a. */
 
36327
 
 
36328
#line 36329 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36329
} // closed Puma
 
36330
class CCExprResolve;
 
36331
class CExprResolve;
 
36332
class WinIfExists;
 
36333
class WinImportHandler;
 
36334
class WinMacros;
 
36335
class WinAsm;
 
36336
class WinDeclSpecs;
 
36337
class WinMemberExplSpec;
 
36338
class WinTypeKeywords;
 
36339
class WinFriend;
 
36340
class ExtAC;
 
36341
class ExtACBuilderCoupling;
 
36342
class ExtACSyntaxCoupling;
 
36343
class ExtACTree;
 
36344
class ExtACKeywords;
 
36345
class ExtGnu;
 
36346
class PragmaOnceUnitState;
 
36347
class PragmaOnce;
 
36348
class CMatchSyntax;
 
36349
namespace Puma {
 
36350
 
 
36351
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36352
 
 
36353
#line 36354 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36354
} // closed Puma
 
36355
 
 
36356
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36357
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36358
#include "CCExprResolveH.ah"
 
36359
#endif
 
36360
namespace Puma {
 
36361
 
 
36362
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36363
 
 
36364
#line 36365 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36365
} // closed Puma
 
36366
 
 
36367
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36368
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36369
#include "CExprResolveH.ah"
 
36370
#endif
 
36371
namespace Puma {
 
36372
 
 
36373
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36374
class CT_DeleteExpr : public CT_Expression, public CSemObject {
 
36375
#line 36376 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36376
  friend class ::CCExprResolve;
 
36377
  friend class ::CExprResolve;
 
36378
  friend class ::WinIfExists;
 
36379
  friend class ::WinImportHandler;
 
36380
  friend class ::WinMacros;
 
36381
  friend class ::WinAsm;
 
36382
  friend class ::WinDeclSpecs;
 
36383
  friend class ::WinMemberExplSpec;
 
36384
  friend class ::WinTypeKeywords;
 
36385
  friend class ::WinFriend;
 
36386
  friend class ::ExtAC;
 
36387
  friend class ::ExtACBuilderCoupling;
 
36388
  friend class ::ExtACSyntaxCoupling;
 
36389
  friend class ::ExtACTree;
 
36390
  friend class ::ExtACKeywords;
 
36391
  friend class ::ExtGnu;
 
36392
  friend class ::PragmaOnceUnitState;
 
36393
  friend class ::PragmaOnce;
 
36394
  friend class ::CMatchSyntax;
 
36395
 
 
36396
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36397
 
 
36398
  CTree *sons[2]; // oper, expr
 
36399
 
 
36400
public:
 
36401
  /** Constructor.
 
36402
   *  \param op The delete operator.
 
36403
   *  \param e The expression representing the object to delete. */
 
36404
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
36405
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36406
  static const char *NodeId ();
 
36407
  /** Get the name of the node. Can be compared with NodeId(). */
 
36408
  const char *NodeName () const { return NodeId (); }
 
36409
  /** Get the number of sons. */
 
36410
  int Sons () const { return 2; }
 
36411
  /** Get the n-th son.
 
36412
   *  \param n The index of the son.
 
36413
   *  \return The n-th son or NULL. */
 
36414
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
36415
  /** Replace a son.
 
36416
   *  \param old_son The son to replace.
 
36417
   *  \param new_son The new son. */
 
36418
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
36419
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
36420
  }
 
36421
  /** Get the expression. */
 
36422
  CTree *Expr () const { return sons[1]; }
 
36423
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
 
36424
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
36425
  /** Get the semantic information object. */
 
36426
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
36427
   private:
 
36428
  typedef CT_DeleteExpr CCExprResolveExpr;
 
36429
 
 
36430
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
36431
 public :
 
36432
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
36433
  typedef CT_DeleteExpr CExprResolveExpr;
 
36434
 
 
36435
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
36436
 public :
 
36437
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
36438
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36439
};
 
36440
 
 
36441
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
36442
 *  Tree node representing a new expression, e.g. new A(). */
 
36443
 
 
36444
#line 36445 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36445
} // closed Puma
 
36446
class CCExprResolve;
 
36447
class CExprResolve;
 
36448
class WinIfExists;
 
36449
class WinImportHandler;
 
36450
class WinMacros;
 
36451
class WinAsm;
 
36452
class WinDeclSpecs;
 
36453
class WinMemberExplSpec;
 
36454
class WinTypeKeywords;
 
36455
class WinFriend;
 
36456
class ExtAC;
 
36457
class ExtACBuilderCoupling;
 
36458
class ExtACSyntaxCoupling;
 
36459
class ExtACTree;
 
36460
class ExtACKeywords;
 
36461
class ExtGnu;
 
36462
class PragmaOnceUnitState;
 
36463
class PragmaOnce;
 
36464
class CMatchSyntax;
 
36465
namespace Puma {
 
36466
 
 
36467
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36468
 
 
36469
#line 36470 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36470
} // closed Puma
 
36471
 
 
36472
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36473
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36474
#include "CCExprResolveH.ah"
 
36475
#endif
 
36476
namespace Puma {
 
36477
 
 
36478
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36479
 
 
36480
#line 36481 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36481
} // closed Puma
 
36482
 
 
36483
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36484
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36485
#include "CExprResolveH.ah"
 
36486
#endif
 
36487
namespace Puma {
 
36488
 
 
36489
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36490
class CT_NewExpr : public CT_Expression, public CSemObject {
 
36491
#line 36492 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36492
  friend class ::CCExprResolve;
 
36493
  friend class ::CExprResolve;
 
36494
  friend class ::WinIfExists;
 
36495
  friend class ::WinImportHandler;
 
36496
  friend class ::WinMacros;
 
36497
  friend class ::WinAsm;
 
36498
  friend class ::WinDeclSpecs;
 
36499
  friend class ::WinMemberExplSpec;
 
36500
  friend class ::WinTypeKeywords;
 
36501
  friend class ::WinFriend;
 
36502
  friend class ::ExtAC;
 
36503
  friend class ::ExtACBuilderCoupling;
 
36504
  friend class ::ExtACSyntaxCoupling;
 
36505
  friend class ::ExtACTree;
 
36506
  friend class ::ExtACKeywords;
 
36507
  friend class ::ExtGnu;
 
36508
  friend class ::PragmaOnceUnitState;
 
36509
  friend class ::PragmaOnce;
 
36510
  friend class ::CMatchSyntax;
 
36511
 
 
36512
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36513
 
 
36514
  CTree *sons[6]; // oper, placement, open, type, close, init
 
36515
 
 
36516
public:
 
36517
  /** Constructor.
 
36518
   *  \param op The new operator.
 
36519
   *  \param p The optional placement expression.
 
36520
   *  \param o The optional left parenthesis around the type identifier.
 
36521
   *  \param t The type identifier specifying the type of the object to create.
 
36522
   *  \param c The optional right parenthesis around the type identifier.
 
36523
   *  \param i The optional initializer. */
 
36524
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
 
36525
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
36526
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
 
36527
  }
 
36528
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36529
  static const char *NodeId ();
 
36530
  /** Get the name of the node. Can be compared with NodeId(). */
 
36531
  const char *NodeName () const { return NodeId (); }
 
36532
  /** Get the number of sons. */
 
36533
  int Sons () const { return CTree::Sons (sons, 6); }
 
36534
  /** Get the n-th son.
 
36535
   *  \param n The index of the son.
 
36536
   *  \return The n-th son or NULL. */
 
36537
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
36538
  /** Replace a son.
 
36539
   *  \param old_son The son to replace.
 
36540
   *  \param new_son The new son. */
 
36541
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
36542
    CTree::ReplaceSon (sons, 6, old_son, new_son);
 
36543
  }
 
36544
  /** Get the operator name. */
 
36545
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
36546
  /** Get the placement expression. */
 
36547
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
36548
  /** Get the initializer. */
 
36549
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
36550
  /** Get the type of the object to create. */
 
36551
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
36552
  /** Get the semantic information object. */
 
36553
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
36554
   private:
 
36555
  typedef CT_NewExpr CCExprResolveExpr;
 
36556
 
 
36557
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
36558
 public :
 
36559
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
36560
  typedef CT_NewExpr CExprResolveExpr;
 
36561
 
 
36562
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
36563
 public :
 
36564
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
36565
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36566
};
 
36567
 
 
36568
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
36569
 *  Tree node representing an if-then expression, 
 
36570
 *  e.g. a>0?a:b or a?:b. */
 
36571
 
 
36572
#line 36573 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36573
} // closed Puma
 
36574
class CCExprResolve;
 
36575
class CExprResolve;
 
36576
class WinIfExists;
 
36577
class WinImportHandler;
 
36578
class WinMacros;
 
36579
class WinAsm;
 
36580
class WinDeclSpecs;
 
36581
class WinMemberExplSpec;
 
36582
class WinTypeKeywords;
 
36583
class WinFriend;
 
36584
class ExtAC;
 
36585
class ExtACBuilderCoupling;
 
36586
class ExtACSyntaxCoupling;
 
36587
class ExtACTree;
 
36588
class ExtACKeywords;
 
36589
class ExtGnu;
 
36590
class PragmaOnceUnitState;
 
36591
class PragmaOnce;
 
36592
class CMatchSyntax;
 
36593
namespace Puma {
 
36594
 
 
36595
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36596
 
 
36597
#line 36598 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36598
} // closed Puma
 
36599
 
 
36600
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36601
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36602
#include "CCExprResolveH.ah"
 
36603
#endif
 
36604
namespace Puma {
 
36605
 
 
36606
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36607
 
 
36608
#line 36609 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36609
} // closed Puma
 
36610
 
 
36611
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36612
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36613
#include "CExprResolveH.ah"
 
36614
#endif
 
36615
namespace Puma {
 
36616
 
 
36617
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36618
class CT_IfThenExpr : public CT_Expression {
 
36619
#line 36620 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36620
  friend class ::CCExprResolve;
 
36621
  friend class ::CExprResolve;
 
36622
  friend class ::WinIfExists;
 
36623
  friend class ::WinImportHandler;
 
36624
  friend class ::WinMacros;
 
36625
  friend class ::WinAsm;
 
36626
  friend class ::WinDeclSpecs;
 
36627
  friend class ::WinMemberExplSpec;
 
36628
  friend class ::WinTypeKeywords;
 
36629
  friend class ::WinFriend;
 
36630
  friend class ::ExtAC;
 
36631
  friend class ::ExtACBuilderCoupling;
 
36632
  friend class ::ExtACSyntaxCoupling;
 
36633
  friend class ::ExtACTree;
 
36634
  friend class ::ExtACKeywords;
 
36635
  friend class ::ExtGnu;
 
36636
  friend class ::PragmaOnceUnitState;
 
36637
  friend class ::PragmaOnce;
 
36638
  friend class ::CMatchSyntax;
 
36639
 
 
36640
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36641
 
 
36642
  CTree *sons[5]; // cond, oper, left, colon, right
 
36643
 
 
36644
public:
 
36645
  /** Constructor.
 
36646
   *  \param c1 The condition expression.
 
36647
   *  \param o The question mark operator. 
 
36648
   *  \param l The expression to the left of the colon.
 
36649
   *  \param c2 The colon operator.
 
36650
   *  \param r The expression to the right of the colon. */ 
 
36651
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
 
36652
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
36653
    AddSon (sons[3], c2); AddSon (sons[4], r);
 
36654
  }
 
36655
  /** Constructor.
 
36656
   *  \param c1 The condition expression.
 
36657
   *  \param o The question mark operator. 
 
36658
   *  \param c2 The colon operator.
 
36659
   *  \param r The expression to the right of the colon. */ 
 
36660
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
 
36661
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
36662
    AddSon (sons[3], c2); AddSon (sons[4], r);
 
36663
  }
 
36664
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36665
  static const char *NodeId ();
 
36666
  /** Get the name of the node. Can be compared with NodeId(). */
 
36667
  const char *NodeName () const { return NodeId (); }
 
36668
  /** Get the number of sons. */
 
36669
  int Sons () const { return CTree::Sons (sons, 5); }
 
36670
  /** Get the n-th son.
 
36671
   *  \param n The index of the son.
 
36672
   *  \return The n-th son or NULL. */
 
36673
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
36674
  /** Get the condition expression. */
 
36675
  CTree *Condition () const { return sons[0]; }
 
36676
  /** Get the left expression (condition=true). */
 
36677
  CTree *LeftOperand () const { return sons[2]; }
 
36678
  /** Get the right expression (condition=false). */
 
36679
  CTree *RightOperand () const { return sons[4]; }
 
36680
  /** Replace a son.
 
36681
   *  \param old_son The son to replace.
 
36682
   *  \param new_son The new son. */
 
36683
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
36684
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
36685
  }
 
36686
   private:
 
36687
  typedef CT_IfThenExpr CCExprResolveExpr;
 
36688
 
 
36689
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
36690
 public :
 
36691
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
36692
  typedef CT_IfThenExpr CExprResolveExpr;
 
36693
 
 
36694
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
36695
 public :
 
36696
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
36697
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36698
};
 
36699
 
 
36700
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
36701
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
 
36702
 
 
36703
#line 36704 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36704
} // closed Puma
 
36705
class CCExprResolve;
 
36706
class CExprResolve;
 
36707
class WinIfExists;
 
36708
class WinImportHandler;
 
36709
class WinMacros;
 
36710
class WinAsm;
 
36711
class WinDeclSpecs;
 
36712
class WinMemberExplSpec;
 
36713
class WinTypeKeywords;
 
36714
class WinFriend;
 
36715
class ExtAC;
 
36716
class ExtACBuilderCoupling;
 
36717
class ExtACSyntaxCoupling;
 
36718
class ExtACTree;
 
36719
class ExtACKeywords;
 
36720
class ExtGnu;
 
36721
class PragmaOnceUnitState;
 
36722
class PragmaOnce;
 
36723
class CMatchSyntax;
 
36724
namespace Puma {
 
36725
 
 
36726
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36727
 
 
36728
#line 36729 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36729
} // closed Puma
 
36730
 
 
36731
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36732
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36733
#include "CCExprResolveH.ah"
 
36734
#endif
 
36735
namespace Puma {
 
36736
 
 
36737
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36738
 
 
36739
#line 36740 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36740
} // closed Puma
 
36741
 
 
36742
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36743
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36744
#include "CExprResolveH.ah"
 
36745
#endif
 
36746
namespace Puma {
 
36747
 
 
36748
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36749
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
 
36750
#line 36751 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36751
  friend class ::CCExprResolve;
 
36752
  friend class ::CExprResolve;
 
36753
  friend class ::WinIfExists;
 
36754
  friend class ::WinImportHandler;
 
36755
  friend class ::WinMacros;
 
36756
  friend class ::WinAsm;
 
36757
  friend class ::WinDeclSpecs;
 
36758
  friend class ::WinMemberExplSpec;
 
36759
  friend class ::WinTypeKeywords;
 
36760
  friend class ::WinFriend;
 
36761
  friend class ::ExtAC;
 
36762
  friend class ::ExtACBuilderCoupling;
 
36763
  friend class ::ExtACSyntaxCoupling;
 
36764
  friend class ::ExtACTree;
 
36765
  friend class ::ExtACKeywords;
 
36766
  friend class ::ExtGnu;
 
36767
  friend class ::PragmaOnceUnitState;
 
36768
  friend class ::PragmaOnce;
 
36769
  friend class ::CMatchSyntax;
 
36770
 
 
36771
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36772
 
 
36773
  CTree *sons[4]; // open, type, close, init
 
36774
 
 
36775
public:
 
36776
  /** Constructor.
 
36777
   *  \param r Left parenthesis of the type name.
 
36778
   *  \param t The type name.
 
36779
   *  \param cr Right parenthesis of the type name.
 
36780
   *  \param i The initializer list. */
 
36781
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
 
36782
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
36783
    AddSon (sons[2], cr); AddSon (sons[3], i);
 
36784
  }
 
36785
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36786
  static const char *NodeId ();
 
36787
  /** Get the name of the node. Can be compared with NodeId(). */
 
36788
  const char *NodeName () const { return NodeId (); }
 
36789
  /** Get the number of sons. */
 
36790
  int Sons () const { return 4; }
 
36791
  /** Get the n-th son.
 
36792
   *  \param n The index of the son.
 
36793
   *  \return The n-th son or NULL. */
 
36794
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
36795
  /** Replace a son.
 
36796
   *  \param old_son The son to replace.
 
36797
   *  \param new_son The new son. */
 
36798
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
36799
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
36800
  }
 
36801
  /** Get the type name. */
 
36802
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
36803
  /** Get the initializer list. */
 
36804
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
36805
  /** Get the semantic information object. */
 
36806
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
36807
   private:
 
36808
  typedef CT_CmpdLiteral CCExprResolveExpr;
 
36809
 
 
36810
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
36811
 public :
 
36812
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
36813
  typedef CT_CmpdLiteral CExprResolveExpr;
 
36814
 
 
36815
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
36816
 public :
 
36817
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
36818
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36819
};
 
36820
 
 
36821
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
36822
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
 
36823
 
 
36824
#line 36825 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36825
} // closed Puma
 
36826
class CCExprResolve;
 
36827
class CExprResolve;
 
36828
class WinIfExists;
 
36829
class WinImportHandler;
 
36830
class WinMacros;
 
36831
class WinAsm;
 
36832
class WinDeclSpecs;
 
36833
class WinMemberExplSpec;
 
36834
class WinTypeKeywords;
 
36835
class WinFriend;
 
36836
class ExtAC;
 
36837
class ExtACBuilderCoupling;
 
36838
class ExtACSyntaxCoupling;
 
36839
class ExtACTree;
 
36840
class ExtACKeywords;
 
36841
class ExtGnu;
 
36842
class PragmaOnceUnitState;
 
36843
class PragmaOnce;
 
36844
class CMatchSyntax;
 
36845
namespace Puma {
 
36846
 
 
36847
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36848
 
 
36849
#line 36850 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36850
} // closed Puma
 
36851
 
 
36852
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36853
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36854
#include "CCExprResolveH.ah"
 
36855
#endif
 
36856
namespace Puma {
 
36857
 
 
36858
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36859
 
 
36860
#line 36861 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36861
} // closed Puma
 
36862
 
 
36863
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36864
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36865
#include "CExprResolveH.ah"
 
36866
#endif
 
36867
namespace Puma {
 
36868
 
 
36869
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36870
class CT_ConstructExpr : public CT_Expression, public CSemObject {
 
36871
#line 36872 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36872
  friend class ::CCExprResolve;
 
36873
  friend class ::CExprResolve;
 
36874
  friend class ::WinIfExists;
 
36875
  friend class ::WinImportHandler;
 
36876
  friend class ::WinMacros;
 
36877
  friend class ::WinAsm;
 
36878
  friend class ::WinDeclSpecs;
 
36879
  friend class ::WinMemberExplSpec;
 
36880
  friend class ::WinTypeKeywords;
 
36881
  friend class ::WinFriend;
 
36882
  friend class ::ExtAC;
 
36883
  friend class ::ExtACBuilderCoupling;
 
36884
  friend class ::ExtACSyntaxCoupling;
 
36885
  friend class ::ExtACTree;
 
36886
  friend class ::ExtACKeywords;
 
36887
  friend class ::ExtGnu;
 
36888
  friend class ::PragmaOnceUnitState;
 
36889
  friend class ::PragmaOnce;
 
36890
  friend class ::CMatchSyntax;
 
36891
 
 
36892
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36893
 
 
36894
  CTree *sons[2]; // type, init
 
36895
 
 
36896
public:
 
36897
  /** Constructor.
 
36898
   *  \param t The type name.
 
36899
   *  \param i The initializer list. */
 
36900
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
36901
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
36902
  static const char *NodeId ();
 
36903
  /** Get the name of the node. Can be compared with NodeId(). */
 
36904
  const char *NodeName () const { return NodeId (); }
 
36905
  /** Get the number of sons. */
 
36906
  int Sons () const { return 2; }
 
36907
  /** Get the n-th son.
 
36908
   *  \param n The index of the son.
 
36909
   *  \return The n-th son or NULL. */
 
36910
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
36911
  /** Replace a son.
 
36912
   *  \param old_son The son to replace.
 
36913
   *  \param new_son The new son. */
 
36914
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
36915
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
36916
  }
 
36917
  /** Get the type name. */
 
36918
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
36919
  /** Get the initializer. */
 
36920
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
36921
  /** Get the semantic information object. */
 
36922
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
36923
   private:
 
36924
  typedef CT_ConstructExpr CCExprResolveExpr;
 
36925
 
 
36926
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
36927
 public :
 
36928
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
36929
  typedef CT_ConstructExpr CExprResolveExpr;
 
36930
 
 
36931
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
36932
 public :
 
36933
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
36934
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36935
};
 
36936
 
 
36937
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
36938
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
 
36939
 
 
36940
#line 36941 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36941
} // closed Puma
 
36942
class CCExprResolve;
 
36943
class CExprResolve;
 
36944
class WinIfExists;
 
36945
class WinImportHandler;
 
36946
class WinMacros;
 
36947
class WinAsm;
 
36948
class WinDeclSpecs;
 
36949
class WinMemberExplSpec;
 
36950
class WinTypeKeywords;
 
36951
class WinFriend;
 
36952
class ExtAC;
 
36953
class ExtACBuilderCoupling;
 
36954
class ExtACSyntaxCoupling;
 
36955
class ExtACTree;
 
36956
class ExtACKeywords;
 
36957
class ExtGnu;
 
36958
class PragmaOnceUnitState;
 
36959
class PragmaOnce;
 
36960
class CMatchSyntax;
 
36961
namespace Puma {
 
36962
 
 
36963
#line 1465 "/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/CSemDeclSpecs.cc"
 
36966
} // closed Puma
 
36967
 
 
36968
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36969
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36970
#include "CCExprResolveH.ah"
 
36971
#endif
 
36972
namespace Puma {
 
36973
 
 
36974
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36975
 
 
36976
#line 36977 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36977
} // closed Puma
 
36978
 
 
36979
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36980
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36981
#include "CExprResolveH.ah"
 
36982
#endif
 
36983
namespace Puma {
 
36984
 
 
36985
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36986
class CT_ThrowExpr : public CT_Expression {
 
36987
#line 36988 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
36988
  friend class ::CCExprResolve;
 
36989
  friend class ::CExprResolve;
 
36990
  friend class ::WinIfExists;
 
36991
  friend class ::WinImportHandler;
 
36992
  friend class ::WinMacros;
 
36993
  friend class ::WinAsm;
 
36994
  friend class ::WinDeclSpecs;
 
36995
  friend class ::WinMemberExplSpec;
 
36996
  friend class ::WinTypeKeywords;
 
36997
  friend class ::WinFriend;
 
36998
  friend class ::ExtAC;
 
36999
  friend class ::ExtACBuilderCoupling;
 
37000
  friend class ::ExtACSyntaxCoupling;
 
37001
  friend class ::ExtACTree;
 
37002
  friend class ::ExtACKeywords;
 
37003
  friend class ::ExtGnu;
 
37004
  friend class ::PragmaOnceUnitState;
 
37005
  friend class ::PragmaOnce;
 
37006
  friend class ::CMatchSyntax;
 
37007
 
 
37008
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37009
 
 
37010
  CTree *sons[2]; // throw, expr
 
37011
 
 
37012
public:
 
37013
  /** Constructor.
 
37014
   *  \param t The 'throw' keyword.
 
37015
   *  \param e The expression. */
 
37016
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
37017
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37018
  static const char *NodeId ();
 
37019
  /** Get the name of the node. Can be compared with NodeId(). */
 
37020
  const char *NodeName () const { return NodeId (); }
 
37021
  /** Get the number of sons. */
 
37022
  int Sons () const { return CTree::Sons (sons, 2); }
 
37023
  /** Get the n-th son.
 
37024
   *  \param n The index of the son.
 
37025
   *  \return The n-th son or NULL. */
 
37026
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
37027
  /** Replace a son.
 
37028
   *  \param old_son The son to replace.
 
37029
   *  \param new_son The new son. */
 
37030
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
37031
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
37032
  }
 
37033
  /** Get the expression. */
 
37034
  CTree *Expr () const { return sons[1]; }
 
37035
   private:
 
37036
  typedef CT_ThrowExpr CCExprResolveExpr;
 
37037
 
 
37038
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
37039
 public :
 
37040
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
37041
  typedef CT_ThrowExpr CExprResolveExpr;
 
37042
 
 
37043
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
37044
 public :
 
37045
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
37046
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37047
};
 
37048
 
 
37049
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
37050
 *  Tree node representing an index expression. */
 
37051
 
 
37052
#line 37053 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37053
} // closed Puma
 
37054
class CCExprResolve;
 
37055
class CExprResolve;
 
37056
class WinIfExists;
 
37057
class WinImportHandler;
 
37058
class WinMacros;
 
37059
class WinAsm;
 
37060
class WinDeclSpecs;
 
37061
class WinMemberExplSpec;
 
37062
class WinTypeKeywords;
 
37063
class WinFriend;
 
37064
class ExtAC;
 
37065
class ExtACBuilderCoupling;
 
37066
class ExtACSyntaxCoupling;
 
37067
class ExtACTree;
 
37068
class ExtACKeywords;
 
37069
class ExtGnu;
 
37070
class PragmaOnceUnitState;
 
37071
class PragmaOnce;
 
37072
class CMatchSyntax;
 
37073
namespace Puma {
 
37074
 
 
37075
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37076
 
 
37077
#line 37078 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37078
} // closed Puma
 
37079
 
 
37080
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37081
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37082
#include "CCExprResolveH.ah"
 
37083
#endif
 
37084
namespace Puma {
 
37085
 
 
37086
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37087
 
 
37088
#line 37089 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37089
} // closed Puma
 
37090
 
 
37091
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37092
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37093
#include "CExprResolveH.ah"
 
37094
#endif
 
37095
namespace Puma {
 
37096
 
 
37097
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37098
class CT_IndexExpr : public CT_Call {
 
37099
#line 37100 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37100
  friend class ::CCExprResolve;
 
37101
  friend class ::CExprResolve;
 
37102
  friend class ::WinIfExists;
 
37103
  friend class ::WinImportHandler;
 
37104
  friend class ::WinMacros;
 
37105
  friend class ::WinAsm;
 
37106
  friend class ::WinDeclSpecs;
 
37107
  friend class ::WinMemberExplSpec;
 
37108
  friend class ::WinTypeKeywords;
 
37109
  friend class ::WinFriend;
 
37110
  friend class ::ExtAC;
 
37111
  friend class ::ExtACBuilderCoupling;
 
37112
  friend class ::ExtACSyntaxCoupling;
 
37113
  friend class ::ExtACTree;
 
37114
  friend class ::ExtACKeywords;
 
37115
  friend class ::ExtGnu;
 
37116
  friend class ::PragmaOnceUnitState;
 
37117
  friend class ::PragmaOnce;
 
37118
  friend class ::CMatchSyntax;
 
37119
 
 
37120
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37121
 
 
37122
  CTree *sons[4]; // expr, open, index, close
 
37123
 
 
37124
public:
 
37125
  /** Constructor.
 
37126
   *  \param e The expression on which to invoke the index operator.
 
37127
   *  \param o Left parenthesis of the index expression.
 
37128
   *  \param i The index expression. 
 
37129
   *  \param c Right parenthesis of the index expression. */
 
37130
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
 
37131
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
37132
    AddSon (sons[2], i); AddSon (sons[3], c);
 
37133
  }
 
37134
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37135
  static const char *NodeId ();
 
37136
  /** Get the name of the node. Can be compared with NodeId(). */
 
37137
  const char *NodeName () const { return NodeId (); }
 
37138
  /** Get the number of sons. */
 
37139
  int Sons () const { return 4; }
 
37140
  /** Get the n-th son.
 
37141
   *  \param n The index of the son.
 
37142
   *  \return The n-th son or NULL. */
 
37143
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
37144
  /** Replace a son.
 
37145
   *  \param old_son The son to replace.
 
37146
   *  \param new_son The new son. */
 
37147
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
37148
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
37149
  }
 
37150
   private:
 
37151
  typedef CT_IndexExpr CCExprResolveExpr;
 
37152
 
 
37153
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
37154
 public :
 
37155
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
37156
  typedef CT_IndexExpr CExprResolveExpr;
 
37157
 
 
37158
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
37159
 public :
 
37160
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
37161
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37162
};
 
37163
 
 
37164
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
37165
 *  Tree node representing a function call expression, e.g. f(i). */
 
37166
 
 
37167
#line 37168 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37168
} // closed Puma
 
37169
class CCExprResolve;
 
37170
class CExprResolve;
 
37171
class WinIfExists;
 
37172
class WinImportHandler;
 
37173
class WinMacros;
 
37174
class WinAsm;
 
37175
class WinDeclSpecs;
 
37176
class WinMemberExplSpec;
 
37177
class WinTypeKeywords;
 
37178
class WinFriend;
 
37179
class ExtAC;
 
37180
class ExtACBuilderCoupling;
 
37181
class ExtACSyntaxCoupling;
 
37182
class ExtACTree;
 
37183
class ExtACKeywords;
 
37184
class ExtGnu;
 
37185
class PragmaOnceUnitState;
 
37186
class PragmaOnce;
 
37187
class CMatchSyntax;
 
37188
namespace Puma {
 
37189
 
 
37190
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37191
 
 
37192
#line 37193 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37193
} // closed Puma
 
37194
 
 
37195
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37196
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37197
#include "CCExprResolveH.ah"
 
37198
#endif
 
37199
namespace Puma {
 
37200
 
 
37201
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37202
 
 
37203
#line 37204 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37204
} // closed Puma
 
37205
 
 
37206
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37207
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37208
#include "CExprResolveH.ah"
 
37209
#endif
 
37210
namespace Puma {
 
37211
 
 
37212
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37213
class CT_CallExpr : public CT_Call {
 
37214
#line 37215 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37215
  friend class ::CCExprResolve;
 
37216
  friend class ::CExprResolve;
 
37217
  friend class ::WinIfExists;
 
37218
  friend class ::WinImportHandler;
 
37219
  friend class ::WinMacros;
 
37220
  friend class ::WinAsm;
 
37221
  friend class ::WinDeclSpecs;
 
37222
  friend class ::WinMemberExplSpec;
 
37223
  friend class ::WinTypeKeywords;
 
37224
  friend class ::WinFriend;
 
37225
  friend class ::ExtAC;
 
37226
  friend class ::ExtACBuilderCoupling;
 
37227
  friend class ::ExtACSyntaxCoupling;
 
37228
  friend class ::ExtACTree;
 
37229
  friend class ::ExtACKeywords;
 
37230
  friend class ::ExtGnu;
 
37231
  friend class ::PragmaOnceUnitState;
 
37232
  friend class ::PragmaOnce;
 
37233
  friend class ::CMatchSyntax;
 
37234
 
 
37235
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37236
 
 
37237
  CTree *sons[2]; // expr, args
 
37238
 
 
37239
public:
 
37240
  /** Constructor.
 
37241
   *  \param e The expression on which the call is invoked. */
 
37242
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
37243
  /** Constructor.
 
37244
   *  \param e The expression on which the call is invoked.
 
37245
   *  \param l The argument list of the call. */
 
37246
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
37247
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37248
  static const char *NodeId ();
 
37249
  /** Get the name of the node. Can be compared with NodeId(). */
 
37250
  const char *NodeName () const { return NodeId (); }
 
37251
  /** Get the number of sons. */
 
37252
  int Sons () const { return CTree::Sons (sons, 2); }
 
37253
  /** Get the n-th son.
 
37254
   *  \param n The index of the son.
 
37255
   *  \return The n-th son or NULL. */
 
37256
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
37257
  /** Replace a son.
 
37258
   *  \param old_son The son to replace.
 
37259
   *  \param new_son The new son. */
 
37260
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
37261
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
37262
  }
 
37263
  CTree *Expr () const { return sons[0]; }
 
37264
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
 
37265
   private:
 
37266
  typedef CT_CallExpr CCExprResolveExpr;
 
37267
 
 
37268
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
37269
 public :
 
37270
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
37271
  typedef CT_CallExpr CExprResolveExpr;
 
37272
 
 
37273
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
37274
 public :
 
37275
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
37276
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37277
};
 
37278
 
 
37279
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
37280
 *  Tree node representing a cast expression, e.g. (int)a. */
 
37281
 
 
37282
#line 37283 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37283
} // closed Puma
 
37284
class CCExprResolve;
 
37285
class CExprResolve;
 
37286
class WinIfExists;
 
37287
class WinImportHandler;
 
37288
class WinMacros;
 
37289
class WinAsm;
 
37290
class WinDeclSpecs;
 
37291
class WinMemberExplSpec;
 
37292
class WinTypeKeywords;
 
37293
class WinFriend;
 
37294
class ExtAC;
 
37295
class ExtACBuilderCoupling;
 
37296
class ExtACSyntaxCoupling;
 
37297
class ExtACTree;
 
37298
class ExtACKeywords;
 
37299
class ExtGnu;
 
37300
class PragmaOnceUnitState;
 
37301
class PragmaOnce;
 
37302
class CMatchSyntax;
 
37303
namespace Puma {
 
37304
 
 
37305
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37306
 
 
37307
#line 37308 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37308
} // closed Puma
 
37309
 
 
37310
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37311
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37312
#include "CCExprResolveH.ah"
 
37313
#endif
 
37314
namespace Puma {
 
37315
 
 
37316
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37317
 
 
37318
#line 37319 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37319
} // closed Puma
 
37320
 
 
37321
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37322
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37323
#include "CExprResolveH.ah"
 
37324
#endif
 
37325
namespace Puma {
 
37326
 
 
37327
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37328
class CT_CastExpr : public CT_Expression {
 
37329
#line 37330 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37330
  friend class ::CCExprResolve;
 
37331
  friend class ::CExprResolve;
 
37332
  friend class ::WinIfExists;
 
37333
  friend class ::WinImportHandler;
 
37334
  friend class ::WinMacros;
 
37335
  friend class ::WinAsm;
 
37336
  friend class ::WinDeclSpecs;
 
37337
  friend class ::WinMemberExplSpec;
 
37338
  friend class ::WinTypeKeywords;
 
37339
  friend class ::WinFriend;
 
37340
  friend class ::ExtAC;
 
37341
  friend class ::ExtACBuilderCoupling;
 
37342
  friend class ::ExtACSyntaxCoupling;
 
37343
  friend class ::ExtACTree;
 
37344
  friend class ::ExtACKeywords;
 
37345
  friend class ::ExtGnu;
 
37346
  friend class ::PragmaOnceUnitState;
 
37347
  friend class ::PragmaOnce;
 
37348
  friend class ::CMatchSyntax;
 
37349
 
 
37350
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37351
 
 
37352
  CTree *sons[4]; // open, type, close, expr
 
37353
 
 
37354
public:
 
37355
  /** Constructor.
 
37356
   *  \param o Left parenthesis of the type name.
 
37357
   *  \param t The type to cast to.
 
37358
   *  \param c Right parenthesis of the type name. 
 
37359
   *  \param e The expression to cast. */
 
37360
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
 
37361
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
37362
    AddSon (sons[2], c); AddSon (sons[3], e);
 
37363
  }
 
37364
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37365
  static const char *NodeId ();
 
37366
  /** Get the name of the node. Can be compared with NodeId(). */
 
37367
  const char *NodeName () const { return NodeId (); }
 
37368
  /** Get the number of sons. */
 
37369
  int Sons () const { return 4; }
 
37370
  /** Get the n-th son.
 
37371
   *  \param n The index of the son.
 
37372
   *  \return The n-th son or NULL. */
 
37373
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
37374
  /** Replace a son.
 
37375
   *  \param old_son The son to replace.
 
37376
   *  \param new_son The new son. */
 
37377
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
37378
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
37379
  }
 
37380
  /** Get the casted expression. */
 
37381
  CTree *Expr () const { return sons[3]; }
 
37382
  /** Get the type to cast to. */
 
37383
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
37384
   private:
 
37385
  typedef CT_CastExpr CCExprResolveExpr;
 
37386
 
 
37387
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
37388
 public :
 
37389
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
37390
  typedef CT_CastExpr CExprResolveExpr;
 
37391
 
 
37392
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
37393
 public :
 
37394
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
37395
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37396
};
 
37397
 
 
37398
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
37399
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
 
37400
 
 
37401
#line 37402 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37402
} // closed Puma
 
37403
class CCExprResolve;
 
37404
class CExprResolve;
 
37405
class WinIfExists;
 
37406
class WinImportHandler;
 
37407
class WinMacros;
 
37408
class WinAsm;
 
37409
class WinDeclSpecs;
 
37410
class WinMemberExplSpec;
 
37411
class WinTypeKeywords;
 
37412
class WinFriend;
 
37413
class ExtAC;
 
37414
class ExtACBuilderCoupling;
 
37415
class ExtACSyntaxCoupling;
 
37416
class ExtACTree;
 
37417
class ExtACKeywords;
 
37418
class ExtGnu;
 
37419
class PragmaOnceUnitState;
 
37420
class PragmaOnce;
 
37421
class CMatchSyntax;
 
37422
namespace Puma {
 
37423
 
 
37424
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37425
 
 
37426
#line 37427 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37427
} // closed Puma
 
37428
 
 
37429
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37430
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37431
#include "CCExprResolveH.ah"
 
37432
#endif
 
37433
namespace Puma {
 
37434
 
 
37435
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37436
 
 
37437
#line 37438 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37438
} // closed Puma
 
37439
 
 
37440
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37441
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37442
#include "CExprResolveH.ah"
 
37443
#endif
 
37444
namespace Puma {
 
37445
 
 
37446
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37447
class CT_StaticCast : public CT_Expression {
 
37448
#line 37449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37449
  friend class ::CCExprResolve;
 
37450
  friend class ::CExprResolve;
 
37451
  friend class ::WinIfExists;
 
37452
  friend class ::WinImportHandler;
 
37453
  friend class ::WinMacros;
 
37454
  friend class ::WinAsm;
 
37455
  friend class ::WinDeclSpecs;
 
37456
  friend class ::WinMemberExplSpec;
 
37457
  friend class ::WinTypeKeywords;
 
37458
  friend class ::WinFriend;
 
37459
  friend class ::ExtAC;
 
37460
  friend class ::ExtACBuilderCoupling;
 
37461
  friend class ::ExtACSyntaxCoupling;
 
37462
  friend class ::ExtACTree;
 
37463
  friend class ::ExtACKeywords;
 
37464
  friend class ::ExtGnu;
 
37465
  friend class ::PragmaOnceUnitState;
 
37466
  friend class ::PragmaOnce;
 
37467
  friend class ::CMatchSyntax;
 
37468
 
 
37469
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37470
 
 
37471
  CTree *sons[5]; // cast, open, type, close, expr
 
37472
 
 
37473
public:
 
37474
  /** Constructor.
 
37475
   *  \param cst The cast operator, i.e. 'static_cast'.
 
37476
   *  \param o Left arrow bracket of the type name.
 
37477
   *  \param t The type to cast to.
 
37478
   *  \param c Right array bracket of the type name.
 
37479
   *  \param e The expression to cast. */
 
37480
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
 
37481
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
37482
    AddSon (sons[3], c); AddSon (sons[4], e);
 
37483
  }
 
37484
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37485
  static const char *NodeId ();
 
37486
  /** Get the name of the node. Can be compared with NodeId(). */
 
37487
  const char *NodeName () const { return NodeId (); }
 
37488
  /** Get the number of sons. */
 
37489
  int Sons () const { return 5; }
 
37490
  /** Get the n-th son.
 
37491
   *  \param n The index of the son.
 
37492
   *  \return The n-th son or NULL. */
 
37493
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
37494
  /** Replace a son.
 
37495
   *  \param old_son The son to replace.
 
37496
   *  \param new_son The new son. */
 
37497
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
37498
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
37499
  }
 
37500
  /** Get the casted expression. */
 
37501
  CTree *Expr () const { return sons[4]; }
 
37502
  /** Get the type to cast to. */
 
37503
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
 
37504
   private:
 
37505
  typedef CT_StaticCast CCExprResolveExpr;
 
37506
 
 
37507
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
37508
 public :
 
37509
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
37510
  typedef CT_StaticCast CExprResolveExpr;
 
37511
 
 
37512
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
37513
 public :
 
37514
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
37515
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37516
};
 
37517
 
 
37518
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
37519
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
 
37520
 
 
37521
#line 37522 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37522
} // closed Puma
 
37523
class CCExprResolve;
 
37524
class CExprResolve;
 
37525
class WinIfExists;
 
37526
class WinImportHandler;
 
37527
class WinMacros;
 
37528
class WinAsm;
 
37529
class WinDeclSpecs;
 
37530
class WinMemberExplSpec;
 
37531
class WinTypeKeywords;
 
37532
class WinFriend;
 
37533
class ExtAC;
 
37534
class ExtACBuilderCoupling;
 
37535
class ExtACSyntaxCoupling;
 
37536
class ExtACTree;
 
37537
class ExtACKeywords;
 
37538
class ExtGnu;
 
37539
class PragmaOnceUnitState;
 
37540
class PragmaOnce;
 
37541
class CMatchSyntax;
 
37542
namespace Puma {
 
37543
 
 
37544
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37545
 
 
37546
#line 37547 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37547
} // closed Puma
 
37548
 
 
37549
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37550
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37551
#include "CCExprResolveH.ah"
 
37552
#endif
 
37553
namespace Puma {
 
37554
 
 
37555
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37556
 
 
37557
#line 37558 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37558
} // closed Puma
 
37559
 
 
37560
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37561
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37562
#include "CExprResolveH.ah"
 
37563
#endif
 
37564
namespace Puma {
 
37565
 
 
37566
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37567
class CT_ConstCast : public CT_StaticCast {
 
37568
#line 37569 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37569
  friend class ::CCExprResolve;
 
37570
  friend class ::CExprResolve;
 
37571
  friend class ::WinIfExists;
 
37572
  friend class ::WinImportHandler;
 
37573
  friend class ::WinMacros;
 
37574
  friend class ::WinAsm;
 
37575
  friend class ::WinDeclSpecs;
 
37576
  friend class ::WinMemberExplSpec;
 
37577
  friend class ::WinTypeKeywords;
 
37578
  friend class ::WinFriend;
 
37579
  friend class ::ExtAC;
 
37580
  friend class ::ExtACBuilderCoupling;
 
37581
  friend class ::ExtACSyntaxCoupling;
 
37582
  friend class ::ExtACTree;
 
37583
  friend class ::ExtACKeywords;
 
37584
  friend class ::ExtGnu;
 
37585
  friend class ::PragmaOnceUnitState;
 
37586
  friend class ::PragmaOnce;
 
37587
  friend class ::CMatchSyntax;
 
37588
 
 
37589
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37590
 
 
37591
public:
 
37592
  /** Constructor.
 
37593
   *  \param cst The cast operator, i.e. 'const_cast'.
 
37594
   *  \param o Left arrow bracket of the type name.
 
37595
   *  \param t The type to cast to.
 
37596
   *  \param c Right array bracket of the type name.
 
37597
   *  \param e The expression to cast. */
 
37598
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
37599
    CT_StaticCast (cst, o, t, c, e) {}
 
37600
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37601
  static const char *NodeId ();
 
37602
  /** Get the name of the node. Can be compared with NodeId(). */
 
37603
  const char *NodeName () const { return NodeId (); }
 
37604
   private:
 
37605
  typedef CT_ConstCast CCExprResolveExpr;
 
37606
 
 
37607
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
37608
 public :
 
37609
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
37610
  typedef CT_ConstCast CExprResolveExpr;
 
37611
 
 
37612
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
37613
 public :
 
37614
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
37615
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37616
};
 
37617
 
 
37618
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
37619
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
 
37620
 
 
37621
#line 37622 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37622
} // closed Puma
 
37623
class CCExprResolve;
 
37624
class CExprResolve;
 
37625
class WinIfExists;
 
37626
class WinImportHandler;
 
37627
class WinMacros;
 
37628
class WinAsm;
 
37629
class WinDeclSpecs;
 
37630
class WinMemberExplSpec;
 
37631
class WinTypeKeywords;
 
37632
class WinFriend;
 
37633
class ExtAC;
 
37634
class ExtACBuilderCoupling;
 
37635
class ExtACSyntaxCoupling;
 
37636
class ExtACTree;
 
37637
class ExtACKeywords;
 
37638
class ExtGnu;
 
37639
class PragmaOnceUnitState;
 
37640
class PragmaOnce;
 
37641
class CMatchSyntax;
 
37642
namespace Puma {
 
37643
 
 
37644
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37645
 
 
37646
#line 37647 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37647
} // closed Puma
 
37648
 
 
37649
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37650
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37651
#include "CCExprResolveH.ah"
 
37652
#endif
 
37653
namespace Puma {
 
37654
 
 
37655
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37656
 
 
37657
#line 37658 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37658
} // closed Puma
 
37659
 
 
37660
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37661
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37662
#include "CExprResolveH.ah"
 
37663
#endif
 
37664
namespace Puma {
 
37665
 
 
37666
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37667
class CT_ReintCast : public CT_StaticCast {
 
37668
#line 37669 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37669
  friend class ::CCExprResolve;
 
37670
  friend class ::CExprResolve;
 
37671
  friend class ::WinIfExists;
 
37672
  friend class ::WinImportHandler;
 
37673
  friend class ::WinMacros;
 
37674
  friend class ::WinAsm;
 
37675
  friend class ::WinDeclSpecs;
 
37676
  friend class ::WinMemberExplSpec;
 
37677
  friend class ::WinTypeKeywords;
 
37678
  friend class ::WinFriend;
 
37679
  friend class ::ExtAC;
 
37680
  friend class ::ExtACBuilderCoupling;
 
37681
  friend class ::ExtACSyntaxCoupling;
 
37682
  friend class ::ExtACTree;
 
37683
  friend class ::ExtACKeywords;
 
37684
  friend class ::ExtGnu;
 
37685
  friend class ::PragmaOnceUnitState;
 
37686
  friend class ::PragmaOnce;
 
37687
  friend class ::CMatchSyntax;
 
37688
 
 
37689
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37690
 
 
37691
public:
 
37692
  /** Constructor.
 
37693
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
37694
   *  \param o Left arrow bracket of the type name.
 
37695
   *  \param t The type to cast to.
 
37696
   *  \param c Right array bracket of the type name.
 
37697
   *  \param e The expression to cast. */
 
37698
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
37699
    CT_StaticCast (cst, o, t, c, e) {}
 
37700
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37701
  static const char *NodeId ();
 
37702
  /** Get the name of the node. Can be compared with NodeId(). */
 
37703
  const char *NodeName () const { return NodeId (); }
 
37704
   private:
 
37705
  typedef CT_ReintCast CCExprResolveExpr;
 
37706
 
 
37707
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
37708
 public :
 
37709
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
37710
  typedef CT_ReintCast CExprResolveExpr;
 
37711
 
 
37712
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
37713
 public :
 
37714
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
37715
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37716
};
 
37717
 
 
37718
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
37719
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
 
37720
 
 
37721
#line 37722 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37722
} // closed Puma
 
37723
class CCExprResolve;
 
37724
class CExprResolve;
 
37725
class WinIfExists;
 
37726
class WinImportHandler;
 
37727
class WinMacros;
 
37728
class WinAsm;
 
37729
class WinDeclSpecs;
 
37730
class WinMemberExplSpec;
 
37731
class WinTypeKeywords;
 
37732
class WinFriend;
 
37733
class ExtAC;
 
37734
class ExtACBuilderCoupling;
 
37735
class ExtACSyntaxCoupling;
 
37736
class ExtACTree;
 
37737
class ExtACKeywords;
 
37738
class ExtGnu;
 
37739
class PragmaOnceUnitState;
 
37740
class PragmaOnce;
 
37741
class CMatchSyntax;
 
37742
namespace Puma {
 
37743
 
 
37744
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37745
 
 
37746
#line 37747 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37747
} // closed Puma
 
37748
 
 
37749
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37750
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37751
#include "CCExprResolveH.ah"
 
37752
#endif
 
37753
namespace Puma {
 
37754
 
 
37755
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37756
 
 
37757
#line 37758 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37758
} // closed Puma
 
37759
 
 
37760
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37761
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37762
#include "CExprResolveH.ah"
 
37763
#endif
 
37764
namespace Puma {
 
37765
 
 
37766
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37767
class CT_DynamicCast : public CT_StaticCast {
 
37768
#line 37769 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37769
  friend class ::CCExprResolve;
 
37770
  friend class ::CExprResolve;
 
37771
  friend class ::WinIfExists;
 
37772
  friend class ::WinImportHandler;
 
37773
  friend class ::WinMacros;
 
37774
  friend class ::WinAsm;
 
37775
  friend class ::WinDeclSpecs;
 
37776
  friend class ::WinMemberExplSpec;
 
37777
  friend class ::WinTypeKeywords;
 
37778
  friend class ::WinFriend;
 
37779
  friend class ::ExtAC;
 
37780
  friend class ::ExtACBuilderCoupling;
 
37781
  friend class ::ExtACSyntaxCoupling;
 
37782
  friend class ::ExtACTree;
 
37783
  friend class ::ExtACKeywords;
 
37784
  friend class ::ExtGnu;
 
37785
  friend class ::PragmaOnceUnitState;
 
37786
  friend class ::PragmaOnce;
 
37787
  friend class ::CMatchSyntax;
 
37788
 
 
37789
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37790
 
 
37791
public:
 
37792
  /** Constructor.
 
37793
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
37794
   *  \param o Left arrow bracket of the type name.
 
37795
   *  \param t The type to cast to.
 
37796
   *  \param c Right array bracket of the type name.
 
37797
   *  \param e The expression to cast. */
 
37798
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
37799
    CT_StaticCast (cst, o, t, c, e) {}
 
37800
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37801
  static const char *NodeId ();
 
37802
  /** Get the name of the node. Can be compared with NodeId(). */
 
37803
  const char *NodeName () const { return NodeId (); }
 
37804
   private:
 
37805
  typedef CT_DynamicCast CCExprResolveExpr;
 
37806
 
 
37807
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
37808
 public :
 
37809
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
37810
  typedef CT_DynamicCast CExprResolveExpr;
 
37811
 
 
37812
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
37813
 public :
 
37814
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
37815
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37816
};
 
37817
 
 
37818
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
37819
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
37820
 *  where 1.2 is implicitely casted from float to int. */
 
37821
 
 
37822
#line 37823 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37823
} // closed Puma
 
37824
class CCExprResolve;
 
37825
class CExprResolve;
 
37826
class WinIfExists;
 
37827
class WinImportHandler;
 
37828
class WinMacros;
 
37829
class WinAsm;
 
37830
class WinDeclSpecs;
 
37831
class WinMemberExplSpec;
 
37832
class WinTypeKeywords;
 
37833
class WinFriend;
 
37834
class ExtAC;
 
37835
class ExtACBuilderCoupling;
 
37836
class ExtACSyntaxCoupling;
 
37837
class ExtACTree;
 
37838
class ExtACKeywords;
 
37839
class ExtGnu;
 
37840
class PragmaOnceUnitState;
 
37841
class PragmaOnce;
 
37842
class CMatchSyntax;
 
37843
namespace Puma {
 
37844
 
 
37845
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37846
 
 
37847
#line 37848 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37848
} // closed Puma
 
37849
 
 
37850
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37851
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37852
#include "CCExprResolveH.ah"
 
37853
#endif
 
37854
namespace Puma {
 
37855
 
 
37856
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37857
 
 
37858
#line 37859 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37859
} // closed Puma
 
37860
 
 
37861
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37862
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37863
#include "CExprResolveH.ah"
 
37864
#endif
 
37865
namespace Puma {
 
37866
 
 
37867
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37868
class CT_ImplicitCast : public CT_Expression {
 
37869
#line 37870 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37870
  friend class ::CCExprResolve;
 
37871
  friend class ::CExprResolve;
 
37872
  friend class ::WinIfExists;
 
37873
  friend class ::WinImportHandler;
 
37874
  friend class ::WinMacros;
 
37875
  friend class ::WinAsm;
 
37876
  friend class ::WinDeclSpecs;
 
37877
  friend class ::WinMemberExplSpec;
 
37878
  friend class ::WinTypeKeywords;
 
37879
  friend class ::WinFriend;
 
37880
  friend class ::ExtAC;
 
37881
  friend class ::ExtACBuilderCoupling;
 
37882
  friend class ::ExtACSyntaxCoupling;
 
37883
  friend class ::ExtACTree;
 
37884
  friend class ::ExtACKeywords;
 
37885
  friend class ::ExtGnu;
 
37886
  friend class ::PragmaOnceUnitState;
 
37887
  friend class ::PragmaOnce;
 
37888
  friend class ::CMatchSyntax;
 
37889
 
 
37890
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37891
 
 
37892
  CTree *_expr; // casted expression
 
37893
 
 
37894
public:
 
37895
  /** Constructor.
 
37896
   *  \param e The expression that is implicitely casted. */
 
37897
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
37898
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
37899
  static const char *NodeId ();
 
37900
  /** Get the name of the node. Can be compared with NodeId(). */
 
37901
  const char *NodeName () const { return NodeId (); }
 
37902
  /** Get the number of sons. */
 
37903
  int Sons () const { return 1; }
 
37904
  /** Get the n-th son.
 
37905
   *  \param n The index of the son.
 
37906
   *  \return The n-th son or NULL. */
 
37907
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
37908
  /** Get the casted expression. */
 
37909
  CTree *Expr () const { return _expr; }
 
37910
  /** Replace a son.
 
37911
   *  \param old_son The son to replace.
 
37912
   *  \param new_son The new son. */
 
37913
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
37914
   { CTree::ReplaceSon (_expr, old_son, new_son); }
 
37915
   private:
 
37916
  typedef CT_ImplicitCast CCExprResolveExpr;
 
37917
 
 
37918
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
37919
 public :
 
37920
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
37921
  typedef CT_ImplicitCast CExprResolveExpr;
 
37922
 
 
37923
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
37924
 public :
 
37925
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
37926
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37927
};
 
37928
 
 
37929
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
37930
 *  Tree node representing a typeid expression, e.g. typeid(X). */
 
37931
 
 
37932
#line 37933 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37933
} // closed Puma
 
37934
class CCExprResolve;
 
37935
class CExprResolve;
 
37936
class WinIfExists;
 
37937
class WinImportHandler;
 
37938
class WinMacros;
 
37939
class WinAsm;
 
37940
class WinDeclSpecs;
 
37941
class WinMemberExplSpec;
 
37942
class WinTypeKeywords;
 
37943
class WinFriend;
 
37944
class ExtAC;
 
37945
class ExtACBuilderCoupling;
 
37946
class ExtACSyntaxCoupling;
 
37947
class ExtACTree;
 
37948
class ExtACKeywords;
 
37949
class ExtGnu;
 
37950
class PragmaOnceUnitState;
 
37951
class PragmaOnce;
 
37952
class CMatchSyntax;
 
37953
namespace Puma {
 
37954
 
 
37955
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37956
 
 
37957
#line 37958 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37958
} // closed Puma
 
37959
 
 
37960
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37961
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
37962
#include "CCExprResolveH.ah"
 
37963
#endif
 
37964
namespace Puma {
 
37965
 
 
37966
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37967
 
 
37968
#line 37969 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37969
} // closed Puma
 
37970
 
 
37971
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37972
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
37973
#include "CExprResolveH.ah"
 
37974
#endif
 
37975
namespace Puma {
 
37976
 
 
37977
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37978
class CT_TypeidExpr : public CT_Expression {
 
37979
#line 37980 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
37980
  friend class ::CCExprResolve;
 
37981
  friend class ::CExprResolve;
 
37982
  friend class ::WinIfExists;
 
37983
  friend class ::WinImportHandler;
 
37984
  friend class ::WinMacros;
 
37985
  friend class ::WinAsm;
 
37986
  friend class ::WinDeclSpecs;
 
37987
  friend class ::WinMemberExplSpec;
 
37988
  friend class ::WinTypeKeywords;
 
37989
  friend class ::WinFriend;
 
37990
  friend class ::ExtAC;
 
37991
  friend class ::ExtACBuilderCoupling;
 
37992
  friend class ::ExtACSyntaxCoupling;
 
37993
  friend class ::ExtACTree;
 
37994
  friend class ::ExtACKeywords;
 
37995
  friend class ::ExtGnu;
 
37996
  friend class ::PragmaOnceUnitState;
 
37997
  friend class ::PragmaOnce;
 
37998
  friend class ::CMatchSyntax;
 
37999
 
 
38000
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38001
 
 
38002
  CTree *sons[4]; // typeid, open, type_id/expr, close
 
38003
 
 
38004
public:
 
38005
  /** Constructor.
 
38006
   *  \param tid The 'typeid' operator.
 
38007
   *  \param o The left parenthesis of the type name or expression.
 
38008
   *  \param e The expression or type name for which to get the type identifier.
 
38009
   *  \param c The right parenthesis of the type name or expression. */
 
38010
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
 
38011
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
38012
    AddSon (sons[2], e); AddSon (sons[3], c);
 
38013
  }
 
38014
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38015
  static const char *NodeId ();
 
38016
  /** Get the name of the node. Can be compared with NodeId(). */
 
38017
  const char *NodeName () const { return NodeId (); }
 
38018
  /** Get the number of sons. */
 
38019
  int Sons () const { return 4; }
 
38020
  /** Get the n-th son.
 
38021
   *  \param n The index of the son.
 
38022
   *  \return The n-th son or NULL. */
 
38023
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
38024
  /** Replace a son.
 
38025
   *  \param old_son The son to replace.
 
38026
   *  \param new_son The new son. */
 
38027
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
38028
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
38029
  }
 
38030
  /** Get the typeid argument, i.e. the expression or type name for
 
38031
   *  which to get the type identifier. */
 
38032
  CTree *Arg () const { return sons[2]; }
 
38033
   private:
 
38034
  typedef CT_TypeidExpr CCExprResolveExpr;
 
38035
 
 
38036
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
38037
 public :
 
38038
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
38039
  typedef CT_TypeidExpr CExprResolveExpr;
 
38040
 
 
38041
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
38042
 public :
 
38043
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
38044
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38045
};
 
38046
 
 
38047
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
38048
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
 
38049
 
 
38050
#line 38051 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38051
} // closed Puma
 
38052
class CCExprResolve;
 
38053
class CExprResolve;
 
38054
class WinIfExists;
 
38055
class WinImportHandler;
 
38056
class WinMacros;
 
38057
class WinAsm;
 
38058
class WinDeclSpecs;
 
38059
class WinMemberExplSpec;
 
38060
class WinTypeKeywords;
 
38061
class WinFriend;
 
38062
class ExtAC;
 
38063
class ExtACBuilderCoupling;
 
38064
class ExtACSyntaxCoupling;
 
38065
class ExtACTree;
 
38066
class ExtACKeywords;
 
38067
class ExtGnu;
 
38068
class PragmaOnceUnitState;
 
38069
class PragmaOnce;
 
38070
class CMatchSyntax;
 
38071
namespace Puma {
 
38072
 
 
38073
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38074
 
 
38075
#line 38076 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38076
} // closed Puma
 
38077
 
 
38078
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38079
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38080
#include "CCExprResolveH.ah"
 
38081
#endif
 
38082
namespace Puma {
 
38083
 
 
38084
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38085
 
 
38086
#line 38087 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38087
} // closed Puma
 
38088
 
 
38089
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38090
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38091
#include "CExprResolveH.ah"
 
38092
#endif
 
38093
namespace Puma {
 
38094
 
 
38095
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38096
class CT_SizeofExpr : public CT_Expression {
 
38097
#line 38098 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38098
  friend class ::CCExprResolve;
 
38099
  friend class ::CExprResolve;
 
38100
  friend class ::WinIfExists;
 
38101
  friend class ::WinImportHandler;
 
38102
  friend class ::WinMacros;
 
38103
  friend class ::WinAsm;
 
38104
  friend class ::WinDeclSpecs;
 
38105
  friend class ::WinMemberExplSpec;
 
38106
  friend class ::WinTypeKeywords;
 
38107
  friend class ::WinFriend;
 
38108
  friend class ::ExtAC;
 
38109
  friend class ::ExtACBuilderCoupling;
 
38110
  friend class ::ExtACSyntaxCoupling;
 
38111
  friend class ::ExtACTree;
 
38112
  friend class ::ExtACKeywords;
 
38113
  friend class ::ExtGnu;
 
38114
  friend class ::PragmaOnceUnitState;
 
38115
  friend class ::PragmaOnce;
 
38116
  friend class ::CMatchSyntax;
 
38117
 
 
38118
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38119
 
 
38120
  CTree *sons[5]; // key, open, type, close, expr
 
38121
 
 
38122
public:
 
38123
  /** Constructor.
 
38124
   *  \param k The 'sizeof' keyword.
 
38125
   *  \param o Left parenthesis around the type name.
 
38126
   *  \param t The type from which to get the size.
 
38127
   *  \param c Right parenthesis around the type name. */
 
38128
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
 
38129
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
38130
    AddSon (sons[3], c); AddSon (sons[4], 0);
 
38131
  }
 
38132
  /** Constructor.
 
38133
   *  \param k The 'sizeof' keyword.
 
38134
   *  \param e The expression from which to get the size. */
 
38135
  CT_SizeofExpr (CTree *k, CTree *e) {
 
38136
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
38137
    AddSon (sons[3], 0); AddSon (sons[4], e);
 
38138
  }
 
38139
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38140
  static const char *NodeId ();
 
38141
  /** Get the name of the node. Can be compared with NodeId(). */
 
38142
  const char *NodeName () const { return NodeId (); }
 
38143
  /** Get the number of sons. */
 
38144
  int Sons () const { return CTree::Sons (sons, 5); }
 
38145
  /** Get the n-th son.
 
38146
   *  \param n The index of the son.
 
38147
   *  \return The n-th son or NULL. */
 
38148
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
38149
  /** Replace a son.
 
38150
   *  \param old_son The son to replace.
 
38151
   *  \param new_son The new son. */
 
38152
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
38153
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
38154
  }
 
38155
  /** Get the expression. */
 
38156
  CTree *Expr () const { return sons[4]; }
 
38157
  /** Get the type name. */
 
38158
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
 
38159
   private:
 
38160
  typedef CT_SizeofExpr CCExprResolveExpr;
 
38161
 
 
38162
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
38163
 public :
 
38164
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
38165
  typedef CT_SizeofExpr CExprResolveExpr;
 
38166
 
 
38167
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
38168
 public :
 
38169
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
38170
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38171
};
 
38172
 
 
38173
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
38174
 *  Tree node representing an index designator, i.e. [1]. */
 
38175
 
 
38176
#line 38177 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38177
} // closed Puma
 
38178
class CCExprResolve;
 
38179
class CExprResolve;
 
38180
class WinIfExists;
 
38181
class WinImportHandler;
 
38182
class WinMacros;
 
38183
class WinAsm;
 
38184
class WinDeclSpecs;
 
38185
class WinMemberExplSpec;
 
38186
class WinTypeKeywords;
 
38187
class WinFriend;
 
38188
class ExtAC;
 
38189
class ExtACBuilderCoupling;
 
38190
class ExtACSyntaxCoupling;
 
38191
class ExtACTree;
 
38192
class ExtACKeywords;
 
38193
class ExtGnu;
 
38194
class PragmaOnceUnitState;
 
38195
class PragmaOnce;
 
38196
class CMatchSyntax;
 
38197
namespace Puma {
 
38198
 
 
38199
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38200
 
 
38201
#line 38202 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38202
} // closed Puma
 
38203
 
 
38204
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38205
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38206
#include "CCExprResolveH.ah"
 
38207
#endif
 
38208
namespace Puma {
 
38209
 
 
38210
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38211
 
 
38212
#line 38213 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38213
} // closed Puma
 
38214
 
 
38215
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38216
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38217
#include "CExprResolveH.ah"
 
38218
#endif
 
38219
namespace Puma {
 
38220
 
 
38221
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38222
class CT_IndexDesignator : public CT_Expression {
 
38223
#line 38224 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38224
  friend class ::CCExprResolve;
 
38225
  friend class ::CExprResolve;
 
38226
  friend class ::WinIfExists;
 
38227
  friend class ::WinImportHandler;
 
38228
  friend class ::WinMacros;
 
38229
  friend class ::WinAsm;
 
38230
  friend class ::WinDeclSpecs;
 
38231
  friend class ::WinMemberExplSpec;
 
38232
  friend class ::WinTypeKeywords;
 
38233
  friend class ::WinFriend;
 
38234
  friend class ::ExtAC;
 
38235
  friend class ::ExtACBuilderCoupling;
 
38236
  friend class ::ExtACSyntaxCoupling;
 
38237
  friend class ::ExtACTree;
 
38238
  friend class ::ExtACKeywords;
 
38239
  friend class ::ExtGnu;
 
38240
  friend class ::PragmaOnceUnitState;
 
38241
  friend class ::PragmaOnce;
 
38242
  friend class ::CMatchSyntax;
 
38243
 
 
38244
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38245
 
 
38246
  CTree *sons[3]; // open, index, close
 
38247
 
 
38248
public:
 
38249
  /** Constructor.
 
38250
   *  \param o Left bracket of the index designator.
 
38251
   *  \param i The index expression.
 
38252
   *  \param c Right bracket of the index designator. */
 
38253
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
 
38254
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
 
38255
  }
 
38256
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38257
  static const char *NodeId ();
 
38258
  /** Get the name of the node. Can be compared with NodeId(). */
 
38259
  const char *NodeName () const { return NodeId (); }
 
38260
  /** Get the number of sons. */
 
38261
  int Sons () const { return 3; }
 
38262
  /** Get the n-th son.
 
38263
   *  \param n The index of the son.
 
38264
   *  \return The n-th son or NULL. */
 
38265
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
38266
  /** Replace a son.
 
38267
   *  \param old_son The son to replace.
 
38268
   *  \param new_son The new son. */
 
38269
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
38270
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
38271
  }
 
38272
   private:
 
38273
  typedef CT_IndexDesignator CCExprResolveExpr;
 
38274
 
 
38275
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
38276
 public :
 
38277
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
38278
  typedef CT_IndexDesignator CExprResolveExpr;
 
38279
 
 
38280
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
38281
 public :
 
38282
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
38283
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38284
};
 
38285
 
 
38286
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
38287
 *  Tree node representing a member designator, e.g. .a. */
 
38288
 
 
38289
#line 38290 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38290
} // closed Puma
 
38291
class CCExprResolve;
 
38292
class CExprResolve;
 
38293
class WinIfExists;
 
38294
class WinImportHandler;
 
38295
class WinMacros;
 
38296
class WinAsm;
 
38297
class WinDeclSpecs;
 
38298
class WinMemberExplSpec;
 
38299
class WinTypeKeywords;
 
38300
class WinFriend;
 
38301
class ExtAC;
 
38302
class ExtACBuilderCoupling;
 
38303
class ExtACSyntaxCoupling;
 
38304
class ExtACTree;
 
38305
class ExtACKeywords;
 
38306
class ExtGnu;
 
38307
class PragmaOnceUnitState;
 
38308
class PragmaOnce;
 
38309
class CMatchSyntax;
 
38310
namespace Puma {
 
38311
 
 
38312
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38313
 
 
38314
#line 38315 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38315
} // closed Puma
 
38316
 
 
38317
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38318
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
38319
#include "CCExprResolveH.ah"
 
38320
#endif
 
38321
namespace Puma {
 
38322
 
 
38323
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38324
 
 
38325
#line 38326 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38326
} // closed Puma
 
38327
 
 
38328
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38329
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
38330
#include "CExprResolveH.ah"
 
38331
#endif
 
38332
namespace Puma {
 
38333
 
 
38334
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38335
class CT_MembDesignator : public CT_Expression {
 
38336
#line 38337 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38337
  friend class ::CCExprResolve;
 
38338
  friend class ::CExprResolve;
 
38339
  friend class ::WinIfExists;
 
38340
  friend class ::WinImportHandler;
 
38341
  friend class ::WinMacros;
 
38342
  friend class ::WinAsm;
 
38343
  friend class ::WinDeclSpecs;
 
38344
  friend class ::WinMemberExplSpec;
 
38345
  friend class ::WinTypeKeywords;
 
38346
  friend class ::WinFriend;
 
38347
  friend class ::ExtAC;
 
38348
  friend class ::ExtACBuilderCoupling;
 
38349
  friend class ::ExtACSyntaxCoupling;
 
38350
  friend class ::ExtACTree;
 
38351
  friend class ::ExtACKeywords;
 
38352
  friend class ::ExtGnu;
 
38353
  friend class ::PragmaOnceUnitState;
 
38354
  friend class ::PragmaOnce;
 
38355
  friend class ::CMatchSyntax;
 
38356
 
 
38357
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38358
 
 
38359
  CTree *sons[2]; // dot, member
 
38360
 
 
38361
public:
 
38362
  /** Constructor.
 
38363
   *  \param d The dot before the member name.
 
38364
   *  \param m The member name. */
 
38365
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
38366
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38367
  static const char *NodeId ();
 
38368
  /** Get the name of the node. Can be compared with NodeId(). */
 
38369
  const char *NodeName () const { return NodeId (); }
 
38370
  /** Get the number of sons. */
 
38371
  int Sons () const { return 2; }
 
38372
  /** Get the n-th son.
 
38373
   *  \param n The index of the son.
 
38374
   *  \return The n-th son or NULL. */
 
38375
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
38376
  /** Replace a son.
 
38377
   *  \param old_son The son to replace.
 
38378
   *  \param new_son The new son. */
 
38379
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
38380
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
38381
  }
 
38382
   private:
 
38383
  typedef CT_MembDesignator CCExprResolveExpr;
 
38384
 
 
38385
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
38386
 public :
 
38387
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
38388
  typedef CT_MembDesignator CExprResolveExpr;
 
38389
 
 
38390
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
38391
 public :
 
38392
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
38393
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38394
};
 
38395
 
 
38396
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
38397
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
 
38398
 
 
38399
#line 38400 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38400
} // closed Puma
 
38401
class CCExprResolve;
 
38402
class CExprResolve;
 
38403
class WinIfExists;
 
38404
class WinImportHandler;
 
38405
class WinMacros;
 
38406
class WinAsm;
 
38407
class WinDeclSpecs;
 
38408
class WinMemberExplSpec;
 
38409
class WinTypeKeywords;
 
38410
class WinFriend;
 
38411
class ExtAC;
 
38412
class ExtACBuilderCoupling;
 
38413
class ExtACSyntaxCoupling;
 
38414
class ExtACTree;
 
38415
class ExtACKeywords;
 
38416
class ExtGnu;
 
38417
class PragmaOnceUnitState;
 
38418
class PragmaOnce;
 
38419
class CMatchSyntax;
 
38420
namespace Puma {
 
38421
 
 
38422
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38423
class CT_DesignatorSeq : public CT_List, public CSemValue {
 
38424
#line 38425 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38425
  friend class ::CCExprResolve;
 
38426
  friend class ::CExprResolve;
 
38427
  friend class ::WinIfExists;
 
38428
  friend class ::WinImportHandler;
 
38429
  friend class ::WinMacros;
 
38430
  friend class ::WinAsm;
 
38431
  friend class ::WinDeclSpecs;
 
38432
  friend class ::WinMemberExplSpec;
 
38433
  friend class ::WinTypeKeywords;
 
38434
  friend class ::WinFriend;
 
38435
  friend class ::ExtAC;
 
38436
  friend class ::ExtACBuilderCoupling;
 
38437
  friend class ::ExtACSyntaxCoupling;
 
38438
  friend class ::ExtACTree;
 
38439
  friend class ::ExtACKeywords;
 
38440
  friend class ::ExtGnu;
 
38441
  friend class ::PragmaOnceUnitState;
 
38442
  friend class ::PragmaOnce;
 
38443
  friend class ::CMatchSyntax;
 
38444
 
 
38445
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38446
 
 
38447
public:
 
38448
  /** Constructor.
 
38449
   *  \param size Initial number of designators. */
 
38450
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
38451
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38452
  static const char *NodeId ();
 
38453
  /** Get the name of the node. Can be compared with NodeId(). */
 
38454
  const char *NodeName () const { return NodeId (); }
 
38455
 
 
38456
  /** Get the type of the entity to initialize. */
 
38457
  CTypeInfo *Type () const { return type; }
 
38458
  /** Get the value of the entity to initialize. */
 
38459
  CExprValue *Value () const { return value; }
 
38460
  /** Get the semantic value object. */
 
38461
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
38462
};
 
38463
 
 
38464
/*****************************************************************************/
 
38465
/*                                                                           */
 
38466
/*                         Declaration specifiers                            */
 
38467
/*                                                                           */
 
38468
/*****************************************************************************/
 
38469
 
 
38470
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
38471
 *  Base class for all tree nodes representing declaration specifiers. */
 
38472
 
 
38473
#line 38474 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38474
} // closed Puma
 
38475
class CCExprResolve;
 
38476
class CExprResolve;
 
38477
class WinIfExists;
 
38478
class WinImportHandler;
 
38479
class WinMacros;
 
38480
class WinAsm;
 
38481
class WinDeclSpecs;
 
38482
class WinMemberExplSpec;
 
38483
class WinTypeKeywords;
 
38484
class WinFriend;
 
38485
class ExtAC;
 
38486
class ExtACBuilderCoupling;
 
38487
class ExtACSyntaxCoupling;
 
38488
class ExtACTree;
 
38489
class ExtACKeywords;
 
38490
class ExtGnu;
 
38491
class PragmaOnceUnitState;
 
38492
class PragmaOnce;
 
38493
class CMatchSyntax;
 
38494
namespace Puma {
 
38495
 
 
38496
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38497
class CT_DeclSpec : public CTree {
 
38498
#line 38499 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38499
  friend class ::CCExprResolve;
 
38500
  friend class ::CExprResolve;
 
38501
  friend class ::WinIfExists;
 
38502
  friend class ::WinImportHandler;
 
38503
  friend class ::WinMacros;
 
38504
  friend class ::WinAsm;
 
38505
  friend class ::WinDeclSpecs;
 
38506
  friend class ::WinMemberExplSpec;
 
38507
  friend class ::WinTypeKeywords;
 
38508
  friend class ::WinFriend;
 
38509
  friend class ::ExtAC;
 
38510
  friend class ::ExtACBuilderCoupling;
 
38511
  friend class ::ExtACSyntaxCoupling;
 
38512
  friend class ::ExtACTree;
 
38513
  friend class ::ExtACKeywords;
 
38514
  friend class ::ExtGnu;
 
38515
  friend class ::PragmaOnceUnitState;
 
38516
  friend class ::PragmaOnce;
 
38517
  friend class ::CMatchSyntax;
 
38518
 
 
38519
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38520
 
 
38521
protected:
 
38522
  /** Constructor. */
 
38523
  CT_DeclSpec () {}
 
38524
};
 
38525
 
 
38526
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
38527
 *  Tree node representing a primitive declaration specifier. */
 
38528
 
 
38529
#line 38530 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38530
} // closed Puma
 
38531
class CCExprResolve;
 
38532
class CExprResolve;
 
38533
class WinIfExists;
 
38534
class WinImportHandler;
 
38535
class WinMacros;
 
38536
class WinAsm;
 
38537
class WinDeclSpecs;
 
38538
class WinMemberExplSpec;
 
38539
class WinTypeKeywords;
 
38540
class WinFriend;
 
38541
class ExtAC;
 
38542
class ExtACBuilderCoupling;
 
38543
class ExtACSyntaxCoupling;
 
38544
class ExtACTree;
 
38545
class ExtACKeywords;
 
38546
class ExtGnu;
 
38547
class PragmaOnceUnitState;
 
38548
class PragmaOnce;
 
38549
class CMatchSyntax;
 
38550
namespace Puma {
 
38551
 
 
38552
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38553
class CT_PrimDeclSpec : public CT_DeclSpec {
 
38554
#line 38555 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38555
  friend class ::CCExprResolve;
 
38556
  friend class ::CExprResolve;
 
38557
  friend class ::WinIfExists;
 
38558
  friend class ::WinImportHandler;
 
38559
  friend class ::WinMacros;
 
38560
  friend class ::WinAsm;
 
38561
  friend class ::WinDeclSpecs;
 
38562
  friend class ::WinMemberExplSpec;
 
38563
  friend class ::WinTypeKeywords;
 
38564
  friend class ::WinFriend;
 
38565
  friend class ::ExtAC;
 
38566
  friend class ::ExtACBuilderCoupling;
 
38567
  friend class ::ExtACSyntaxCoupling;
 
38568
  friend class ::ExtACTree;
 
38569
  friend class ::ExtACKeywords;
 
38570
  friend class ::ExtGnu;
 
38571
  friend class ::PragmaOnceUnitState;
 
38572
  friend class ::PragmaOnce;
 
38573
  friend class ::CMatchSyntax;
 
38574
 
 
38575
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38576
 
 
38577
public:
 
38578
  /** Declaration specifier types. */
 
38579
  enum Type { 
 
38580
    PDS_FRIEND,    /** friend */
 
38581
    PDS_TYPEDEF,   /** typedef */
 
38582
    PDS_AUTO,      /** auto */
 
38583
    PDS_REGISTER,  /** register */
 
38584
    PDS_STATIC,    /** static */
 
38585
    PDS_EXTERN,    /** extern */
 
38586
    PDS_MUTABLE,   /** mutable */
 
38587
    PDS_INLINE,    /** inline */
 
38588
    PDS_VIRTUAL,   /** virtual */
 
38589
    PDS_EXPLICIT,  /** explicit */
 
38590
    PDS_CONST,     /** const */
 
38591
    PDS_VOLATILE,  /** volatile */
 
38592
    PDS_RESTRICT,  /** restrict */
 
38593
    PDS_CHAR,      /** char */
 
38594
    PDS_WCHAR_T,   /** wchar_t */
 
38595
    PDS_BOOL,      /** bool */
 
38596
    PDS_SHORT,     /** short */
 
38597
    PDS_INT,       /** int */
 
38598
    PDS_LONG,      /** long */
 
38599
    PDS_SIGNED,    /** signed */
 
38600
    PDS_UNSIGNED,  /** unsigned */
 
38601
    PDS_FLOAT,     /** float */
 
38602
    PDS_DOUBLE,    /** double */
 
38603
    PDS_VOID,      /** void */
 
38604
    // AspectC++ specific type specifier
 
38605
    PDS_UNKNOWN_T, /** unknown_t */
 
38606
    // Win specific declaration specifiers
 
38607
    PDS_CDECL,     /** __cdecl */
 
38608
    PDS_STDCALL,   /** __stdcall */
 
38609
    PDS_FASTCALL,  /** __fastcall */
 
38610
    PDS_INT64,     /** __int64 */
 
38611
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
38612
    PDS_NUM        /** Number of declaration specifier types. */
 
38613
  };
 
38614
 
 
38615
private:
 
38616
  Type _type;
 
38617
  CTree *_token; // has to be a CT_Token
 
38618
 
 
38619
  void determine_type ();
 
38620
 
 
38621
public:
 
38622
  /** Constructor.
 
38623
   *  \param t The token containing the declaration specifier. */
 
38624
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
38625
  /** Constructor.
 
38626
   *  \param t The declaration specifier type. */
 
38627
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
38628
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38629
  static const char *NodeId ();
 
38630
  /** Get the name of the node. Can be compared with NodeId(). */
 
38631
  const char *NodeName () const { return NodeId (); }
 
38632
  /** Get the number of sons. */
 
38633
  int Sons () const { return _token ? 1 : 0; }
 
38634
  /** Get the n-th son.
 
38635
   *  \param n The index of the son.
 
38636
   *  \return The n-th son or NULL. */
 
38637
  CTree *Son (int n) const 
 
38638
   { return (n == 0) ? _token : (CTree*)0; }
 
38639
  /** Get the textual representation of the declaration specifier.
 
38640
   *  \return The string representation or " ". */
 
38641
  const char *SpecText () const 
 
38642
   { return _token ? _token->token ()->text () : " "; }
 
38643
  /** Get the declaration specifier type. */
 
38644
  Type SpecType () const { return _type; }
 
38645
  /** Number of declaration specifier types. */
 
38646
  static const int NumTypes = PDS_NUM;
 
38647
  /** Replace a son.
 
38648
   *  \param old_son The son to replace.
 
38649
   *  \param new_son The new son. */
 
38650
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
38651
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
38652
    determine_type ();
 
38653
  }
 
38654
};
 
38655
 
 
38656
/** \class CT_NamedType CTree.h Puma/CTree.h
 
38657
 *  Tree node representing a named type, e.g. (int*)a. 
 
38658
 *  where int* is a type with a generated name. */
 
38659
 
 
38660
#line 38661 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38661
} // closed Puma
 
38662
class CCExprResolve;
 
38663
class CExprResolve;
 
38664
class WinIfExists;
 
38665
class WinImportHandler;
 
38666
class WinMacros;
 
38667
class WinAsm;
 
38668
class WinDeclSpecs;
 
38669
class WinMemberExplSpec;
 
38670
class WinTypeKeywords;
 
38671
class WinFriend;
 
38672
class ExtAC;
 
38673
class ExtACBuilderCoupling;
 
38674
class ExtACSyntaxCoupling;
 
38675
class ExtACTree;
 
38676
class ExtACKeywords;
 
38677
class ExtGnu;
 
38678
class PragmaOnceUnitState;
 
38679
class PragmaOnce;
 
38680
class CMatchSyntax;
 
38681
namespace Puma {
 
38682
 
 
38683
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38684
class CT_NamedType : public CT_DeclSpec, public CSemObject {
 
38685
#line 38686 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38686
  friend class ::CCExprResolve;
 
38687
  friend class ::CExprResolve;
 
38688
  friend class ::WinIfExists;
 
38689
  friend class ::WinImportHandler;
 
38690
  friend class ::WinMacros;
 
38691
  friend class ::WinAsm;
 
38692
  friend class ::WinDeclSpecs;
 
38693
  friend class ::WinMemberExplSpec;
 
38694
  friend class ::WinTypeKeywords;
 
38695
  friend class ::WinFriend;
 
38696
  friend class ::ExtAC;
 
38697
  friend class ::ExtACBuilderCoupling;
 
38698
  friend class ::ExtACSyntaxCoupling;
 
38699
  friend class ::ExtACTree;
 
38700
  friend class ::ExtACKeywords;
 
38701
  friend class ::ExtGnu;
 
38702
  friend class ::PragmaOnceUnitState;
 
38703
  friend class ::PragmaOnce;
 
38704
  friend class ::CMatchSyntax;
 
38705
 
 
38706
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38707
 
 
38708
  CTree *sons[2]; // declspecs, declarator
 
38709
 
 
38710
public:
 
38711
  /** Constructor.
 
38712
   *  \param dss The declaration specifier sequence of the type.
 
38713
   *  \param d The type declarator. */
 
38714
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
38715
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38716
  static const char *NodeId ();
 
38717
  /** Get the name of the node. Can be compared with NodeId(). */
 
38718
  const char *NodeName () const { return NodeId (); }
 
38719
  /** Get the number of sons. */
 
38720
  int Sons () const { return CTree::Sons (sons, 2); }
 
38721
  /** Get the n-th son.
 
38722
   *  \param n The index of the son.
 
38723
   *  \return The n-th son or NULL. */
 
38724
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
38725
  /** Get the declarator. */
 
38726
  CTree *Declarator () const { return sons[1]; }
 
38727
  /** Replace a son.
 
38728
   *  \param old_son The son to replace.
 
38729
   *  \param new_son The new son. */
 
38730
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
38731
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
38732
  }
 
38733
  /** Get the semantic information object. */
 
38734
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
38735
};
 
38736
      
 
38737
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
38738
 *  Tree node representing a class specifier, e.g. class X. */
 
38739
 
 
38740
#line 38741 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38741
} // closed Puma
 
38742
class CCExprResolve;
 
38743
class CExprResolve;
 
38744
class WinIfExists;
 
38745
class WinImportHandler;
 
38746
class WinMacros;
 
38747
class WinAsm;
 
38748
class WinDeclSpecs;
 
38749
class WinMemberExplSpec;
 
38750
class WinTypeKeywords;
 
38751
class WinFriend;
 
38752
class ExtAC;
 
38753
class ExtACBuilderCoupling;
 
38754
class ExtACSyntaxCoupling;
 
38755
class ExtACTree;
 
38756
class ExtACKeywords;
 
38757
class ExtGnu;
 
38758
class PragmaOnceUnitState;
 
38759
class PragmaOnce;
 
38760
class CMatchSyntax;
 
38761
namespace Puma {
 
38762
 
 
38763
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38764
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
 
38765
#line 38766 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38766
  friend class ::CCExprResolve;
 
38767
  friend class ::CExprResolve;
 
38768
  friend class ::WinIfExists;
 
38769
  friend class ::WinImportHandler;
 
38770
  friend class ::WinMacros;
 
38771
  friend class ::WinAsm;
 
38772
  friend class ::WinDeclSpecs;
 
38773
  friend class ::WinMemberExplSpec;
 
38774
  friend class ::WinTypeKeywords;
 
38775
  friend class ::WinFriend;
 
38776
  friend class ::ExtAC;
 
38777
  friend class ::ExtACBuilderCoupling;
 
38778
  friend class ::ExtACSyntaxCoupling;
 
38779
  friend class ::ExtACTree;
 
38780
  friend class ::ExtACKeywords;
 
38781
  friend class ::ExtGnu;
 
38782
  friend class ::PragmaOnceUnitState;
 
38783
  friend class ::PragmaOnce;
 
38784
  friend class ::CMatchSyntax;
 
38785
 
 
38786
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38787
 
 
38788
  CTree *sons[2]; // key, name
 
38789
  
 
38790
public:
 
38791
  /** Constructor.
 
38792
   *  \param k The 'class' or 'struct' keyword.
 
38793
   *  \param n The class name. */
 
38794
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
38795
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38796
  static const char *NodeId ();
 
38797
  /** Get the name of the node. Can be compared with NodeId(). */
 
38798
  const char *NodeName () const { return NodeId (); }
 
38799
  /** Get the number of sons. */
 
38800
  int Sons () const { return 2; }
 
38801
  /** Get the n-th son.
 
38802
   *  \param n The index of the son.
 
38803
   *  \return The n-th son or NULL. */
 
38804
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
38805
  /** Get the class name. */
 
38806
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
38807
  /** Get the semantic information object. */
 
38808
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
38809
  /** Replace a son.
 
38810
   *  \param old_son The son to replace.
 
38811
   *  \param new_son The new son. */
 
38812
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
38813
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
38814
  }
 
38815
};
 
38816
 
 
38817
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
38818
 *  Tree node representing a union specifier, e.g. union X. */
 
38819
 
 
38820
#line 38821 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38821
} // closed Puma
 
38822
class CCExprResolve;
 
38823
class CExprResolve;
 
38824
class WinIfExists;
 
38825
class WinImportHandler;
 
38826
class WinMacros;
 
38827
class WinAsm;
 
38828
class WinDeclSpecs;
 
38829
class WinMemberExplSpec;
 
38830
class WinTypeKeywords;
 
38831
class WinFriend;
 
38832
class ExtAC;
 
38833
class ExtACBuilderCoupling;
 
38834
class ExtACSyntaxCoupling;
 
38835
class ExtACTree;
 
38836
class ExtACKeywords;
 
38837
class ExtGnu;
 
38838
class PragmaOnceUnitState;
 
38839
class PragmaOnce;
 
38840
class CMatchSyntax;
 
38841
namespace Puma {
 
38842
 
 
38843
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38844
class CT_UnionSpec : public CT_ClassSpec {
 
38845
#line 38846 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38846
  friend class ::CCExprResolve;
 
38847
  friend class ::CExprResolve;
 
38848
  friend class ::WinIfExists;
 
38849
  friend class ::WinImportHandler;
 
38850
  friend class ::WinMacros;
 
38851
  friend class ::WinAsm;
 
38852
  friend class ::WinDeclSpecs;
 
38853
  friend class ::WinMemberExplSpec;
 
38854
  friend class ::WinTypeKeywords;
 
38855
  friend class ::WinFriend;
 
38856
  friend class ::ExtAC;
 
38857
  friend class ::ExtACBuilderCoupling;
 
38858
  friend class ::ExtACSyntaxCoupling;
 
38859
  friend class ::ExtACTree;
 
38860
  friend class ::ExtACKeywords;
 
38861
  friend class ::ExtGnu;
 
38862
  friend class ::PragmaOnceUnitState;
 
38863
  friend class ::PragmaOnce;
 
38864
  friend class ::CMatchSyntax;
 
38865
 
 
38866
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38867
 
 
38868
public:
 
38869
  /** Constructor.
 
38870
   *  \param k The 'union' keyword.
 
38871
   *  \param n The name of the union. */
 
38872
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
38873
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38874
  static const char *NodeId ();
 
38875
  /** Get the name of the node. Can be compared with NodeId(). */
 
38876
  const char *NodeName () const { return NodeId (); }
 
38877
};
 
38878
 
 
38879
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
38880
 *  Tree node representing an enumeration specifier, e.g. enum X. */
 
38881
 
 
38882
#line 38883 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38883
} // closed Puma
 
38884
class CCExprResolve;
 
38885
class CExprResolve;
 
38886
class WinIfExists;
 
38887
class WinImportHandler;
 
38888
class WinMacros;
 
38889
class WinAsm;
 
38890
class WinDeclSpecs;
 
38891
class WinMemberExplSpec;
 
38892
class WinTypeKeywords;
 
38893
class WinFriend;
 
38894
class ExtAC;
 
38895
class ExtACBuilderCoupling;
 
38896
class ExtACSyntaxCoupling;
 
38897
class ExtACTree;
 
38898
class ExtACKeywords;
 
38899
class ExtGnu;
 
38900
class PragmaOnceUnitState;
 
38901
class PragmaOnce;
 
38902
class CMatchSyntax;
 
38903
namespace Puma {
 
38904
 
 
38905
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38906
class CT_EnumSpec : public CT_ClassSpec {
 
38907
#line 38908 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38908
  friend class ::CCExprResolve;
 
38909
  friend class ::CExprResolve;
 
38910
  friend class ::WinIfExists;
 
38911
  friend class ::WinImportHandler;
 
38912
  friend class ::WinMacros;
 
38913
  friend class ::WinAsm;
 
38914
  friend class ::WinDeclSpecs;
 
38915
  friend class ::WinMemberExplSpec;
 
38916
  friend class ::WinTypeKeywords;
 
38917
  friend class ::WinFriend;
 
38918
  friend class ::ExtAC;
 
38919
  friend class ::ExtACBuilderCoupling;
 
38920
  friend class ::ExtACSyntaxCoupling;
 
38921
  friend class ::ExtACTree;
 
38922
  friend class ::ExtACKeywords;
 
38923
  friend class ::ExtGnu;
 
38924
  friend class ::PragmaOnceUnitState;
 
38925
  friend class ::PragmaOnce;
 
38926
  friend class ::CMatchSyntax;
 
38927
 
 
38928
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38929
 
 
38930
public:
 
38931
  /** Constructor.
 
38932
   *  \param k The 'enum' keyword. 
 
38933
   *  \param n The name of the enumeration. */
 
38934
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
38935
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
38936
  static const char *NodeId ();
 
38937
  /** Get the name of the node. Can be compared with NodeId(). */
 
38938
  const char *NodeName () const { return NodeId (); }
 
38939
};
 
38940
 
 
38941
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
38942
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
 
38943
 
 
38944
#line 38945 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38945
} // closed Puma
 
38946
class CCExprResolve;
 
38947
class CExprResolve;
 
38948
class WinIfExists;
 
38949
class WinImportHandler;
 
38950
class WinMacros;
 
38951
class WinAsm;
 
38952
class WinDeclSpecs;
 
38953
class WinMemberExplSpec;
 
38954
class WinTypeKeywords;
 
38955
class WinFriend;
 
38956
class ExtAC;
 
38957
class ExtACBuilderCoupling;
 
38958
class ExtACSyntaxCoupling;
 
38959
class ExtACTree;
 
38960
class ExtACKeywords;
 
38961
class ExtGnu;
 
38962
class PragmaOnceUnitState;
 
38963
class PragmaOnce;
 
38964
class CMatchSyntax;
 
38965
namespace Puma {
 
38966
 
 
38967
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38968
class CT_ExceptionSpec : public CT_DeclSpec {
 
38969
#line 38970 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
38970
  friend class ::CCExprResolve;
 
38971
  friend class ::CExprResolve;
 
38972
  friend class ::WinIfExists;
 
38973
  friend class ::WinImportHandler;
 
38974
  friend class ::WinMacros;
 
38975
  friend class ::WinAsm;
 
38976
  friend class ::WinDeclSpecs;
 
38977
  friend class ::WinMemberExplSpec;
 
38978
  friend class ::WinTypeKeywords;
 
38979
  friend class ::WinFriend;
 
38980
  friend class ::ExtAC;
 
38981
  friend class ::ExtACBuilderCoupling;
 
38982
  friend class ::ExtACSyntaxCoupling;
 
38983
  friend class ::ExtACTree;
 
38984
  friend class ::ExtACKeywords;
 
38985
  friend class ::ExtGnu;
 
38986
  friend class ::PragmaOnceUnitState;
 
38987
  friend class ::PragmaOnce;
 
38988
  friend class ::CMatchSyntax;
 
38989
 
 
38990
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
38991
 
 
38992
  CTree *sons[2]; // throw, type_id_list
 
38993
  
 
38994
public:
 
38995
  /** Constructor.
 
38996
   *  \param k The 'throw' keyword.
 
38997
   *  \param l The type list for the exception type to throw. */
 
38998
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
38999
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39000
  static const char *NodeId ();
 
39001
  /** Get the name of the node. Can be compared with NodeId(). */
 
39002
  const char *NodeName () const { return NodeId (); }
 
39003
  /** Get the number of sons. */
 
39004
  int Sons () const { return 2; }
 
39005
  /** Get the n-th son.
 
39006
   *  \param n The index of the son.
 
39007
   *  \return The n-th son or NULL. */
 
39008
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
39009
  /** Get the exception type list. */
 
39010
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
39011
  /** Replace a son.
 
39012
   *  \param old_son The son to replace.
 
39013
   *  \param new_son The new son. */
 
39014
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39015
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
39016
  }
 
39017
};
 
39018
 
 
39019
/*****************************************************************************/
 
39020
/*                                                                           */
 
39021
/*                              Declarations                                 */
 
39022
/*                                                                           */
 
39023
/*****************************************************************************/
 
39024
 
 
39025
/** \class CT_Decl CTree.h Puma/CTree.h
 
39026
 *  Base class for all tree nodes representing declarations. */
 
39027
 
 
39028
#line 39029 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39029
} // closed Puma
 
39030
class CCExprResolve;
 
39031
class CExprResolve;
 
39032
class WinIfExists;
 
39033
class WinImportHandler;
 
39034
class WinMacros;
 
39035
class WinAsm;
 
39036
class WinDeclSpecs;
 
39037
class WinMemberExplSpec;
 
39038
class WinTypeKeywords;
 
39039
class WinFriend;
 
39040
class ExtAC;
 
39041
class ExtACBuilderCoupling;
 
39042
class ExtACSyntaxCoupling;
 
39043
class ExtACTree;
 
39044
class ExtACKeywords;
 
39045
class ExtGnu;
 
39046
class PragmaOnceUnitState;
 
39047
class PragmaOnce;
 
39048
class CMatchSyntax;
 
39049
namespace Puma {
 
39050
 
 
39051
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39052
class CT_Decl : public CTree {
 
39053
#line 39054 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39054
  friend class ::CCExprResolve;
 
39055
  friend class ::CExprResolve;
 
39056
  friend class ::WinIfExists;
 
39057
  friend class ::WinImportHandler;
 
39058
  friend class ::WinMacros;
 
39059
  friend class ::WinAsm;
 
39060
  friend class ::WinDeclSpecs;
 
39061
  friend class ::WinMemberExplSpec;
 
39062
  friend class ::WinTypeKeywords;
 
39063
  friend class ::WinFriend;
 
39064
  friend class ::ExtAC;
 
39065
  friend class ::ExtACBuilderCoupling;
 
39066
  friend class ::ExtACSyntaxCoupling;
 
39067
  friend class ::ExtACTree;
 
39068
  friend class ::ExtACKeywords;
 
39069
  friend class ::ExtGnu;
 
39070
  friend class ::PragmaOnceUnitState;
 
39071
  friend class ::PragmaOnce;
 
39072
  friend class ::CMatchSyntax;
 
39073
 
 
39074
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39075
 
 
39076
  CT_LinkageSpec *_linkage;
 
39077
  
 
39078
protected:
 
39079
  /** Constructor. */
 
39080
  CT_Decl () : _linkage (0) {}
 
39081
  
 
39082
public:
 
39083
  /** Set the linkage of the declared entity.
 
39084
   *  \param l The linkage specifiers. */
 
39085
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
39086
  /** Get the linkage specifiers. */
 
39087
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
39088
  /** Get this. */
 
39089
  virtual CT_Decl *IsDeclaration () { return this; }
 
39090
};
 
39091
 
 
39092
/** \class CT_Program CTree.h Puma/CTree.h
 
39093
 *  Root node of C/C++ syntax tree. */
 
39094
 
 
39095
#line 39096 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39096
} // closed Puma
 
39097
class CCExprResolve;
 
39098
class CExprResolve;
 
39099
class WinIfExists;
 
39100
class WinImportHandler;
 
39101
class WinMacros;
 
39102
class WinAsm;
 
39103
class WinDeclSpecs;
 
39104
class WinMemberExplSpec;
 
39105
class WinTypeKeywords;
 
39106
class WinFriend;
 
39107
class ExtAC;
 
39108
class ExtACBuilderCoupling;
 
39109
class ExtACSyntaxCoupling;
 
39110
class ExtACTree;
 
39111
class ExtACKeywords;
 
39112
class ExtGnu;
 
39113
class PragmaOnceUnitState;
 
39114
class PragmaOnce;
 
39115
class CMatchSyntax;
 
39116
namespace Puma {
 
39117
 
 
39118
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39119
class CT_Program : public CT_DeclList, public CSemScope {
 
39120
#line 39121 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39121
  friend class ::CCExprResolve;
 
39122
  friend class ::CExprResolve;
 
39123
  friend class ::WinIfExists;
 
39124
  friend class ::WinImportHandler;
 
39125
  friend class ::WinMacros;
 
39126
  friend class ::WinAsm;
 
39127
  friend class ::WinDeclSpecs;
 
39128
  friend class ::WinMemberExplSpec;
 
39129
  friend class ::WinTypeKeywords;
 
39130
  friend class ::WinFriend;
 
39131
  friend class ::ExtAC;
 
39132
  friend class ::ExtACBuilderCoupling;
 
39133
  friend class ::ExtACSyntaxCoupling;
 
39134
  friend class ::ExtACTree;
 
39135
  friend class ::ExtACKeywords;
 
39136
  friend class ::ExtGnu;
 
39137
  friend class ::PragmaOnceUnitState;
 
39138
  friend class ::PragmaOnce;
 
39139
  friend class ::CMatchSyntax;
 
39140
 
 
39141
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39142
 
 
39143
public:
 
39144
  /** Constructor.
 
39145
   *  \param size The initial number of declarations in the program.
 
39146
   *  \param incr The initial increment count. */
 
39147
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
39148
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39149
  static const char *NodeId ();
 
39150
  /** Get the name of the node. Can be compared with NodeId(). */
 
39151
  const char *NodeName () const { return NodeId (); }
 
39152
  /** Get the semantic scope object. */
 
39153
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
39154
};
 
39155
   
 
39156
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
39157
 *  Tree node representing an object declaration, e.g. int *i. */
 
39158
 
 
39159
#line 39160 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39160
} // closed Puma
 
39161
class CCExprResolve;
 
39162
class CExprResolve;
 
39163
class WinIfExists;
 
39164
class WinImportHandler;
 
39165
class WinMacros;
 
39166
class WinAsm;
 
39167
class WinDeclSpecs;
 
39168
class WinMemberExplSpec;
 
39169
class WinTypeKeywords;
 
39170
class WinFriend;
 
39171
class ExtAC;
 
39172
class ExtACBuilderCoupling;
 
39173
class ExtACSyntaxCoupling;
 
39174
class ExtACTree;
 
39175
class ExtACKeywords;
 
39176
class ExtGnu;
 
39177
class PragmaOnceUnitState;
 
39178
class PragmaOnce;
 
39179
class CMatchSyntax;
 
39180
namespace Puma {
 
39181
 
 
39182
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39183
class CT_ObjDecl : public CT_Decl {
 
39184
#line 39185 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39185
  friend class ::CCExprResolve;
 
39186
  friend class ::CExprResolve;
 
39187
  friend class ::WinIfExists;
 
39188
  friend class ::WinImportHandler;
 
39189
  friend class ::WinMacros;
 
39190
  friend class ::WinAsm;
 
39191
  friend class ::WinDeclSpecs;
 
39192
  friend class ::WinMemberExplSpec;
 
39193
  friend class ::WinTypeKeywords;
 
39194
  friend class ::WinFriend;
 
39195
  friend class ::ExtAC;
 
39196
  friend class ::ExtACBuilderCoupling;
 
39197
  friend class ::ExtACSyntaxCoupling;
 
39198
  friend class ::ExtACTree;
 
39199
  friend class ::ExtACKeywords;
 
39200
  friend class ::ExtGnu;
 
39201
  friend class ::PragmaOnceUnitState;
 
39202
  friend class ::PragmaOnce;
 
39203
  friend class ::CMatchSyntax;
 
39204
 
 
39205
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39206
 
 
39207
  CTree *sons[3]; // declspecs, declarators, colon
 
39208
 
 
39209
public:
 
39210
  /** Constructor.
 
39211
   *  \param dsl The declaration specifier sequence.
 
39212
   *  \param dl The declarator list.
 
39213
   *  \param c Optional colon. */
 
39214
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
 
39215
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
 
39216
  }
 
39217
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39218
  static const char *NodeId ();
 
39219
  /** Get the name of the node. Can be compared with NodeId(). */
 
39220
  const char *NodeName () const { return NodeId (); }
 
39221
  /** Get the number of sons. */
 
39222
  int Sons () const { return 3; }
 
39223
  /** Get the n-th son.
 
39224
   *  \param n The index of the son.
 
39225
   *  \return The n-th son or NULL. */
 
39226
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
39227
  /** Get the declaration specifier sequence. */
 
39228
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
39229
  /** Get the declarator list. */
 
39230
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
39231
  /** Replace a son.
 
39232
   *  \param old_son The son to replace.
 
39233
   *  \param new_son The new son. */
 
39234
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39235
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
39236
  }
 
39237
};
 
39238
 
 
39239
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
39240
 *  Tree node representing a template declaration. */
 
39241
 
 
39242
#line 39243 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39243
} // closed Puma
 
39244
class CCExprResolve;
 
39245
class CExprResolve;
 
39246
class WinIfExists;
 
39247
class WinImportHandler;
 
39248
class WinMacros;
 
39249
class WinAsm;
 
39250
class WinDeclSpecs;
 
39251
class WinMemberExplSpec;
 
39252
class WinTypeKeywords;
 
39253
class WinFriend;
 
39254
class ExtAC;
 
39255
class ExtACBuilderCoupling;
 
39256
class ExtACSyntaxCoupling;
 
39257
class ExtACTree;
 
39258
class ExtACKeywords;
 
39259
class ExtGnu;
 
39260
class PragmaOnceUnitState;
 
39261
class PragmaOnce;
 
39262
class CMatchSyntax;
 
39263
namespace Puma {
 
39264
 
 
39265
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39266
class CT_TemplateDecl : public CT_Decl, public CSemScope {
 
39267
#line 39268 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39268
  friend class ::CCExprResolve;
 
39269
  friend class ::CExprResolve;
 
39270
  friend class ::WinIfExists;
 
39271
  friend class ::WinImportHandler;
 
39272
  friend class ::WinMacros;
 
39273
  friend class ::WinAsm;
 
39274
  friend class ::WinDeclSpecs;
 
39275
  friend class ::WinMemberExplSpec;
 
39276
  friend class ::WinTypeKeywords;
 
39277
  friend class ::WinFriend;
 
39278
  friend class ::ExtAC;
 
39279
  friend class ::ExtACBuilderCoupling;
 
39280
  friend class ::ExtACSyntaxCoupling;
 
39281
  friend class ::ExtACTree;
 
39282
  friend class ::ExtACKeywords;
 
39283
  friend class ::ExtGnu;
 
39284
  friend class ::PragmaOnceUnitState;
 
39285
  friend class ::PragmaOnce;
 
39286
  friend class ::CMatchSyntax;
 
39287
 
 
39288
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39289
 
 
39290
  CTree *sons[3]; // export, param_list, decl
 
39291
 
 
39292
public:
 
39293
  /** Constructor.
 
39294
   *  \param e Optional 'export' keyword. 
 
39295
   *  \param p The template parameter list.
 
39296
   *  \param d The class or function declaration. */
 
39297
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
 
39298
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
 
39299
  }
 
39300
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39301
  static const char *NodeId ();
 
39302
  /** Get the name of the node. Can be compared with NodeId(). */
 
39303
  const char *NodeName () const { return NodeId (); }
 
39304
  /** Get the number of sons. */
 
39305
  int Sons () const { return CTree::Sons (sons, 3); }
 
39306
  /** Get the n-th son.
 
39307
   *  \param n The index of the son.
 
39308
   *  \return The n-th son or NULL. */
 
39309
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
39310
  /** Replace a son.
 
39311
   *  \param old_son The son to replace.
 
39312
   *  \param new_son The new son. */
 
39313
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39314
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
 
39315
  }
 
39316
  /** Get the 'export' keyword. */
 
39317
  CTree *Export () const { return sons[0]; }
 
39318
  /** Get the template parameter list. */
 
39319
  CT_TemplateParamList *Parameters () const { 
 
39320
    return (CT_TemplateParamList*)sons[1]; 
 
39321
  }
 
39322
  /** Get the class or function declaration. */
 
39323
  CTree *Declaration () const { return sons[2]; }
 
39324
  /** Get the semantic scope object. */
 
39325
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
39326
};
 
39327
 
 
39328
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
39329
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
 
39330
 
 
39331
#line 39332 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39332
} // closed Puma
 
39333
class CCExprResolve;
 
39334
class CExprResolve;
 
39335
class WinIfExists;
 
39336
class WinImportHandler;
 
39337
class WinMacros;
 
39338
class WinAsm;
 
39339
class WinDeclSpecs;
 
39340
class WinMemberExplSpec;
 
39341
class WinTypeKeywords;
 
39342
class WinFriend;
 
39343
class ExtAC;
 
39344
class ExtACBuilderCoupling;
 
39345
class ExtACSyntaxCoupling;
 
39346
class ExtACTree;
 
39347
class ExtACKeywords;
 
39348
class ExtGnu;
 
39349
class PragmaOnceUnitState;
 
39350
class PragmaOnce;
 
39351
class CMatchSyntax;
 
39352
namespace Puma {
 
39353
 
 
39354
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39355
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
 
39356
#line 39357 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39357
  friend class ::CCExprResolve;
 
39358
  friend class ::CExprResolve;
 
39359
  friend class ::WinIfExists;
 
39360
  friend class ::WinImportHandler;
 
39361
  friend class ::WinMacros;
 
39362
  friend class ::WinAsm;
 
39363
  friend class ::WinDeclSpecs;
 
39364
  friend class ::WinMemberExplSpec;
 
39365
  friend class ::WinTypeKeywords;
 
39366
  friend class ::WinFriend;
 
39367
  friend class ::ExtAC;
 
39368
  friend class ::ExtACBuilderCoupling;
 
39369
  friend class ::ExtACSyntaxCoupling;
 
39370
  friend class ::ExtACTree;
 
39371
  friend class ::ExtACKeywords;
 
39372
  friend class ::ExtGnu;
 
39373
  friend class ::PragmaOnceUnitState;
 
39374
  friend class ::PragmaOnce;
 
39375
  friend class ::CMatchSyntax;
 
39376
 
 
39377
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39378
 
 
39379
protected:
 
39380
  /** Constructor. */
 
39381
  CT_TemplateParamDecl () {}
 
39382
  
 
39383
public:
 
39384
  /** Get the template default argument. */
 
39385
  virtual CT_ExprList *DefaultArgument () const = 0;
 
39386
  /** Get the semantic information object. */
 
39387
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
39388
};
 
39389
 
 
39390
 
 
39391
#line 39392 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39392
} // closed Puma
 
39393
class CCExprResolve;
 
39394
class CExprResolve;
 
39395
class WinIfExists;
 
39396
class WinImportHandler;
 
39397
class WinMacros;
 
39398
class WinAsm;
 
39399
class WinDeclSpecs;
 
39400
class WinMemberExplSpec;
 
39401
class WinTypeKeywords;
 
39402
class WinFriend;
 
39403
class ExtAC;
 
39404
class ExtACBuilderCoupling;
 
39405
class ExtACSyntaxCoupling;
 
39406
class ExtACTree;
 
39407
class ExtACKeywords;
 
39408
class ExtGnu;
 
39409
class PragmaOnceUnitState;
 
39410
class PragmaOnce;
 
39411
class CMatchSyntax;
 
39412
namespace Puma {
 
39413
 
 
39414
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39415
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
 
39416
#line 39417 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39417
  friend class ::CCExprResolve;
 
39418
  friend class ::CExprResolve;
 
39419
  friend class ::WinIfExists;
 
39420
  friend class ::WinImportHandler;
 
39421
  friend class ::WinMacros;
 
39422
  friend class ::WinAsm;
 
39423
  friend class ::WinDeclSpecs;
 
39424
  friend class ::WinMemberExplSpec;
 
39425
  friend class ::WinTypeKeywords;
 
39426
  friend class ::WinFriend;
 
39427
  friend class ::ExtAC;
 
39428
  friend class ::ExtACBuilderCoupling;
 
39429
  friend class ::ExtACSyntaxCoupling;
 
39430
  friend class ::ExtACTree;
 
39431
  friend class ::ExtACKeywords;
 
39432
  friend class ::ExtGnu;
 
39433
  friend class ::PragmaOnceUnitState;
 
39434
  friend class ::PragmaOnce;
 
39435
  friend class ::CMatchSyntax;
 
39436
 
 
39437
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39438
 
 
39439
  CTree *sons[3]; // declspecs, declarator, init
 
39440
 
 
39441
public:
 
39442
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
 
39443
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
 
39444
  }
 
39445
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39446
  static const char *NodeId ();
 
39447
  /** Get the name of the node. Can be compared with NodeId(). */
 
39448
  const char *NodeName () const { return NodeId (); }
 
39449
  /** Get the number of sons. */
 
39450
  int Sons () const { return CTree::Sons (sons, 3); }
 
39451
  /** Get the n-th son.
 
39452
   *  \param n The index of the son.
 
39453
   *  \return The n-th son or NULL. */
 
39454
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
39455
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
39456
  CTree *Declarator () const { return sons[1]; }
 
39457
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
 
39458
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
39459
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
39460
  /** Replace a son.
 
39461
   *  \param old_son The son to replace.
 
39462
   *  \param new_son The new son. */
 
39463
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39464
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
39465
  }
 
39466
};
 
39467
 
 
39468
 
 
39469
#line 39470 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39470
} // closed Puma
 
39471
class CCExprResolve;
 
39472
class CExprResolve;
 
39473
class WinIfExists;
 
39474
class WinImportHandler;
 
39475
class WinMacros;
 
39476
class WinAsm;
 
39477
class WinDeclSpecs;
 
39478
class WinMemberExplSpec;
 
39479
class WinTypeKeywords;
 
39480
class WinFriend;
 
39481
class ExtAC;
 
39482
class ExtACBuilderCoupling;
 
39483
class ExtACSyntaxCoupling;
 
39484
class ExtACTree;
 
39485
class ExtACKeywords;
 
39486
class ExtGnu;
 
39487
class PragmaOnceUnitState;
 
39488
class PragmaOnce;
 
39489
class CMatchSyntax;
 
39490
namespace Puma {
 
39491
 
 
39492
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39493
class CT_TypeParamDecl : public CT_TemplateParamDecl {
 
39494
#line 39495 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39495
  friend class ::CCExprResolve;
 
39496
  friend class ::CExprResolve;
 
39497
  friend class ::WinIfExists;
 
39498
  friend class ::WinImportHandler;
 
39499
  friend class ::WinMacros;
 
39500
  friend class ::WinAsm;
 
39501
  friend class ::WinDeclSpecs;
 
39502
  friend class ::WinMemberExplSpec;
 
39503
  friend class ::WinTypeKeywords;
 
39504
  friend class ::WinFriend;
 
39505
  friend class ::ExtAC;
 
39506
  friend class ::ExtACBuilderCoupling;
 
39507
  friend class ::ExtACSyntaxCoupling;
 
39508
  friend class ::ExtACTree;
 
39509
  friend class ::ExtACKeywords;
 
39510
  friend class ::ExtGnu;
 
39511
  friend class ::PragmaOnceUnitState;
 
39512
  friend class ::PragmaOnce;
 
39513
  friend class ::CMatchSyntax;
 
39514
 
 
39515
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39516
 
 
39517
  CTree *sons[4]; // params, key, id, init
 
39518
 
 
39519
public:
 
39520
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
 
39521
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
39522
    AddSon (sons[2], id); AddSon (sons[3], i);
 
39523
  }
 
39524
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39525
  static const char *NodeId ();
 
39526
  /** Get the name of the node. Can be compared with NodeId(). */
 
39527
  const char *NodeName () const { return NodeId (); }
 
39528
  /** Get the number of sons. */
 
39529
  int Sons () const { return CTree::Sons (sons, 4); }
 
39530
  /** Get the n-th son.
 
39531
   *  \param n The index of the son.
 
39532
   *  \return The n-th son or NULL. */
 
39533
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
39534
  CT_TemplateParamList *Parameters () const { 
 
39535
    return (CT_TemplateParamList*)sons[0]; 
 
39536
  }
 
39537
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
39538
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
 
39539
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
39540
  /** Replace a son.
 
39541
   *  \param old_son The son to replace.
 
39542
   *  \param new_son The new son. */
 
39543
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39544
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
39545
  }
 
39546
};
 
39547
 
 
39548
 
 
39549
#line 39550 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39550
} // closed Puma
 
39551
class CCExprResolve;
 
39552
class CExprResolve;
 
39553
class WinIfExists;
 
39554
class WinImportHandler;
 
39555
class WinMacros;
 
39556
class WinAsm;
 
39557
class WinDeclSpecs;
 
39558
class WinMemberExplSpec;
 
39559
class WinTypeKeywords;
 
39560
class WinFriend;
 
39561
class ExtAC;
 
39562
class ExtACBuilderCoupling;
 
39563
class ExtACSyntaxCoupling;
 
39564
class ExtACTree;
 
39565
class ExtACKeywords;
 
39566
class ExtGnu;
 
39567
class PragmaOnceUnitState;
 
39568
class PragmaOnce;
 
39569
class CMatchSyntax;
 
39570
namespace Puma {
 
39571
 
 
39572
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39573
class CT_EnumDef : public CT_Decl, public CSemObject {
 
39574
#line 39575 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39575
  friend class ::CCExprResolve;
 
39576
  friend class ::CExprResolve;
 
39577
  friend class ::WinIfExists;
 
39578
  friend class ::WinImportHandler;
 
39579
  friend class ::WinMacros;
 
39580
  friend class ::WinAsm;
 
39581
  friend class ::WinDeclSpecs;
 
39582
  friend class ::WinMemberExplSpec;
 
39583
  friend class ::WinTypeKeywords;
 
39584
  friend class ::WinFriend;
 
39585
  friend class ::ExtAC;
 
39586
  friend class ::ExtACBuilderCoupling;
 
39587
  friend class ::ExtACSyntaxCoupling;
 
39588
  friend class ::ExtACTree;
 
39589
  friend class ::ExtACKeywords;
 
39590
  friend class ::ExtGnu;
 
39591
  friend class ::PragmaOnceUnitState;
 
39592
  friend class ::PragmaOnce;
 
39593
  friend class ::CMatchSyntax;
 
39594
 
 
39595
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39596
 
 
39597
  CTree *sons[3]; // key, name, enumerators
 
39598
 
 
39599
public:
 
39600
  CT_EnumDef (CTree *k, CTree *n) {
 
39601
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
 
39602
  }
 
39603
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39604
  static const char *NodeId ();
 
39605
  /** Get the name of the node. Can be compared with NodeId(). */
 
39606
  const char *NodeName () const { return NodeId (); }
 
39607
  /** Get the number of sons. */
 
39608
  int Sons () const { return CTree::Sons (sons, 3); }
 
39609
  /** Get the n-th son.
 
39610
   *  \param n The index of the son.
 
39611
   *  \return The n-th son or NULL. */
 
39612
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
39613
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
39614
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
 
39615
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
39616
  /** Replace a son.
 
39617
   *  \param old_son The son to replace.
 
39618
   *  \param new_son The new son. */
 
39619
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39620
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
39621
  }
 
39622
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
39623
};
 
39624
 
 
39625
 
 
39626
#line 39627 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39627
} // closed Puma
 
39628
class CCExprResolve;
 
39629
class CExprResolve;
 
39630
class WinIfExists;
 
39631
class WinImportHandler;
 
39632
class WinMacros;
 
39633
class WinAsm;
 
39634
class WinDeclSpecs;
 
39635
class WinMemberExplSpec;
 
39636
class WinTypeKeywords;
 
39637
class WinFriend;
 
39638
class ExtAC;
 
39639
class ExtACBuilderCoupling;
 
39640
class ExtACSyntaxCoupling;
 
39641
class ExtACTree;
 
39642
class ExtACKeywords;
 
39643
class ExtGnu;
 
39644
class PragmaOnceUnitState;
 
39645
class PragmaOnce;
 
39646
class CMatchSyntax;
 
39647
namespace Puma {
 
39648
 
 
39649
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39650
class CT_Enumerator : public CT_Decl, public CSemObject {
 
39651
#line 39652 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39652
  friend class ::CCExprResolve;
 
39653
  friend class ::CExprResolve;
 
39654
  friend class ::WinIfExists;
 
39655
  friend class ::WinImportHandler;
 
39656
  friend class ::WinMacros;
 
39657
  friend class ::WinAsm;
 
39658
  friend class ::WinDeclSpecs;
 
39659
  friend class ::WinMemberExplSpec;
 
39660
  friend class ::WinTypeKeywords;
 
39661
  friend class ::WinFriend;
 
39662
  friend class ::ExtAC;
 
39663
  friend class ::ExtACBuilderCoupling;
 
39664
  friend class ::ExtACSyntaxCoupling;
 
39665
  friend class ::ExtACTree;
 
39666
  friend class ::ExtACKeywords;
 
39667
  friend class ::ExtGnu;
 
39668
  friend class ::PragmaOnceUnitState;
 
39669
  friend class ::PragmaOnce;
 
39670
  friend class ::CMatchSyntax;
 
39671
 
 
39672
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39673
 
 
39674
  CTree *sons[2]; // name, init
 
39675
 
 
39676
public:
 
39677
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
39678
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39679
  static const char *NodeId ();
 
39680
  /** Get the name of the node. Can be compared with NodeId(). */
 
39681
  const char *NodeName () const { return NodeId (); }
 
39682
  /** Get the number of sons. */
 
39683
  int Sons () const { return CTree::Sons (sons, 2); }
 
39684
  /** Get the n-th son.
 
39685
   *  \param n The index of the son.
 
39686
   *  \return The n-th son or NULL. */
 
39687
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
39688
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
39689
  void Initializer (CTree *i) { AddSon (sons[1], i); }
 
39690
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
39691
  /** Replace a son.
 
39692
   *  \param old_son The son to replace.
 
39693
   *  \param new_son The new son. */
 
39694
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39695
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
 
39696
  }
 
39697
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
39698
};
 
39699
 
 
39700
 
 
39701
#line 39702 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39702
} // closed Puma
 
39703
class CCExprResolve;
 
39704
class CExprResolve;
 
39705
class WinIfExists;
 
39706
class WinImportHandler;
 
39707
class WinMacros;
 
39708
class WinAsm;
 
39709
class WinDeclSpecs;
 
39710
class WinMemberExplSpec;
 
39711
class WinTypeKeywords;
 
39712
class WinFriend;
 
39713
class ExtAC;
 
39714
class ExtACBuilderCoupling;
 
39715
class ExtACSyntaxCoupling;
 
39716
class ExtACTree;
 
39717
class ExtACKeywords;
 
39718
class ExtGnu;
 
39719
class PragmaOnceUnitState;
 
39720
class PragmaOnce;
 
39721
class CMatchSyntax;
 
39722
namespace Puma {
 
39723
 
 
39724
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39725
class CT_FctDef : public CT_Decl, public CSemObject {
 
39726
#line 39727 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39727
  friend class ::CCExprResolve;
 
39728
  friend class ::CExprResolve;
 
39729
  friend class ::WinIfExists;
 
39730
  friend class ::WinImportHandler;
 
39731
  friend class ::WinMacros;
 
39732
  friend class ::WinAsm;
 
39733
  friend class ::WinDeclSpecs;
 
39734
  friend class ::WinMemberExplSpec;
 
39735
  friend class ::WinTypeKeywords;
 
39736
  friend class ::WinFriend;
 
39737
  friend class ::ExtAC;
 
39738
  friend class ::ExtACBuilderCoupling;
 
39739
  friend class ::ExtACSyntaxCoupling;
 
39740
  friend class ::ExtACTree;
 
39741
  friend class ::ExtACKeywords;
 
39742
  friend class ::ExtGnu;
 
39743
  friend class ::PragmaOnceUnitState;
 
39744
  friend class ::PragmaOnce;
 
39745
  friend class ::CMatchSyntax;
 
39746
 
 
39747
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39748
 
 
39749
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
 
39750
 
 
39751
public:
 
39752
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
 
39753
             CTree *b, CTree *hs) {
 
39754
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
39755
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
39756
    AddSon (sons[6], hs); 
 
39757
  }
 
39758
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39759
  static const char *NodeId ();
 
39760
  /** Get the name of the node. Can be compared with NodeId(). */
 
39761
  const char *NodeName () const { return NodeId (); }
 
39762
  /** Get the number of sons. */
 
39763
  int Sons () const { return CTree::Sons (sons, 7); }
 
39764
  /** Get the n-th son.
 
39765
   *  \param n The index of the son.
 
39766
   *  \return The n-th son or NULL. */
 
39767
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
39768
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
39769
  CTree *Declarator () const { return sons[1]; }
 
39770
  CT_Token *TryKey () const { return (CT_Token*)sons[2]; }
 
39771
  CTree *CtorInit () const { return sons[3]; }
 
39772
  CT_ArgDeclSeq *ArgDeclSeq () const { return (CT_ArgDeclSeq*)sons[4]; }
 
39773
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
 
39774
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
 
39775
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
39776
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
39777
  void Body (CTree *b) { AddSon (sons[5], b); }
 
39778
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
 
39779
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
39780
    AddSon (sons[5], b); AddSon (sons[6], h);
 
39781
  }
 
39782
  /** Replace a son.
 
39783
   *  \param old_son The son to replace.
 
39784
   *  \param new_son The new son. */
 
39785
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39786
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
39787
  }
 
39788
};
 
39789
 
 
39790
 
 
39791
#line 39792 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39792
} // closed Puma
 
39793
class CCExprResolve;
 
39794
class CExprResolve;
 
39795
class WinIfExists;
 
39796
class WinImportHandler;
 
39797
class WinMacros;
 
39798
class WinAsm;
 
39799
class WinDeclSpecs;
 
39800
class WinMemberExplSpec;
 
39801
class WinTypeKeywords;
 
39802
class WinFriend;
 
39803
class ExtAC;
 
39804
class ExtACBuilderCoupling;
 
39805
class ExtACSyntaxCoupling;
 
39806
class ExtACTree;
 
39807
class ExtACKeywords;
 
39808
class ExtGnu;
 
39809
class PragmaOnceUnitState;
 
39810
class PragmaOnce;
 
39811
class CMatchSyntax;
 
39812
namespace Puma {
 
39813
 
 
39814
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39815
class CT_AsmDef : public CT_Decl {
 
39816
#line 39817 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39817
  friend class ::CCExprResolve;
 
39818
  friend class ::CExprResolve;
 
39819
  friend class ::WinIfExists;
 
39820
  friend class ::WinImportHandler;
 
39821
  friend class ::WinMacros;
 
39822
  friend class ::WinAsm;
 
39823
  friend class ::WinDeclSpecs;
 
39824
  friend class ::WinMemberExplSpec;
 
39825
  friend class ::WinTypeKeywords;
 
39826
  friend class ::WinFriend;
 
39827
  friend class ::ExtAC;
 
39828
  friend class ::ExtACBuilderCoupling;
 
39829
  friend class ::ExtACSyntaxCoupling;
 
39830
  friend class ::ExtACTree;
 
39831
  friend class ::ExtACKeywords;
 
39832
  friend class ::ExtGnu;
 
39833
  friend class ::PragmaOnceUnitState;
 
39834
  friend class ::PragmaOnce;
 
39835
  friend class ::CMatchSyntax;
 
39836
 
 
39837
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39838
 
 
39839
  CTree *sons[5]; // asm, open, str, close, semi_colon
 
39840
 
 
39841
public:
 
39842
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
 
39843
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
39844
    AddSon (sons[3], c); AddSon (sons[4], sc); 
 
39845
  }
 
39846
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39847
  static const char *NodeId ();
 
39848
  /** Get the name of the node. Can be compared with NodeId(). */
 
39849
  const char *NodeName () const { return NodeId (); }
 
39850
  /** Get the number of sons. */
 
39851
  int Sons () const { return 5; }
 
39852
  /** Get the n-th son.
 
39853
   *  \param n The index of the son.
 
39854
   *  \return The n-th son or NULL. */
 
39855
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
39856
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
39857
  /** Replace a son.
 
39858
   *  \param old_son The son to replace.
 
39859
   *  \param new_son The new son. */
 
39860
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39861
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
39862
  }
 
39863
};
 
39864
 
 
39865
 
 
39866
#line 39867 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39867
} // closed Puma
 
39868
class CCExprResolve;
 
39869
class CExprResolve;
 
39870
class WinIfExists;
 
39871
class WinImportHandler;
 
39872
class WinMacros;
 
39873
class WinAsm;
 
39874
class WinDeclSpecs;
 
39875
class WinMemberExplSpec;
 
39876
class WinTypeKeywords;
 
39877
class WinFriend;
 
39878
class ExtAC;
 
39879
class ExtACBuilderCoupling;
 
39880
class ExtACSyntaxCoupling;
 
39881
class ExtACTree;
 
39882
class ExtACKeywords;
 
39883
class ExtGnu;
 
39884
class PragmaOnceUnitState;
 
39885
class PragmaOnce;
 
39886
class CMatchSyntax;
 
39887
namespace Puma {
 
39888
 
 
39889
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39890
class CT_Handler : public CT_Decl, public CSemScope {
 
39891
#line 39892 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39892
  friend class ::CCExprResolve;
 
39893
  friend class ::CExprResolve;
 
39894
  friend class ::WinIfExists;
 
39895
  friend class ::WinImportHandler;
 
39896
  friend class ::WinMacros;
 
39897
  friend class ::WinAsm;
 
39898
  friend class ::WinDeclSpecs;
 
39899
  friend class ::WinMemberExplSpec;
 
39900
  friend class ::WinTypeKeywords;
 
39901
  friend class ::WinFriend;
 
39902
  friend class ::ExtAC;
 
39903
  friend class ::ExtACBuilderCoupling;
 
39904
  friend class ::ExtACSyntaxCoupling;
 
39905
  friend class ::ExtACTree;
 
39906
  friend class ::ExtACKeywords;
 
39907
  friend class ::ExtGnu;
 
39908
  friend class ::PragmaOnceUnitState;
 
39909
  friend class ::PragmaOnce;
 
39910
  friend class ::CMatchSyntax;
 
39911
 
 
39912
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39913
 
 
39914
  CTree *sons[3]; // catch, exception_decl, stmt
 
39915
 
 
39916
public:
 
39917
  CT_Handler (CTree *c, CTree *e, CTree *s) {
 
39918
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
 
39919
  }
 
39920
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
39921
  static const char *NodeId ();
 
39922
  /** Get the name of the node. Can be compared with NodeId(). */
 
39923
  const char *NodeName () const { return NodeId (); }
 
39924
  /** Get the number of sons. */
 
39925
  int Sons () const { return 3; }
 
39926
  /** Get the n-th son.
 
39927
   *  \param n The index of the son.
 
39928
   *  \return The n-th son or NULL. */
 
39929
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
39930
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
39931
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
39932
  /** Replace a son.
 
39933
   *  \param old_son The son to replace.
 
39934
   *  \param new_son The new son. */
 
39935
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
39936
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
39937
  }
 
39938
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
39939
};
 
39940
 
 
39941
 
 
39942
#line 39943 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39943
} // closed Puma
 
39944
class CCExprResolve;
 
39945
class CExprResolve;
 
39946
class WinIfExists;
 
39947
class WinImportHandler;
 
39948
class WinMacros;
 
39949
class WinAsm;
 
39950
class WinDeclSpecs;
 
39951
class WinMemberExplSpec;
 
39952
class WinTypeKeywords;
 
39953
class WinFriend;
 
39954
class ExtAC;
 
39955
class ExtACBuilderCoupling;
 
39956
class ExtACSyntaxCoupling;
 
39957
class ExtACTree;
 
39958
class ExtACKeywords;
 
39959
class ExtGnu;
 
39960
class PragmaOnceUnitState;
 
39961
class PragmaOnce;
 
39962
class CMatchSyntax;
 
39963
namespace Puma {
 
39964
 
 
39965
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39966
class CT_LinkageSpec : public CT_Decl {
 
39967
#line 39968 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
39968
  friend class ::CCExprResolve;
 
39969
  friend class ::CExprResolve;
 
39970
  friend class ::WinIfExists;
 
39971
  friend class ::WinImportHandler;
 
39972
  friend class ::WinMacros;
 
39973
  friend class ::WinAsm;
 
39974
  friend class ::WinDeclSpecs;
 
39975
  friend class ::WinMemberExplSpec;
 
39976
  friend class ::WinTypeKeywords;
 
39977
  friend class ::WinFriend;
 
39978
  friend class ::ExtAC;
 
39979
  friend class ::ExtACBuilderCoupling;
 
39980
  friend class ::ExtACSyntaxCoupling;
 
39981
  friend class ::ExtACTree;
 
39982
  friend class ::ExtACKeywords;
 
39983
  friend class ::ExtGnu;
 
39984
  friend class ::PragmaOnceUnitState;
 
39985
  friend class ::PragmaOnce;
 
39986
  friend class ::CMatchSyntax;
 
39987
 
 
39988
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
39989
 
 
39990
  CTree *sons[5]; // extern, str, open, decls, close
 
39991
 
 
39992
public:
 
39993
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
 
39994
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
39995
    AddSon (sons[3], d); AddSon (sons[4], c);
 
39996
    if (isList ())
 
39997
      ((CT_DeclList*)Decls ())->Linkage (this);
 
39998
    else
 
39999
      ((CT_Decl*)Decls ())->Linkage (this);
 
40000
  }
 
40001
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40002
  static const char *NodeId ();
 
40003
  /** Get the name of the node. Can be compared with NodeId(). */
 
40004
  const char *NodeName () const { return NodeId (); }
 
40005
  /** Get the number of sons. */
 
40006
  int Sons () const { return CTree::Sons (sons, 5); }
 
40007
  /** Get the n-th son.
 
40008
   *  \param n The index of the son.
 
40009
   *  \return The n-th son or NULL. */
 
40010
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
40011
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
 
40012
  CTree *Decls () const { return sons[3]; }
 
40013
  bool isList () const {
 
40014
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
 
40015
  }
 
40016
  /** Replace a son.
 
40017
   *  \param old_son The son to replace.
 
40018
   *  \param new_son The new son. */
 
40019
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40020
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
40021
  }
 
40022
};
 
40023
 
 
40024
 
 
40025
#line 40026 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40026
} // closed Puma
 
40027
class CCExprResolve;
 
40028
class CExprResolve;
 
40029
class WinIfExists;
 
40030
class WinImportHandler;
 
40031
class WinMacros;
 
40032
class WinAsm;
 
40033
class WinDeclSpecs;
 
40034
class WinMemberExplSpec;
 
40035
class WinTypeKeywords;
 
40036
class WinFriend;
 
40037
class ExtAC;
 
40038
class ExtACBuilderCoupling;
 
40039
class ExtACSyntaxCoupling;
 
40040
class ExtACTree;
 
40041
class ExtACKeywords;
 
40042
class ExtGnu;
 
40043
class PragmaOnceUnitState;
 
40044
class PragmaOnce;
 
40045
class CMatchSyntax;
 
40046
namespace Puma {
 
40047
 
 
40048
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40049
class CT_ArgDecl : public CT_Decl, public CSemObject {
 
40050
#line 40051 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40051
  friend class ::CCExprResolve;
 
40052
  friend class ::CExprResolve;
 
40053
  friend class ::WinIfExists;
 
40054
  friend class ::WinImportHandler;
 
40055
  friend class ::WinMacros;
 
40056
  friend class ::WinAsm;
 
40057
  friend class ::WinDeclSpecs;
 
40058
  friend class ::WinMemberExplSpec;
 
40059
  friend class ::WinTypeKeywords;
 
40060
  friend class ::WinFriend;
 
40061
  friend class ::ExtAC;
 
40062
  friend class ::ExtACBuilderCoupling;
 
40063
  friend class ::ExtACSyntaxCoupling;
 
40064
  friend class ::ExtACTree;
 
40065
  friend class ::ExtACKeywords;
 
40066
  friend class ::ExtGnu;
 
40067
  friend class ::PragmaOnceUnitState;
 
40068
  friend class ::PragmaOnce;
 
40069
  friend class ::CMatchSyntax;
 
40070
 
 
40071
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40072
 
 
40073
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
 
40074
 
 
40075
public:
 
40076
  CT_ArgDecl (CTree *dsl, CTree *d) {
 
40077
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
40078
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
 
40079
  }
 
40080
  CT_ArgDecl (CTree *ellipsis) {
 
40081
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
40082
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
 
40083
  }
 
40084
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40085
  static const char *NodeId ();
 
40086
  /** Get the name of the node. Can be compared with NodeId(). */
 
40087
  const char *NodeName () const { return NodeId (); }
 
40088
  /** Get the number of sons. */
 
40089
  int Sons () const { return CTree::Sons (sons, 4); }
 
40090
  /** Get the n-th son.
 
40091
   *  \param n The index of the son.
 
40092
   *  \return The n-th son or NULL. */
 
40093
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
40094
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
40095
  CTree *Declarator () const { return sons[1]; }
 
40096
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
40097
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
 
40098
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
40099
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
40100
  /** Replace a son.
 
40101
   *  \param old_son The son to replace.
 
40102
   *  \param new_son The new son. */
 
40103
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40104
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
40105
  }
 
40106
};
 
40107
 
 
40108
 
 
40109
#line 40110 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40110
} // closed Puma
 
40111
class CCExprResolve;
 
40112
class CExprResolve;
 
40113
class WinIfExists;
 
40114
class WinImportHandler;
 
40115
class WinMacros;
 
40116
class WinAsm;
 
40117
class WinDeclSpecs;
 
40118
class WinMemberExplSpec;
 
40119
class WinTypeKeywords;
 
40120
class WinFriend;
 
40121
class ExtAC;
 
40122
class ExtACBuilderCoupling;
 
40123
class ExtACSyntaxCoupling;
 
40124
class ExtACTree;
 
40125
class ExtACKeywords;
 
40126
class ExtGnu;
 
40127
class PragmaOnceUnitState;
 
40128
class PragmaOnce;
 
40129
class CMatchSyntax;
 
40130
namespace Puma {
 
40131
 
 
40132
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40133
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
 
40134
#line 40135 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40135
  friend class ::CCExprResolve;
 
40136
  friend class ::CExprResolve;
 
40137
  friend class ::WinIfExists;
 
40138
  friend class ::WinImportHandler;
 
40139
  friend class ::WinMacros;
 
40140
  friend class ::WinAsm;
 
40141
  friend class ::WinDeclSpecs;
 
40142
  friend class ::WinMemberExplSpec;
 
40143
  friend class ::WinTypeKeywords;
 
40144
  friend class ::WinFriend;
 
40145
  friend class ::ExtAC;
 
40146
  friend class ::ExtACBuilderCoupling;
 
40147
  friend class ::ExtACSyntaxCoupling;
 
40148
  friend class ::ExtACTree;
 
40149
  friend class ::ExtACKeywords;
 
40150
  friend class ::ExtGnu;
 
40151
  friend class ::PragmaOnceUnitState;
 
40152
  friend class ::PragmaOnce;
 
40153
  friend class ::CMatchSyntax;
 
40154
 
 
40155
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40156
 
 
40157
public:
 
40158
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
 
40159
   CT_DeclList (size, 2) { AddProperties (props); }
 
40160
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40161
  static const char *NodeId ();
 
40162
  /** Get the name of the node. Can be compared with NodeId(). */
 
40163
  const char *NodeName () const { return NodeId (); }
 
40164
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
40165
};
 
40166
 
 
40167
 
 
40168
#line 40169 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40169
} // closed Puma
 
40170
class CCExprResolve;
 
40171
class CExprResolve;
 
40172
class WinIfExists;
 
40173
class WinImportHandler;
 
40174
class WinMacros;
 
40175
class WinAsm;
 
40176
class WinDeclSpecs;
 
40177
class WinMemberExplSpec;
 
40178
class WinTypeKeywords;
 
40179
class WinFriend;
 
40180
class ExtAC;
 
40181
class ExtACBuilderCoupling;
 
40182
class ExtACSyntaxCoupling;
 
40183
class ExtACTree;
 
40184
class ExtACKeywords;
 
40185
class ExtGnu;
 
40186
class PragmaOnceUnitState;
 
40187
class PragmaOnce;
 
40188
class CMatchSyntax;
 
40189
namespace Puma {
 
40190
 
 
40191
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40192
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
 
40193
#line 40194 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40194
  friend class ::CCExprResolve;
 
40195
  friend class ::CExprResolve;
 
40196
  friend class ::WinIfExists;
 
40197
  friend class ::WinImportHandler;
 
40198
  friend class ::WinMacros;
 
40199
  friend class ::WinAsm;
 
40200
  friend class ::WinDeclSpecs;
 
40201
  friend class ::WinMemberExplSpec;
 
40202
  friend class ::WinTypeKeywords;
 
40203
  friend class ::WinFriend;
 
40204
  friend class ::ExtAC;
 
40205
  friend class ::ExtACBuilderCoupling;
 
40206
  friend class ::ExtACSyntaxCoupling;
 
40207
  friend class ::ExtACTree;
 
40208
  friend class ::ExtACKeywords;
 
40209
  friend class ::ExtGnu;
 
40210
  friend class ::PragmaOnceUnitState;
 
40211
  friend class ::PragmaOnce;
 
40212
  friend class ::CMatchSyntax;
 
40213
 
 
40214
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40215
 
 
40216
public:
 
40217
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
40218
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40219
  static const char *NodeId ();
 
40220
  /** Get the name of the node. Can be compared with NodeId(). */
 
40221
  const char *NodeName () const { return NodeId (); }
 
40222
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
40223
};
 
40224
 
 
40225
 
 
40226
#line 40227 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40227
} // closed Puma
 
40228
class CCExprResolve;
 
40229
class CExprResolve;
 
40230
class WinIfExists;
 
40231
class WinImportHandler;
 
40232
class WinMacros;
 
40233
class WinAsm;
 
40234
class WinDeclSpecs;
 
40235
class WinMemberExplSpec;
 
40236
class WinTypeKeywords;
 
40237
class WinFriend;
 
40238
class ExtAC;
 
40239
class ExtACBuilderCoupling;
 
40240
class ExtACSyntaxCoupling;
 
40241
class ExtACTree;
 
40242
class ExtACKeywords;
 
40243
class ExtGnu;
 
40244
class PragmaOnceUnitState;
 
40245
class PragmaOnce;
 
40246
class CMatchSyntax;
 
40247
namespace Puma {
 
40248
 
 
40249
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40250
class CT_ArgNameList : public CT_ArgDeclList {
 
40251
#line 40252 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40252
  friend class ::CCExprResolve;
 
40253
  friend class ::CExprResolve;
 
40254
  friend class ::WinIfExists;
 
40255
  friend class ::WinImportHandler;
 
40256
  friend class ::WinMacros;
 
40257
  friend class ::WinAsm;
 
40258
  friend class ::WinDeclSpecs;
 
40259
  friend class ::WinMemberExplSpec;
 
40260
  friend class ::WinTypeKeywords;
 
40261
  friend class ::WinFriend;
 
40262
  friend class ::ExtAC;
 
40263
  friend class ::ExtACBuilderCoupling;
 
40264
  friend class ::ExtACSyntaxCoupling;
 
40265
  friend class ::ExtACTree;
 
40266
  friend class ::ExtACKeywords;
 
40267
  friend class ::ExtGnu;
 
40268
  friend class ::PragmaOnceUnitState;
 
40269
  friend class ::PragmaOnce;
 
40270
  friend class ::CMatchSyntax;
 
40271
 
 
40272
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40273
 
 
40274
public:
 
40275
  CT_ArgNameList () : CT_ArgDeclList () {}
 
40276
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40277
  static const char *NodeId ();
 
40278
  /** Get the name of the node. Can be compared with NodeId(). */
 
40279
  const char *NodeName () const { return NodeId (); }
 
40280
};
 
40281
 
 
40282
 
 
40283
#line 40284 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40284
} // closed Puma
 
40285
class CCExprResolve;
 
40286
class CExprResolve;
 
40287
class WinIfExists;
 
40288
class WinImportHandler;
 
40289
class WinMacros;
 
40290
class WinAsm;
 
40291
class WinDeclSpecs;
 
40292
class WinMemberExplSpec;
 
40293
class WinTypeKeywords;
 
40294
class WinFriend;
 
40295
class ExtAC;
 
40296
class ExtACBuilderCoupling;
 
40297
class ExtACSyntaxCoupling;
 
40298
class ExtACTree;
 
40299
class ExtACKeywords;
 
40300
class ExtGnu;
 
40301
class PragmaOnceUnitState;
 
40302
class PragmaOnce;
 
40303
class CMatchSyntax;
 
40304
namespace Puma {
 
40305
 
 
40306
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40307
class CT_NamespaceDef : public CT_Decl, public CSemObject {
 
40308
#line 40309 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40309
  friend class ::CCExprResolve;
 
40310
  friend class ::CExprResolve;
 
40311
  friend class ::WinIfExists;
 
40312
  friend class ::WinImportHandler;
 
40313
  friend class ::WinMacros;
 
40314
  friend class ::WinAsm;
 
40315
  friend class ::WinDeclSpecs;
 
40316
  friend class ::WinMemberExplSpec;
 
40317
  friend class ::WinTypeKeywords;
 
40318
  friend class ::WinFriend;
 
40319
  friend class ::ExtAC;
 
40320
  friend class ::ExtACBuilderCoupling;
 
40321
  friend class ::ExtACSyntaxCoupling;
 
40322
  friend class ::ExtACTree;
 
40323
  friend class ::ExtACKeywords;
 
40324
  friend class ::ExtGnu;
 
40325
  friend class ::PragmaOnceUnitState;
 
40326
  friend class ::PragmaOnce;
 
40327
  friend class ::CMatchSyntax;
 
40328
 
 
40329
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40330
 
 
40331
  CTree *sons[3]; // ns, name, members
 
40332
 
 
40333
public:
 
40334
  CT_NamespaceDef (CTree *n, CTree *nm) {
 
40335
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
 
40336
  }
 
40337
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
 
40338
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
 
40339
  }
 
40340
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40341
  static const char *NodeId ();
 
40342
  /** Get the name of the node. Can be compared with NodeId(). */
 
40343
  const char *NodeName () const { return NodeId (); }
 
40344
  /** Get the number of sons. */
 
40345
  int Sons () const { return CTree::Sons (sons, 3); }
 
40346
  /** Get the n-th son.
 
40347
   *  \param n The index of the son.
 
40348
   *  \return The n-th son or NULL. */
 
40349
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
40350
  void Members (CTree *m) { AddSon (sons[2], m); }
 
40351
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
 
40352
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
40353
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
40354
  /** Replace a son.
 
40355
   *  \param old_son The son to replace.
 
40356
   *  \param new_son The new son. */
 
40357
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40358
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
40359
  }
 
40360
};
 
40361
 
 
40362
 
 
40363
#line 40364 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40364
} // closed Puma
 
40365
class CCExprResolve;
 
40366
class CExprResolve;
 
40367
class WinIfExists;
 
40368
class WinImportHandler;
 
40369
class WinMacros;
 
40370
class WinAsm;
 
40371
class WinDeclSpecs;
 
40372
class WinMemberExplSpec;
 
40373
class WinTypeKeywords;
 
40374
class WinFriend;
 
40375
class ExtAC;
 
40376
class ExtACBuilderCoupling;
 
40377
class ExtACSyntaxCoupling;
 
40378
class ExtACTree;
 
40379
class ExtACKeywords;
 
40380
class ExtGnu;
 
40381
class PragmaOnceUnitState;
 
40382
class PragmaOnce;
 
40383
class CMatchSyntax;
 
40384
namespace Puma {
 
40385
 
 
40386
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40387
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
 
40388
#line 40389 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40389
  friend class ::CCExprResolve;
 
40390
  friend class ::CExprResolve;
 
40391
  friend class ::WinIfExists;
 
40392
  friend class ::WinImportHandler;
 
40393
  friend class ::WinMacros;
 
40394
  friend class ::WinAsm;
 
40395
  friend class ::WinDeclSpecs;
 
40396
  friend class ::WinMemberExplSpec;
 
40397
  friend class ::WinTypeKeywords;
 
40398
  friend class ::WinFriend;
 
40399
  friend class ::ExtAC;
 
40400
  friend class ::ExtACBuilderCoupling;
 
40401
  friend class ::ExtACSyntaxCoupling;
 
40402
  friend class ::ExtACTree;
 
40403
  friend class ::ExtACKeywords;
 
40404
  friend class ::ExtGnu;
 
40405
  friend class ::PragmaOnceUnitState;
 
40406
  friend class ::PragmaOnce;
 
40407
  friend class ::CMatchSyntax;
 
40408
 
 
40409
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40410
 
 
40411
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
 
40412
 
 
40413
public:
 
40414
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
 
40415
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
40416
    AddSon (sons[3], nm); AddSon (sons[4], s); 
 
40417
  }
 
40418
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40419
  static const char *NodeId ();
 
40420
  /** Get the name of the node. Can be compared with NodeId(). */
 
40421
  const char *NodeName () const { return NodeId (); }
 
40422
  /** Get the number of sons. */
 
40423
  int Sons () const { return 5; }
 
40424
  /** Get the n-th son.
 
40425
   *  \param n The index of the son.
 
40426
   *  \return The n-th son or NULL. */
 
40427
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
40428
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
 
40429
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
 
40430
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
40431
  /** Replace a son.
 
40432
   *  \param old_son The son to replace.
 
40433
   *  \param new_son The new son. */
 
40434
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40435
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
40436
  }
 
40437
};
 
40438
 
 
40439
 
 
40440
#line 40441 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40441
} // closed Puma
 
40442
class CCExprResolve;
 
40443
class CExprResolve;
 
40444
class WinIfExists;
 
40445
class WinImportHandler;
 
40446
class WinMacros;
 
40447
class WinAsm;
 
40448
class WinDeclSpecs;
 
40449
class WinMemberExplSpec;
 
40450
class WinTypeKeywords;
 
40451
class WinFriend;
 
40452
class ExtAC;
 
40453
class ExtACBuilderCoupling;
 
40454
class ExtACSyntaxCoupling;
 
40455
class ExtACTree;
 
40456
class ExtACKeywords;
 
40457
class ExtGnu;
 
40458
class PragmaOnceUnitState;
 
40459
class PragmaOnce;
 
40460
class CMatchSyntax;
 
40461
namespace Puma {
 
40462
 
 
40463
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40464
class CT_UsingDirective : public CT_Decl {
 
40465
#line 40466 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40466
  friend class ::CCExprResolve;
 
40467
  friend class ::CExprResolve;
 
40468
  friend class ::WinIfExists;
 
40469
  friend class ::WinImportHandler;
 
40470
  friend class ::WinMacros;
 
40471
  friend class ::WinAsm;
 
40472
  friend class ::WinDeclSpecs;
 
40473
  friend class ::WinMemberExplSpec;
 
40474
  friend class ::WinTypeKeywords;
 
40475
  friend class ::WinFriend;
 
40476
  friend class ::ExtAC;
 
40477
  friend class ::ExtACBuilderCoupling;
 
40478
  friend class ::ExtACSyntaxCoupling;
 
40479
  friend class ::ExtACTree;
 
40480
  friend class ::ExtACKeywords;
 
40481
  friend class ::ExtGnu;
 
40482
  friend class ::PragmaOnceUnitState;
 
40483
  friend class ::PragmaOnce;
 
40484
  friend class ::CMatchSyntax;
 
40485
 
 
40486
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40487
 
 
40488
  CTree *sons[4]; // using, ns, name, semi_colon
 
40489
 
 
40490
public:
 
40491
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
 
40492
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
40493
    AddSon (sons[3], s); 
 
40494
  }
 
40495
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40496
  static const char *NodeId ();
 
40497
  /** Get the name of the node. Can be compared with NodeId(). */
 
40498
  const char *NodeName () const { return NodeId (); }
 
40499
  /** Get the number of sons. */
 
40500
  int Sons () const { return 4; }
 
40501
  /** Get the n-th son.
 
40502
   *  \param n The index of the son.
 
40503
   *  \return The n-th son or NULL. */
 
40504
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
40505
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
40506
  /** Replace a son.
 
40507
   *  \param old_son The son to replace.
 
40508
   *  \param new_son The new son. */
 
40509
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40510
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
40511
  }
 
40512
};
 
40513
 
 
40514
/*****************************************************************************/
 
40515
/*                                                                           */
 
40516
/*                              Declarators                                  */
 
40517
/*                                                                           */
 
40518
/*****************************************************************************/
 
40519
 
 
40520
 
 
40521
#line 40522 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40522
} // closed Puma
 
40523
class CCExprResolve;
 
40524
class CExprResolve;
 
40525
class WinIfExists;
 
40526
class WinImportHandler;
 
40527
class WinMacros;
 
40528
class WinAsm;
 
40529
class WinDeclSpecs;
 
40530
class WinMemberExplSpec;
 
40531
class WinTypeKeywords;
 
40532
class WinFriend;
 
40533
class ExtAC;
 
40534
class ExtACBuilderCoupling;
 
40535
class ExtACSyntaxCoupling;
 
40536
class ExtACTree;
 
40537
class ExtACKeywords;
 
40538
class ExtGnu;
 
40539
class PragmaOnceUnitState;
 
40540
class PragmaOnce;
 
40541
class CMatchSyntax;
 
40542
namespace Puma {
 
40543
 
 
40544
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40545
class CT_Declarator : public CTree {
 
40546
#line 40547 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40547
  friend class ::CCExprResolve;
 
40548
  friend class ::CExprResolve;
 
40549
  friend class ::WinIfExists;
 
40550
  friend class ::WinImportHandler;
 
40551
  friend class ::WinMacros;
 
40552
  friend class ::WinAsm;
 
40553
  friend class ::WinDeclSpecs;
 
40554
  friend class ::WinMemberExplSpec;
 
40555
  friend class ::WinTypeKeywords;
 
40556
  friend class ::WinFriend;
 
40557
  friend class ::ExtAC;
 
40558
  friend class ::ExtACBuilderCoupling;
 
40559
  friend class ::ExtACSyntaxCoupling;
 
40560
  friend class ::ExtACTree;
 
40561
  friend class ::ExtACKeywords;
 
40562
  friend class ::ExtGnu;
 
40563
  friend class ::PragmaOnceUnitState;
 
40564
  friend class ::PragmaOnce;
 
40565
  friend class ::CMatchSyntax;
 
40566
 
 
40567
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40568
 
 
40569
protected:
 
40570
  CT_Declarator () {}
 
40571
 
 
40572
public:
 
40573
  virtual CTree *Declarator () const = 0;
 
40574
  //classification function
 
40575
  virtual CT_Declarator *IsDeclarator () { return this; }
 
40576
  // locate the name node
 
40577
  CT_SimpleName *Name ();
 
40578
  CT_SimpleName *Name (CT_Declarator *&last_declarator);
 
40579
};
 
40580
 
 
40581
 
 
40582
#line 40583 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40583
} // closed Puma
 
40584
class CCExprResolve;
 
40585
class CExprResolve;
 
40586
class WinIfExists;
 
40587
class WinImportHandler;
 
40588
class WinMacros;
 
40589
class WinAsm;
 
40590
class WinDeclSpecs;
 
40591
class WinMemberExplSpec;
 
40592
class WinTypeKeywords;
 
40593
class WinFriend;
 
40594
class ExtAC;
 
40595
class ExtACBuilderCoupling;
 
40596
class ExtACSyntaxCoupling;
 
40597
class ExtACTree;
 
40598
class ExtACKeywords;
 
40599
class ExtGnu;
 
40600
class PragmaOnceUnitState;
 
40601
class PragmaOnce;
 
40602
class CMatchSyntax;
 
40603
namespace Puma {
 
40604
 
 
40605
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40606
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
 
40607
#line 40608 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40608
  friend class ::CCExprResolve;
 
40609
  friend class ::CExprResolve;
 
40610
  friend class ::WinIfExists;
 
40611
  friend class ::WinImportHandler;
 
40612
  friend class ::WinMacros;
 
40613
  friend class ::WinAsm;
 
40614
  friend class ::WinDeclSpecs;
 
40615
  friend class ::WinMemberExplSpec;
 
40616
  friend class ::WinTypeKeywords;
 
40617
  friend class ::WinFriend;
 
40618
  friend class ::ExtAC;
 
40619
  friend class ::ExtACBuilderCoupling;
 
40620
  friend class ::ExtACSyntaxCoupling;
 
40621
  friend class ::ExtACTree;
 
40622
  friend class ::ExtACKeywords;
 
40623
  friend class ::ExtGnu;
 
40624
  friend class ::PragmaOnceUnitState;
 
40625
  friend class ::PragmaOnce;
 
40626
  friend class ::CMatchSyntax;
 
40627
 
 
40628
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40629
 
 
40630
  CTree *sons[3]; // declarator, ext, init
 
40631
  CTree *obj_decl;
 
40632
 
 
40633
public:
 
40634
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
40635
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
40636
    AddSon (obj_decl, 0); 
 
40637
  }
 
40638
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40639
  static const char *NodeId ();
 
40640
  /** Get the name of the node. Can be compared with NodeId(). */
 
40641
  const char *NodeName () const { return NodeId (); }
 
40642
  /** Get the number of sons. */
 
40643
  int Sons () const { return CTree::Sons (sons, 3); }
 
40644
  /** Get the n-th son.
 
40645
   *  \param n The index of the son.
 
40646
   *  \return The n-th son or NULL. */
 
40647
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
40648
  CTree *Declarator () const { return sons[0]; }
 
40649
  CTree *Extension () const { return sons[1]; }
 
40650
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
40651
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
40652
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
 
40653
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
40654
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
40655
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
40656
  /** Replace a son.
 
40657
   *  \param old_son The son to replace.
 
40658
   *  \param new_son The new son. */
 
40659
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40660
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
40661
  }
 
40662
};
 
40663
 
 
40664
 
 
40665
#line 40666 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40666
} // closed Puma
 
40667
class CCExprResolve;
 
40668
class CExprResolve;
 
40669
class WinIfExists;
 
40670
class WinImportHandler;
 
40671
class WinMacros;
 
40672
class WinAsm;
 
40673
class WinDeclSpecs;
 
40674
class WinMemberExplSpec;
 
40675
class WinTypeKeywords;
 
40676
class WinFriend;
 
40677
class ExtAC;
 
40678
class ExtACBuilderCoupling;
 
40679
class ExtACSyntaxCoupling;
 
40680
class ExtACTree;
 
40681
class ExtACKeywords;
 
40682
class ExtGnu;
 
40683
class PragmaOnceUnitState;
 
40684
class PragmaOnce;
 
40685
class CMatchSyntax;
 
40686
namespace Puma {
 
40687
 
 
40688
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40689
class CT_BracedDeclarator : public CT_Declarator {
 
40690
#line 40691 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40691
  friend class ::CCExprResolve;
 
40692
  friend class ::CExprResolve;
 
40693
  friend class ::WinIfExists;
 
40694
  friend class ::WinImportHandler;
 
40695
  friend class ::WinMacros;
 
40696
  friend class ::WinAsm;
 
40697
  friend class ::WinDeclSpecs;
 
40698
  friend class ::WinMemberExplSpec;
 
40699
  friend class ::WinTypeKeywords;
 
40700
  friend class ::WinFriend;
 
40701
  friend class ::ExtAC;
 
40702
  friend class ::ExtACBuilderCoupling;
 
40703
  friend class ::ExtACSyntaxCoupling;
 
40704
  friend class ::ExtACTree;
 
40705
  friend class ::ExtACKeywords;
 
40706
  friend class ::ExtGnu;
 
40707
  friend class ::PragmaOnceUnitState;
 
40708
  friend class ::PragmaOnce;
 
40709
  friend class ::CMatchSyntax;
 
40710
 
 
40711
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40712
 
 
40713
  CTree *sons[4]; // open, win_specs, declarator, close
 
40714
 
 
40715
public:
 
40716
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
 
40717
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
40718
    AddSon (sons[2], d); AddSon (sons[3], c); 
 
40719
  }
 
40720
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
 
40721
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
40722
    AddSon (sons[2], d); AddSon (sons[3], c); 
 
40723
  }
 
40724
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40725
  static const char *NodeId ();
 
40726
  /** Get the name of the node. Can be compared with NodeId(). */
 
40727
  const char *NodeName () const { return NodeId (); }
 
40728
  /** Get the number of sons. */
 
40729
  int Sons () const { return CTree::Sons (sons, 4); }
 
40730
  /** Get the n-th son.
 
40731
   *  \param n The index of the son.
 
40732
   *  \return The n-th son or NULL. */
 
40733
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
40734
  CTree *Declarator () const { return sons[2]; }
 
40735
  /** Replace a son.
 
40736
   *  \param old_son The son to replace.
 
40737
   *  \param new_son The new son. */
 
40738
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40739
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
40740
  }
 
40741
};
 
40742
 
 
40743
 
 
40744
#line 40745 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40745
} // closed Puma
 
40746
class CCExprResolve;
 
40747
class CExprResolve;
 
40748
class WinIfExists;
 
40749
class WinImportHandler;
 
40750
class WinMacros;
 
40751
class WinAsm;
 
40752
class WinDeclSpecs;
 
40753
class WinMemberExplSpec;
 
40754
class WinTypeKeywords;
 
40755
class WinFriend;
 
40756
class ExtAC;
 
40757
class ExtACBuilderCoupling;
 
40758
class ExtACSyntaxCoupling;
 
40759
class ExtACTree;
 
40760
class ExtACKeywords;
 
40761
class ExtGnu;
 
40762
class PragmaOnceUnitState;
 
40763
class PragmaOnce;
 
40764
class CMatchSyntax;
 
40765
namespace Puma {
 
40766
 
 
40767
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40768
class CT_ArrayDelimiter : public CTree {
 
40769
#line 40770 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40770
  friend class ::CCExprResolve;
 
40771
  friend class ::CExprResolve;
 
40772
  friend class ::WinIfExists;
 
40773
  friend class ::WinImportHandler;
 
40774
  friend class ::WinMacros;
 
40775
  friend class ::WinAsm;
 
40776
  friend class ::WinDeclSpecs;
 
40777
  friend class ::WinMemberExplSpec;
 
40778
  friend class ::WinTypeKeywords;
 
40779
  friend class ::WinFriend;
 
40780
  friend class ::ExtAC;
 
40781
  friend class ::ExtACBuilderCoupling;
 
40782
  friend class ::ExtACSyntaxCoupling;
 
40783
  friend class ::ExtACTree;
 
40784
  friend class ::ExtACKeywords;
 
40785
  friend class ::ExtGnu;
 
40786
  friend class ::PragmaOnceUnitState;
 
40787
  friend class ::PragmaOnce;
 
40788
  friend class ::CMatchSyntax;
 
40789
 
 
40790
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40791
 
 
40792
  CTree *sons[4]; // star, static, quals, expr
 
40793
  bool pos0;
 
40794
 
 
40795
public:
 
40796
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
 
40797
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
40798
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
 
40799
  }
 
40800
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40801
  static const char *NodeId ();
 
40802
  /** Get the name of the node. Can be compared with NodeId(). */
 
40803
  const char *NodeName () const { return NodeId (); }
 
40804
  /** Get the number of sons. */
 
40805
  int Sons () const { return CTree::Sons (sons, 4); }
 
40806
  /** Get the n-th son.
 
40807
   *  \param n The index of the son.
 
40808
   *  \return The n-th son or NULL. */
 
40809
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
40810
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
 
40811
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
 
40812
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
 
40813
  CTree *Expr () const { return sons[3]; }
 
40814
  /** Replace a son.
 
40815
   *  \param old_son The son to replace.
 
40816
   *  \param new_son The new son. */
 
40817
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40818
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
40819
  }
 
40820
};
 
40821
 
 
40822
 
 
40823
#line 40824 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40824
} // closed Puma
 
40825
class CCExprResolve;
 
40826
class CExprResolve;
 
40827
class WinIfExists;
 
40828
class WinImportHandler;
 
40829
class WinMacros;
 
40830
class WinAsm;
 
40831
class WinDeclSpecs;
 
40832
class WinMemberExplSpec;
 
40833
class WinTypeKeywords;
 
40834
class WinFriend;
 
40835
class ExtAC;
 
40836
class ExtACBuilderCoupling;
 
40837
class ExtACSyntaxCoupling;
 
40838
class ExtACTree;
 
40839
class ExtACKeywords;
 
40840
class ExtGnu;
 
40841
class PragmaOnceUnitState;
 
40842
class PragmaOnce;
 
40843
class CMatchSyntax;
 
40844
namespace Puma {
 
40845
 
 
40846
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40847
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
 
40848
#line 40849 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40849
  friend class ::CCExprResolve;
 
40850
  friend class ::CExprResolve;
 
40851
  friend class ::WinIfExists;
 
40852
  friend class ::WinImportHandler;
 
40853
  friend class ::WinMacros;
 
40854
  friend class ::WinAsm;
 
40855
  friend class ::WinDeclSpecs;
 
40856
  friend class ::WinMemberExplSpec;
 
40857
  friend class ::WinTypeKeywords;
 
40858
  friend class ::WinFriend;
 
40859
  friend class ::ExtAC;
 
40860
  friend class ::ExtACBuilderCoupling;
 
40861
  friend class ::ExtACSyntaxCoupling;
 
40862
  friend class ::ExtACTree;
 
40863
  friend class ::ExtACKeywords;
 
40864
  friend class ::ExtGnu;
 
40865
  friend class ::PragmaOnceUnitState;
 
40866
  friend class ::PragmaOnce;
 
40867
  friend class ::CMatchSyntax;
 
40868
 
 
40869
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40870
 
 
40871
  CTree *sons[4]; // declarator, open, delim, close
 
40872
 
 
40873
public:
 
40874
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
 
40875
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
40876
    AddSon (sons[2], ad); AddSon (sons[3], c); 
 
40877
  }
 
40878
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40879
  static const char *NodeId ();
 
40880
  /** Get the name of the node. Can be compared with NodeId(). */
 
40881
  const char *NodeName () const { return NodeId (); }
 
40882
  /** Get the number of sons. */
 
40883
  int Sons () const { return 4; }
 
40884
  /** Get the n-th son.
 
40885
   *  \param n The index of the son.
 
40886
   *  \return The n-th son or NULL. */
 
40887
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
40888
  CTree *Declarator () const { return sons[0]; }
 
40889
  CT_ArrayDelimiter *Delimiter () const 
 
40890
   { return (CT_ArrayDelimiter*)sons[2]; }
 
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, 4, old_son, new_son);
 
40896
  }
 
40897
  CTypeInfo *Type () const { return type; }
 
40898
  CExprValue *Value () const { return value; }
 
40899
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
40900
};
 
40901
 
 
40902
 
 
40903
#line 40904 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40904
} // closed Puma
 
40905
class CCExprResolve;
 
40906
class CExprResolve;
 
40907
class WinIfExists;
 
40908
class WinImportHandler;
 
40909
class WinMacros;
 
40910
class WinAsm;
 
40911
class WinDeclSpecs;
 
40912
class WinMemberExplSpec;
 
40913
class WinTypeKeywords;
 
40914
class WinFriend;
 
40915
class ExtAC;
 
40916
class ExtACBuilderCoupling;
 
40917
class ExtACSyntaxCoupling;
 
40918
class ExtACTree;
 
40919
class ExtACKeywords;
 
40920
class ExtGnu;
 
40921
class PragmaOnceUnitState;
 
40922
class PragmaOnce;
 
40923
class CMatchSyntax;
 
40924
namespace Puma {
 
40925
 
 
40926
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40927
class CT_FctDeclarator : public CT_Declarator {
 
40928
#line 40929 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40929
  friend class ::CCExprResolve;
 
40930
  friend class ::CExprResolve;
 
40931
  friend class ::WinIfExists;
 
40932
  friend class ::WinImportHandler;
 
40933
  friend class ::WinMacros;
 
40934
  friend class ::WinAsm;
 
40935
  friend class ::WinDeclSpecs;
 
40936
  friend class ::WinMemberExplSpec;
 
40937
  friend class ::WinTypeKeywords;
 
40938
  friend class ::WinFriend;
 
40939
  friend class ::ExtAC;
 
40940
  friend class ::ExtACBuilderCoupling;
 
40941
  friend class ::ExtACSyntaxCoupling;
 
40942
  friend class ::ExtACTree;
 
40943
  friend class ::ExtACKeywords;
 
40944
  friend class ::ExtGnu;
 
40945
  friend class ::PragmaOnceUnitState;
 
40946
  friend class ::PragmaOnce;
 
40947
  friend class ::CMatchSyntax;
 
40948
 
 
40949
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40950
 
 
40951
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
 
40952
 
 
40953
public:
 
40954
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
 
40955
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
40956
    AddSon (sons[2], cv); AddSon (sons[3], es); 
 
40957
  }
 
40958
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
40959
  static const char *NodeId ();
 
40960
  /** Get the name of the node. Can be compared with NodeId(). */
 
40961
  const char *NodeName () const { return NodeId (); }
 
40962
  /** Get the number of sons. */
 
40963
  int Sons () const { return CTree::Sons (sons, 4); }
 
40964
  /** Get the n-th son.
 
40965
   *  \param n The index of the son.
 
40966
   *  \return The n-th son or NULL. */
 
40967
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
40968
  CTree *Declarator () const { return sons[0]; }
 
40969
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
40970
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
 
40971
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
40972
  /** Replace a son.
 
40973
   *  \param old_son The son to replace.
 
40974
   *  \param new_son The new son. */
 
40975
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
40976
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
40977
  }
 
40978
};
 
40979
 
 
40980
 
 
40981
#line 40982 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
40982
} // closed Puma
 
40983
class CCExprResolve;
 
40984
class CExprResolve;
 
40985
class WinIfExists;
 
40986
class WinImportHandler;
 
40987
class WinMacros;
 
40988
class WinAsm;
 
40989
class WinDeclSpecs;
 
40990
class WinMemberExplSpec;
 
40991
class WinTypeKeywords;
 
40992
class WinFriend;
 
40993
class ExtAC;
 
40994
class ExtACBuilderCoupling;
 
40995
class ExtACSyntaxCoupling;
 
40996
class ExtACTree;
 
40997
class ExtACKeywords;
 
40998
class ExtGnu;
 
40999
class PragmaOnceUnitState;
 
41000
class PragmaOnce;
 
41001
class CMatchSyntax;
 
41002
namespace Puma {
 
41003
 
 
41004
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41005
class CT_RefDeclarator : public CT_Declarator {
 
41006
#line 41007 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41007
  friend class ::CCExprResolve;
 
41008
  friend class ::CExprResolve;
 
41009
  friend class ::WinIfExists;
 
41010
  friend class ::WinImportHandler;
 
41011
  friend class ::WinMacros;
 
41012
  friend class ::WinAsm;
 
41013
  friend class ::WinDeclSpecs;
 
41014
  friend class ::WinMemberExplSpec;
 
41015
  friend class ::WinTypeKeywords;
 
41016
  friend class ::WinFriend;
 
41017
  friend class ::ExtAC;
 
41018
  friend class ::ExtACBuilderCoupling;
 
41019
  friend class ::ExtACSyntaxCoupling;
 
41020
  friend class ::ExtACTree;
 
41021
  friend class ::ExtACKeywords;
 
41022
  friend class ::ExtGnu;
 
41023
  friend class ::PragmaOnceUnitState;
 
41024
  friend class ::PragmaOnce;
 
41025
  friend class ::CMatchSyntax;
 
41026
 
 
41027
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41028
 
 
41029
  CTree *sons[2]; // ref, declarator
 
41030
 
 
41031
public:
 
41032
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
41033
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
41034
  static const char *NodeId ();
 
41035
  /** Get the name of the node. Can be compared with NodeId(). */
 
41036
  const char *NodeName () const { return NodeId (); }
 
41037
  /** Get the number of sons. */
 
41038
  int Sons () const { return 2; }
 
41039
  /** Get the n-th son.
 
41040
   *  \param n The index of the son.
 
41041
   *  \return The n-th son or NULL. */
 
41042
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
41043
  CTree *Declarator () const { return sons[1]; }
 
41044
  /** Replace a son.
 
41045
   *  \param old_son The son to replace.
 
41046
   *  \param new_son The new son. */
 
41047
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
41048
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
41049
  }
 
41050
};
 
41051
 
 
41052
 
 
41053
#line 41054 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41054
} // closed Puma
 
41055
class CCExprResolve;
 
41056
class CExprResolve;
 
41057
class WinIfExists;
 
41058
class WinImportHandler;
 
41059
class WinMacros;
 
41060
class WinAsm;
 
41061
class WinDeclSpecs;
 
41062
class WinMemberExplSpec;
 
41063
class WinTypeKeywords;
 
41064
class WinFriend;
 
41065
class ExtAC;
 
41066
class ExtACBuilderCoupling;
 
41067
class ExtACSyntaxCoupling;
 
41068
class ExtACTree;
 
41069
class ExtACKeywords;
 
41070
class ExtGnu;
 
41071
class PragmaOnceUnitState;
 
41072
class PragmaOnce;
 
41073
class CMatchSyntax;
 
41074
namespace Puma {
 
41075
 
 
41076
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41077
class CT_PtrDeclarator : public CT_Declarator {
 
41078
#line 41079 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41079
  friend class ::CCExprResolve;
 
41080
  friend class ::CExprResolve;
 
41081
  friend class ::WinIfExists;
 
41082
  friend class ::WinImportHandler;
 
41083
  friend class ::WinMacros;
 
41084
  friend class ::WinAsm;
 
41085
  friend class ::WinDeclSpecs;
 
41086
  friend class ::WinMemberExplSpec;
 
41087
  friend class ::WinTypeKeywords;
 
41088
  friend class ::WinFriend;
 
41089
  friend class ::ExtAC;
 
41090
  friend class ::ExtACBuilderCoupling;
 
41091
  friend class ::ExtACSyntaxCoupling;
 
41092
  friend class ::ExtACTree;
 
41093
  friend class ::ExtACKeywords;
 
41094
  friend class ::ExtGnu;
 
41095
  friend class ::PragmaOnceUnitState;
 
41096
  friend class ::PragmaOnce;
 
41097
  friend class ::CMatchSyntax;
 
41098
 
 
41099
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41100
 
 
41101
  CTree *sons[3]; // ptr, cv_quals, declarator
 
41102
 
 
41103
public:
 
41104
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
 
41105
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
 
41106
  }
 
41107
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
41108
  static const char *NodeId ();
 
41109
  /** Get the name of the node. Can be compared with NodeId(). */
 
41110
  const char *NodeName () const { return NodeId (); }
 
41111
  /** Get the number of sons. */
 
41112
  int Sons () const { return CTree::Sons (sons, 3); }
 
41113
  /** Get the n-th son.
 
41114
   *  \param n The index of the son.
 
41115
   *  \return The n-th son or NULL. */
 
41116
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
41117
  CTree *Declarator () const { return sons[2]; }
 
41118
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
41119
  /** Replace a son.
 
41120
   *  \param old_son The son to replace.
 
41121
   *  \param new_son The new son. */
 
41122
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
41123
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
41124
  }
 
41125
};
 
41126
 
 
41127
 
 
41128
#line 41129 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41129
} // closed Puma
 
41130
class CCExprResolve;
 
41131
class CExprResolve;
 
41132
class WinIfExists;
 
41133
class WinImportHandler;
 
41134
class WinMacros;
 
41135
class WinAsm;
 
41136
class WinDeclSpecs;
 
41137
class WinMemberExplSpec;
 
41138
class WinTypeKeywords;
 
41139
class WinFriend;
 
41140
class ExtAC;
 
41141
class ExtACBuilderCoupling;
 
41142
class ExtACSyntaxCoupling;
 
41143
class ExtACTree;
 
41144
class ExtACKeywords;
 
41145
class ExtGnu;
 
41146
class PragmaOnceUnitState;
 
41147
class PragmaOnce;
 
41148
class CMatchSyntax;
 
41149
namespace Puma {
 
41150
 
 
41151
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41152
class CT_MembPtrDeclarator : public CT_Declarator {
 
41153
#line 41154 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41154
  friend class ::CCExprResolve;
 
41155
  friend class ::CExprResolve;
 
41156
  friend class ::WinIfExists;
 
41157
  friend class ::WinImportHandler;
 
41158
  friend class ::WinMacros;
 
41159
  friend class ::WinAsm;
 
41160
  friend class ::WinDeclSpecs;
 
41161
  friend class ::WinMemberExplSpec;
 
41162
  friend class ::WinTypeKeywords;
 
41163
  friend class ::WinFriend;
 
41164
  friend class ::ExtAC;
 
41165
  friend class ::ExtACBuilderCoupling;
 
41166
  friend class ::ExtACSyntaxCoupling;
 
41167
  friend class ::ExtACTree;
 
41168
  friend class ::ExtACKeywords;
 
41169
  friend class ::ExtGnu;
 
41170
  friend class ::PragmaOnceUnitState;
 
41171
  friend class ::PragmaOnce;
 
41172
  friend class ::CMatchSyntax;
 
41173
 
 
41174
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41175
 
 
41176
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
 
41177
 
 
41178
public:
 
41179
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
 
41180
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
41181
    AddSon (sons[3], q); AddSon (sons[4], d); 
 
41182
  }
 
41183
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
41184
  static const char *NodeId ();
 
41185
  /** Get the name of the node. Can be compared with NodeId(). */
 
41186
  const char *NodeName () const { return NodeId (); }
 
41187
  /** Get the number of sons. */
 
41188
  int Sons () const { return CTree::Sons (sons, 5); }
 
41189
  /** Get the n-th son.
 
41190
   *  \param n The index of the son.
 
41191
   *  \return The n-th son or NULL. */
 
41192
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
41193
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
41194
  CTree *Declarator () const { return sons[4]; }
 
41195
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
41196
  /** Replace a son.
 
41197
   *  \param old_son The son to replace.
 
41198
   *  \param new_son The new son. */
 
41199
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
41200
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
41201
  }
 
41202
};
 
41203
 
 
41204
 
 
41205
#line 41206 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41206
} // closed Puma
 
41207
class CCExprResolve;
 
41208
class CExprResolve;
 
41209
class WinIfExists;
 
41210
class WinImportHandler;
 
41211
class WinMacros;
 
41212
class WinAsm;
 
41213
class WinDeclSpecs;
 
41214
class WinMemberExplSpec;
 
41215
class WinTypeKeywords;
 
41216
class WinFriend;
 
41217
class ExtAC;
 
41218
class ExtACBuilderCoupling;
 
41219
class ExtACSyntaxCoupling;
 
41220
class ExtACTree;
 
41221
class ExtACKeywords;
 
41222
class ExtGnu;
 
41223
class PragmaOnceUnitState;
 
41224
class PragmaOnce;
 
41225
class CMatchSyntax;
 
41226
namespace Puma {
 
41227
 
 
41228
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41229
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
 
41230
#line 41231 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41231
  friend class ::CCExprResolve;
 
41232
  friend class ::CExprResolve;
 
41233
  friend class ::WinIfExists;
 
41234
  friend class ::WinImportHandler;
 
41235
  friend class ::WinMacros;
 
41236
  friend class ::WinAsm;
 
41237
  friend class ::WinDeclSpecs;
 
41238
  friend class ::WinMemberExplSpec;
 
41239
  friend class ::WinTypeKeywords;
 
41240
  friend class ::WinFriend;
 
41241
  friend class ::ExtAC;
 
41242
  friend class ::ExtACBuilderCoupling;
 
41243
  friend class ::ExtACSyntaxCoupling;
 
41244
  friend class ::ExtACTree;
 
41245
  friend class ::ExtACKeywords;
 
41246
  friend class ::ExtGnu;
 
41247
  friend class ::PragmaOnceUnitState;
 
41248
  friend class ::PragmaOnce;
 
41249
  friend class ::CMatchSyntax;
 
41250
 
 
41251
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41252
 
 
41253
  CTree *sons[3]; // declarator, colon, expr
 
41254
 
 
41255
public:
 
41256
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
 
41257
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
 
41258
  }
 
41259
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
41260
  static const char *NodeId ();
 
41261
  /** Get the name of the node. Can be compared with NodeId(). */
 
41262
  const char *NodeName () const { return NodeId (); }
 
41263
  /** Get the number of sons. */
 
41264
  int Sons () const { return CTree::Sons (sons, 3); }
 
41265
  /** Get the n-th son.
 
41266
   *  \param n The index of the son.
 
41267
   *  \return The n-th son or NULL. */
 
41268
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
41269
  CTree *Declarator () const { return sons[0]; }
 
41270
  CTree *Expr () const { return sons[2]; }
 
41271
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
 
41272
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
41273
  /** Replace a son.
 
41274
   *  \param old_son The son to replace.
 
41275
   *  \param new_son The new son. */
 
41276
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
41277
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
41278
  }
 
41279
};
 
41280
 
 
41281
/*****************************************************************************/
 
41282
/*                                                                           */
 
41283
/*                              Statements                                   */
 
41284
/*                                                                           */
 
41285
/*****************************************************************************/
 
41286
 
 
41287
 
 
41288
#line 41289 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41289
} // closed Puma
 
41290
class CCExprResolve;
 
41291
class CExprResolve;
 
41292
class WinIfExists;
 
41293
class WinImportHandler;
 
41294
class WinMacros;
 
41295
class WinAsm;
 
41296
class WinDeclSpecs;
 
41297
class WinMemberExplSpec;
 
41298
class WinTypeKeywords;
 
41299
class WinFriend;
 
41300
class ExtAC;
 
41301
class ExtACBuilderCoupling;
 
41302
class ExtACSyntaxCoupling;
 
41303
class ExtACTree;
 
41304
class ExtACKeywords;
 
41305
class ExtGnu;
 
41306
class PragmaOnceUnitState;
 
41307
class PragmaOnce;
 
41308
class CMatchSyntax;
 
41309
namespace Puma {
 
41310
 
 
41311
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41312
class CT_Statement : public CTree {
 
41313
#line 41314 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41314
  friend class ::CCExprResolve;
 
41315
  friend class ::CExprResolve;
 
41316
  friend class ::WinIfExists;
 
41317
  friend class ::WinImportHandler;
 
41318
  friend class ::WinMacros;
 
41319
  friend class ::WinAsm;
 
41320
  friend class ::WinDeclSpecs;
 
41321
  friend class ::WinMemberExplSpec;
 
41322
  friend class ::WinTypeKeywords;
 
41323
  friend class ::WinFriend;
 
41324
  friend class ::ExtAC;
 
41325
  friend class ::ExtACBuilderCoupling;
 
41326
  friend class ::ExtACSyntaxCoupling;
 
41327
  friend class ::ExtACTree;
 
41328
  friend class ::ExtACKeywords;
 
41329
  friend class ::ExtGnu;
 
41330
  friend class ::PragmaOnceUnitState;
 
41331
  friend class ::PragmaOnce;
 
41332
  friend class ::CMatchSyntax;
 
41333
 
 
41334
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41335
 
 
41336
protected:
 
41337
  CT_Statement () {}
 
41338
  virtual CT_Statement *IsStatement () { return this; }
 
41339
};
 
41340
 
 
41341
 
 
41342
#line 41343 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41343
} // closed Puma
 
41344
class CCExprResolve;
 
41345
class CExprResolve;
 
41346
class WinIfExists;
 
41347
class WinImportHandler;
 
41348
class WinMacros;
 
41349
class WinAsm;
 
41350
class WinDeclSpecs;
 
41351
class WinMemberExplSpec;
 
41352
class WinTypeKeywords;
 
41353
class WinFriend;
 
41354
class ExtAC;
 
41355
class ExtACBuilderCoupling;
 
41356
class ExtACSyntaxCoupling;
 
41357
class ExtACTree;
 
41358
class ExtACKeywords;
 
41359
class ExtGnu;
 
41360
class PragmaOnceUnitState;
 
41361
class PragmaOnce;
 
41362
class CMatchSyntax;
 
41363
namespace Puma {
 
41364
 
 
41365
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41366
class CT_LabelStmt : public CT_Statement {
 
41367
#line 41368 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41368
  friend class ::CCExprResolve;
 
41369
  friend class ::CExprResolve;
 
41370
  friend class ::WinIfExists;
 
41371
  friend class ::WinImportHandler;
 
41372
  friend class ::WinMacros;
 
41373
  friend class ::WinAsm;
 
41374
  friend class ::WinDeclSpecs;
 
41375
  friend class ::WinMemberExplSpec;
 
41376
  friend class ::WinTypeKeywords;
 
41377
  friend class ::WinFriend;
 
41378
  friend class ::ExtAC;
 
41379
  friend class ::ExtACBuilderCoupling;
 
41380
  friend class ::ExtACSyntaxCoupling;
 
41381
  friend class ::ExtACTree;
 
41382
  friend class ::ExtACKeywords;
 
41383
  friend class ::ExtGnu;
 
41384
  friend class ::PragmaOnceUnitState;
 
41385
  friend class ::PragmaOnce;
 
41386
  friend class ::CMatchSyntax;
 
41387
 
 
41388
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41389
 
 
41390
  CTree *sons[3]; // id, colon, stmt
 
41391
 
 
41392
public:
 
41393
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
 
41394
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
 
41395
  }
 
41396
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
41397
  static const char *NodeId ();
 
41398
  /** Get the name of the node. Can be compared with NodeId(). */
 
41399
  const char *NodeName () const { return NodeId (); }
 
41400
  /** Get the number of sons. */
 
41401
  int Sons () const { return 3; }
 
41402
  /** Get the n-th son.
 
41403
   *  \param n The index of the son.
 
41404
   *  \return The n-th son or NULL. */
 
41405
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
41406
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
41407
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
41408
  /** Replace a son.
 
41409
   *  \param old_son The son to replace.
 
41410
   *  \param new_son The new son. */
 
41411
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
41412
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
41413
  }
 
41414
};
 
41415
 
 
41416
 
 
41417
#line 41418 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41418
} // closed Puma
 
41419
class CCExprResolve;
 
41420
class CExprResolve;
 
41421
class WinIfExists;
 
41422
class WinImportHandler;
 
41423
class WinMacros;
 
41424
class WinAsm;
 
41425
class WinDeclSpecs;
 
41426
class WinMemberExplSpec;
 
41427
class WinTypeKeywords;
 
41428
class WinFriend;
 
41429
class ExtAC;
 
41430
class ExtACBuilderCoupling;
 
41431
class ExtACSyntaxCoupling;
 
41432
class ExtACTree;
 
41433
class ExtACKeywords;
 
41434
class ExtGnu;
 
41435
class PragmaOnceUnitState;
 
41436
class PragmaOnce;
 
41437
class CMatchSyntax;
 
41438
namespace Puma {
 
41439
 
 
41440
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41441
class CT_DefaultStmt : public CT_Statement {
 
41442
#line 41443 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41443
  friend class ::CCExprResolve;
 
41444
  friend class ::CExprResolve;
 
41445
  friend class ::WinIfExists;
 
41446
  friend class ::WinImportHandler;
 
41447
  friend class ::WinMacros;
 
41448
  friend class ::WinAsm;
 
41449
  friend class ::WinDeclSpecs;
 
41450
  friend class ::WinMemberExplSpec;
 
41451
  friend class ::WinTypeKeywords;
 
41452
  friend class ::WinFriend;
 
41453
  friend class ::ExtAC;
 
41454
  friend class ::ExtACBuilderCoupling;
 
41455
  friend class ::ExtACSyntaxCoupling;
 
41456
  friend class ::ExtACTree;
 
41457
  friend class ::ExtACKeywords;
 
41458
  friend class ::ExtGnu;
 
41459
  friend class ::PragmaOnceUnitState;
 
41460
  friend class ::PragmaOnce;
 
41461
  friend class ::CMatchSyntax;
 
41462
 
 
41463
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41464
 
 
41465
  CTree *sons[3]; // keyword, colon, stmt
 
41466
 
 
41467
public:
 
41468
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
 
41469
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
 
41470
  }
 
41471
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
41472
  static const char *NodeId ();
 
41473
  /** Get the name of the node. Can be compared with NodeId(). */
 
41474
  const char *NodeName () const { return NodeId (); }
 
41475
  /** Get the number of sons. */
 
41476
  int Sons () const { return 3; }
 
41477
  /** Get the n-th son.
 
41478
   *  \param n The index of the son.
 
41479
   *  \return The n-th son or NULL. */
 
41480
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
41481
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
41482
  /** Replace a son.
 
41483
   *  \param old_son The son to replace.
 
41484
   *  \param new_son The new son. */
 
41485
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
41486
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
41487
  }
 
41488
};
 
41489
 
 
41490
 
 
41491
#line 41492 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41492
} // closed Puma
 
41493
class CCExprResolve;
 
41494
class CExprResolve;
 
41495
class WinIfExists;
 
41496
class WinImportHandler;
 
41497
class WinMacros;
 
41498
class WinAsm;
 
41499
class WinDeclSpecs;
 
41500
class WinMemberExplSpec;
 
41501
class WinTypeKeywords;
 
41502
class WinFriend;
 
41503
class ExtAC;
 
41504
class ExtACBuilderCoupling;
 
41505
class ExtACSyntaxCoupling;
 
41506
class ExtACTree;
 
41507
class ExtACKeywords;
 
41508
class ExtGnu;
 
41509
class PragmaOnceUnitState;
 
41510
class PragmaOnce;
 
41511
class CMatchSyntax;
 
41512
namespace Puma {
 
41513
 
 
41514
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41515
class CT_TryStmt : public CT_Statement {
 
41516
#line 41517 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41517
  friend class ::CCExprResolve;
 
41518
  friend class ::CExprResolve;
 
41519
  friend class ::WinIfExists;
 
41520
  friend class ::WinImportHandler;
 
41521
  friend class ::WinMacros;
 
41522
  friend class ::WinAsm;
 
41523
  friend class ::WinDeclSpecs;
 
41524
  friend class ::WinMemberExplSpec;
 
41525
  friend class ::WinTypeKeywords;
 
41526
  friend class ::WinFriend;
 
41527
  friend class ::ExtAC;
 
41528
  friend class ::ExtACBuilderCoupling;
 
41529
  friend class ::ExtACSyntaxCoupling;
 
41530
  friend class ::ExtACTree;
 
41531
  friend class ::ExtACKeywords;
 
41532
  friend class ::ExtGnu;
 
41533
  friend class ::PragmaOnceUnitState;
 
41534
  friend class ::PragmaOnce;
 
41535
  friend class ::CMatchSyntax;
 
41536
 
 
41537
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41538
 
 
41539
  CTree *sons[3]; // try, stmt, handlers
 
41540
 
 
41541
public:
 
41542
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
 
41543
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
 
41544
  }
 
41545
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
41546
  static const char *NodeId ();
 
41547
  /** Get the name of the node. Can be compared with NodeId(). */
 
41548
  const char *NodeName () const { return NodeId (); }
 
41549
  /** Get the number of sons. */
 
41550
  int Sons () const { return 3; }
 
41551
  /** Get the n-th son.
 
41552
   *  \param n The index of the son.
 
41553
   *  \return The n-th son or NULL. */
 
41554
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
41555
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
 
41556
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
41557
  /** Replace a son.
 
41558
   *  \param old_son The son to replace.
 
41559
   *  \param new_son The new son. */
 
41560
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
41561
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
41562
  }
 
41563
};
 
41564
 
 
41565
 
 
41566
#line 41567 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41567
} // closed Puma
 
41568
class CCExprResolve;
 
41569
class CExprResolve;
 
41570
class WinIfExists;
 
41571
class WinImportHandler;
 
41572
class WinMacros;
 
41573
class WinAsm;
 
41574
class WinDeclSpecs;
 
41575
class WinMemberExplSpec;
 
41576
class WinTypeKeywords;
 
41577
class WinFriend;
 
41578
class ExtAC;
 
41579
class ExtACBuilderCoupling;
 
41580
class ExtACSyntaxCoupling;
 
41581
class ExtACTree;
 
41582
class ExtACKeywords;
 
41583
class ExtGnu;
 
41584
class PragmaOnceUnitState;
 
41585
class PragmaOnce;
 
41586
class CMatchSyntax;
 
41587
namespace Puma {
 
41588
 
 
41589
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41590
class CT_CaseStmt : public CT_Statement {
 
41591
#line 41592 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41592
  friend class ::CCExprResolve;
 
41593
  friend class ::CExprResolve;
 
41594
  friend class ::WinIfExists;
 
41595
  friend class ::WinImportHandler;
 
41596
  friend class ::WinMacros;
 
41597
  friend class ::WinAsm;
 
41598
  friend class ::WinDeclSpecs;
 
41599
  friend class ::WinMemberExplSpec;
 
41600
  friend class ::WinTypeKeywords;
 
41601
  friend class ::WinFriend;
 
41602
  friend class ::ExtAC;
 
41603
  friend class ::ExtACBuilderCoupling;
 
41604
  friend class ::ExtACSyntaxCoupling;
 
41605
  friend class ::ExtACTree;
 
41606
  friend class ::ExtACKeywords;
 
41607
  friend class ::ExtGnu;
 
41608
  friend class ::PragmaOnceUnitState;
 
41609
  friend class ::PragmaOnce;
 
41610
  friend class ::CMatchSyntax;
 
41611
 
 
41612
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41613
 
 
41614
  CTree *sons[4]; // keyword, expr, colon, stmt
 
41615
 
 
41616
public:
 
41617
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
 
41618
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
41619
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
 
41620
  }
 
41621
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
41622
  static const char *NodeId ();
 
41623
  /** Get the name of the node. Can be compared with NodeId(). */
 
41624
  const char *NodeName () const { return NodeId (); }
 
41625
  /** Get the number of sons. */
 
41626
  int Sons () const { return 4; }
 
41627
  /** Get the n-th son.
 
41628
   *  \param n The index of the son.
 
41629
   *  \return The n-th son or NULL. */
 
41630
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
41631
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
 
41632
  CTree *Expr () const { return sons[1]; }
 
41633
  /** Replace a son.
 
41634
   *  \param old_son The son to replace.
 
41635
   *  \param new_son The new son. */
 
41636
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
41637
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
41638
  }
 
41639
};
 
41640
 
 
41641
 
 
41642
#line 41643 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41643
} // closed Puma
 
41644
class CCExprResolve;
 
41645
class CExprResolve;
 
41646
class WinIfExists;
 
41647
class WinImportHandler;
 
41648
class WinMacros;
 
41649
class WinAsm;
 
41650
class WinDeclSpecs;
 
41651
class WinMemberExplSpec;
 
41652
class WinTypeKeywords;
 
41653
class WinFriend;
 
41654
class ExtAC;
 
41655
class ExtACBuilderCoupling;
 
41656
class ExtACSyntaxCoupling;
 
41657
class ExtACTree;
 
41658
class ExtACKeywords;
 
41659
class ExtGnu;
 
41660
class PragmaOnceUnitState;
 
41661
class PragmaOnce;
 
41662
class CMatchSyntax;
 
41663
namespace Puma {
 
41664
 
 
41665
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41666
class CT_ExprStmt : public CT_Statement {
 
41667
#line 41668 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41668
  friend class ::CCExprResolve;
 
41669
  friend class ::CExprResolve;
 
41670
  friend class ::WinIfExists;
 
41671
  friend class ::WinImportHandler;
 
41672
  friend class ::WinMacros;
 
41673
  friend class ::WinAsm;
 
41674
  friend class ::WinDeclSpecs;
 
41675
  friend class ::WinMemberExplSpec;
 
41676
  friend class ::WinTypeKeywords;
 
41677
  friend class ::WinFriend;
 
41678
  friend class ::ExtAC;
 
41679
  friend class ::ExtACBuilderCoupling;
 
41680
  friend class ::ExtACSyntaxCoupling;
 
41681
  friend class ::ExtACTree;
 
41682
  friend class ::ExtACKeywords;
 
41683
  friend class ::ExtGnu;
 
41684
  friend class ::PragmaOnceUnitState;
 
41685
  friend class ::PragmaOnce;
 
41686
  friend class ::CMatchSyntax;
 
41687
 
 
41688
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41689
 
 
41690
  CTree *sons[2]; // expr, semi_colon
 
41691
 
 
41692
public:
 
41693
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
41694
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
41695
  static const char *NodeId ();
 
41696
  /** Get the name of the node. Can be compared with NodeId(). */
 
41697
  const char *NodeName () const { return NodeId (); }
 
41698
  /** Get the number of sons. */
 
41699
  int Sons () const { return CTree::Sons (sons, 2); }
 
41700
  /** Get the n-th son.
 
41701
   *  \param n The index of the son.
 
41702
   *  \return The n-th son or NULL. */
 
41703
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
41704
  CTree *Expr () const { return sons[0]; }
 
41705
  /** Replace a son.
 
41706
   *  \param old_son The son to replace.
 
41707
   *  \param new_son The new son. */
 
41708
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
41709
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
41710
  }
 
41711
};
 
41712
 
 
41713
 
 
41714
#line 41715 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41715
} // closed Puma
 
41716
class CCExprResolve;
 
41717
class CExprResolve;
 
41718
class WinIfExists;
 
41719
class WinImportHandler;
 
41720
class WinMacros;
 
41721
class WinAsm;
 
41722
class WinDeclSpecs;
 
41723
class WinMemberExplSpec;
 
41724
class WinTypeKeywords;
 
41725
class WinFriend;
 
41726
class ExtAC;
 
41727
class ExtACBuilderCoupling;
 
41728
class ExtACSyntaxCoupling;
 
41729
class ExtACTree;
 
41730
class ExtACKeywords;
 
41731
class ExtGnu;
 
41732
class PragmaOnceUnitState;
 
41733
class PragmaOnce;
 
41734
class CMatchSyntax;
 
41735
namespace Puma {
 
41736
 
 
41737
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41738
class CT_DeclStmt : public CT_Statement {
 
41739
#line 41740 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41740
  friend class ::CCExprResolve;
 
41741
  friend class ::CExprResolve;
 
41742
  friend class ::WinIfExists;
 
41743
  friend class ::WinImportHandler;
 
41744
  friend class ::WinMacros;
 
41745
  friend class ::WinAsm;
 
41746
  friend class ::WinDeclSpecs;
 
41747
  friend class ::WinMemberExplSpec;
 
41748
  friend class ::WinTypeKeywords;
 
41749
  friend class ::WinFriend;
 
41750
  friend class ::ExtAC;
 
41751
  friend class ::ExtACBuilderCoupling;
 
41752
  friend class ::ExtACSyntaxCoupling;
 
41753
  friend class ::ExtACTree;
 
41754
  friend class ::ExtACKeywords;
 
41755
  friend class ::ExtGnu;
 
41756
  friend class ::PragmaOnceUnitState;
 
41757
  friend class ::PragmaOnce;
 
41758
  friend class ::CMatchSyntax;
 
41759
 
 
41760
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41761
 
 
41762
  CTree *_decl;
 
41763
 
 
41764
public:
 
41765
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
41766
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
41767
  static const char *NodeId ();
 
41768
  /** Get the name of the node. Can be compared with NodeId(). */
 
41769
  const char *NodeName () const { return NodeId (); }
 
41770
  /** Get the number of sons. */
 
41771
  int Sons () const { return 1; }
 
41772
  /** Get the n-th son.
 
41773
   *  \param n The index of the son.
 
41774
   *  \return The n-th son or NULL. */
 
41775
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
41776
  /** Replace a son.
 
41777
   *  \param old_son The son to replace.
 
41778
   *  \param new_son The new son. */
 
41779
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
41780
   { CTree::ReplaceSon (_decl, old_son, new_son); }
 
41781
};
 
41782
 
 
41783
 
 
41784
#line 41785 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41785
} // closed Puma
 
41786
class CCExprResolve;
 
41787
class CExprResolve;
 
41788
class WinIfExists;
 
41789
class WinImportHandler;
 
41790
class WinMacros;
 
41791
class WinAsm;
 
41792
class WinDeclSpecs;
 
41793
class WinMemberExplSpec;
 
41794
class WinTypeKeywords;
 
41795
class WinFriend;
 
41796
class ExtAC;
 
41797
class ExtACBuilderCoupling;
 
41798
class ExtACSyntaxCoupling;
 
41799
class ExtACTree;
 
41800
class ExtACKeywords;
 
41801
class ExtGnu;
 
41802
class PragmaOnceUnitState;
 
41803
class PragmaOnce;
 
41804
class CMatchSyntax;
 
41805
namespace Puma {
 
41806
 
 
41807
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41808
class CT_SwitchStmt : public CT_Statement, public CSemScope {
 
41809
#line 41810 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41810
  friend class ::CCExprResolve;
 
41811
  friend class ::CExprResolve;
 
41812
  friend class ::WinIfExists;
 
41813
  friend class ::WinImportHandler;
 
41814
  friend class ::WinMacros;
 
41815
  friend class ::WinAsm;
 
41816
  friend class ::WinDeclSpecs;
 
41817
  friend class ::WinMemberExplSpec;
 
41818
  friend class ::WinTypeKeywords;
 
41819
  friend class ::WinFriend;
 
41820
  friend class ::ExtAC;
 
41821
  friend class ::ExtACBuilderCoupling;
 
41822
  friend class ::ExtACSyntaxCoupling;
 
41823
  friend class ::ExtACTree;
 
41824
  friend class ::ExtACKeywords;
 
41825
  friend class ::ExtGnu;
 
41826
  friend class ::PragmaOnceUnitState;
 
41827
  friend class ::PragmaOnce;
 
41828
  friend class ::CMatchSyntax;
 
41829
 
 
41830
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41831
 
 
41832
  CTree *sons[5]; // keyword, open, cond, close, stmt
 
41833
 
 
41834
public:
 
41835
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
41836
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
41837
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
41838
  }
 
41839
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
41840
  static const char *NodeId ();
 
41841
  /** Get the name of the node. Can be compared with NodeId(). */
 
41842
  const char *NodeName () const { return NodeId (); }
 
41843
  /** Get the number of sons. */
 
41844
  int Sons () const { return 5; }
 
41845
  /** Get the n-th son.
 
41846
   *  \param n The index of the son.
 
41847
   *  \return The n-th son or NULL. */
 
41848
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
41849
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
41850
  CTree *Condition () const { return sons[2]; }
 
41851
  /** Replace a son.
 
41852
   *  \param old_son The son to replace.
 
41853
   *  \param new_son The new son. */
 
41854
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
41855
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
41856
  }
 
41857
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
41858
};
 
41859
 
 
41860
 
 
41861
#line 41862 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41862
} // closed Puma
 
41863
class CCExprResolve;
 
41864
class CExprResolve;
 
41865
class WinIfExists;
 
41866
class WinImportHandler;
 
41867
class WinMacros;
 
41868
class WinAsm;
 
41869
class WinDeclSpecs;
 
41870
class WinMemberExplSpec;
 
41871
class WinTypeKeywords;
 
41872
class WinFriend;
 
41873
class ExtAC;
 
41874
class ExtACBuilderCoupling;
 
41875
class ExtACSyntaxCoupling;
 
41876
class ExtACTree;
 
41877
class ExtACKeywords;
 
41878
class ExtGnu;
 
41879
class PragmaOnceUnitState;
 
41880
class PragmaOnce;
 
41881
class CMatchSyntax;
 
41882
namespace Puma {
 
41883
 
 
41884
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41885
class CT_IfStmt : public CT_Statement, public CSemScope {
 
41886
#line 41887 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41887
  friend class ::CCExprResolve;
 
41888
  friend class ::CExprResolve;
 
41889
  friend class ::WinIfExists;
 
41890
  friend class ::WinImportHandler;
 
41891
  friend class ::WinMacros;
 
41892
  friend class ::WinAsm;
 
41893
  friend class ::WinDeclSpecs;
 
41894
  friend class ::WinMemberExplSpec;
 
41895
  friend class ::WinTypeKeywords;
 
41896
  friend class ::WinFriend;
 
41897
  friend class ::ExtAC;
 
41898
  friend class ::ExtACBuilderCoupling;
 
41899
  friend class ::ExtACSyntaxCoupling;
 
41900
  friend class ::ExtACTree;
 
41901
  friend class ::ExtACKeywords;
 
41902
  friend class ::ExtGnu;
 
41903
  friend class ::PragmaOnceUnitState;
 
41904
  friend class ::PragmaOnce;
 
41905
  friend class ::CMatchSyntax;
 
41906
 
 
41907
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41908
 
 
41909
  CTree *sons[5]; // keyword, open, cond, close, stmt
 
41910
 
 
41911
public:
 
41912
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
41913
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
41914
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
41915
  }
 
41916
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
41917
  static const char *NodeId ();
 
41918
  /** Get the name of the node. Can be compared with NodeId(). */
 
41919
  const char *NodeName () const { return NodeId (); }
 
41920
  /** Get the number of sons. */
 
41921
  int Sons () const { return 5; }
 
41922
  /** Get the n-th son.
 
41923
   *  \param n The index of the son.
 
41924
   *  \return The n-th son or NULL. */
 
41925
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
41926
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
41927
  CTree *Condition () const { return sons[2]; }
 
41928
  /** Replace a son.
 
41929
   *  \param old_son The son to replace.
 
41930
   *  \param new_son The new son. */
 
41931
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
41932
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
41933
  }
 
41934
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
41935
};
 
41936
 
 
41937
 
 
41938
#line 41939 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41939
} // closed Puma
 
41940
class CCExprResolve;
 
41941
class CExprResolve;
 
41942
class WinIfExists;
 
41943
class WinImportHandler;
 
41944
class WinMacros;
 
41945
class WinAsm;
 
41946
class WinDeclSpecs;
 
41947
class WinMemberExplSpec;
 
41948
class WinTypeKeywords;
 
41949
class WinFriend;
 
41950
class ExtAC;
 
41951
class ExtACBuilderCoupling;
 
41952
class ExtACSyntaxCoupling;
 
41953
class ExtACTree;
 
41954
class ExtACKeywords;
 
41955
class ExtGnu;
 
41956
class PragmaOnceUnitState;
 
41957
class PragmaOnce;
 
41958
class CMatchSyntax;
 
41959
namespace Puma {
 
41960
 
 
41961
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41962
class CT_IfElseStmt : public CT_Statement, public CSemScope {
 
41963
#line 41964 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
41964
  friend class ::CCExprResolve;
 
41965
  friend class ::CExprResolve;
 
41966
  friend class ::WinIfExists;
 
41967
  friend class ::WinImportHandler;
 
41968
  friend class ::WinMacros;
 
41969
  friend class ::WinAsm;
 
41970
  friend class ::WinDeclSpecs;
 
41971
  friend class ::WinMemberExplSpec;
 
41972
  friend class ::WinTypeKeywords;
 
41973
  friend class ::WinFriend;
 
41974
  friend class ::ExtAC;
 
41975
  friend class ::ExtACBuilderCoupling;
 
41976
  friend class ::ExtACSyntaxCoupling;
 
41977
  friend class ::ExtACTree;
 
41978
  friend class ::ExtACKeywords;
 
41979
  friend class ::ExtGnu;
 
41980
  friend class ::PragmaOnceUnitState;
 
41981
  friend class ::PragmaOnce;
 
41982
  friend class ::CMatchSyntax;
 
41983
 
 
41984
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41985
 
 
41986
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
 
41987
 
 
41988
public:
 
41989
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
 
41990
                 CTree *is, CTree *e, CTree *es) {
 
41991
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
41992
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
41993
    AddSon (sons[6], es); 
 
41994
  }
 
41995
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
41996
  static const char *NodeId ();
 
41997
  /** Get the name of the node. Can be compared with NodeId(). */
 
41998
  const char *NodeName () const { return NodeId (); }
 
41999
  /** Get the number of sons. */
 
42000
  int Sons () const { return 7; }
 
42001
  /** Get the n-th son.
 
42002
   *  \param n The index of the son.
 
42003
   *  \return The n-th son or NULL. */
 
42004
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
42005
  CTree *Condition () const { return sons[2]; }
 
42006
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
 
42007
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
42008
  /** Replace a son.
 
42009
   *  \param old_son The son to replace.
 
42010
   *  \param new_son The new son. */
 
42011
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
42012
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
42013
  }
 
42014
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
42015
};
 
42016
 
 
42017
 
 
42018
#line 42019 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42019
} // closed Puma
 
42020
class CCExprResolve;
 
42021
class CExprResolve;
 
42022
class WinIfExists;
 
42023
class WinImportHandler;
 
42024
class WinMacros;
 
42025
class WinAsm;
 
42026
class WinDeclSpecs;
 
42027
class WinMemberExplSpec;
 
42028
class WinTypeKeywords;
 
42029
class WinFriend;
 
42030
class ExtAC;
 
42031
class ExtACBuilderCoupling;
 
42032
class ExtACSyntaxCoupling;
 
42033
class ExtACTree;
 
42034
class ExtACKeywords;
 
42035
class ExtGnu;
 
42036
class PragmaOnceUnitState;
 
42037
class PragmaOnce;
 
42038
class CMatchSyntax;
 
42039
namespace Puma {
 
42040
 
 
42041
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42042
class CT_BreakStmt : public CT_Statement {
 
42043
#line 42044 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42044
  friend class ::CCExprResolve;
 
42045
  friend class ::CExprResolve;
 
42046
  friend class ::WinIfExists;
 
42047
  friend class ::WinImportHandler;
 
42048
  friend class ::WinMacros;
 
42049
  friend class ::WinAsm;
 
42050
  friend class ::WinDeclSpecs;
 
42051
  friend class ::WinMemberExplSpec;
 
42052
  friend class ::WinTypeKeywords;
 
42053
  friend class ::WinFriend;
 
42054
  friend class ::ExtAC;
 
42055
  friend class ::ExtACBuilderCoupling;
 
42056
  friend class ::ExtACSyntaxCoupling;
 
42057
  friend class ::ExtACTree;
 
42058
  friend class ::ExtACKeywords;
 
42059
  friend class ::ExtGnu;
 
42060
  friend class ::PragmaOnceUnitState;
 
42061
  friend class ::PragmaOnce;
 
42062
  friend class ::CMatchSyntax;
 
42063
 
 
42064
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42065
 
 
42066
  CTree *sons[2]; // key, semi_colon
 
42067
 
 
42068
public:
 
42069
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
42070
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42071
  static const char *NodeId ();
 
42072
  /** Get the name of the node. Can be compared with NodeId(). */
 
42073
  const char *NodeName () const { return NodeId (); }
 
42074
  /** Get the number of sons. */
 
42075
  int Sons () const { return 2; }
 
42076
  /** Get the n-th son.
 
42077
   *  \param n The index of the son.
 
42078
   *  \return The n-th son or NULL. */
 
42079
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
42080
  /** Replace a son.
 
42081
   *  \param old_son The son to replace.
 
42082
   *  \param new_son The new son. */
 
42083
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
42084
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
42085
  }
 
42086
};
 
42087
 
 
42088
 
 
42089
#line 42090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42090
} // closed Puma
 
42091
class CCExprResolve;
 
42092
class CExprResolve;
 
42093
class WinIfExists;
 
42094
class WinImportHandler;
 
42095
class WinMacros;
 
42096
class WinAsm;
 
42097
class WinDeclSpecs;
 
42098
class WinMemberExplSpec;
 
42099
class WinTypeKeywords;
 
42100
class WinFriend;
 
42101
class ExtAC;
 
42102
class ExtACBuilderCoupling;
 
42103
class ExtACSyntaxCoupling;
 
42104
class ExtACTree;
 
42105
class ExtACKeywords;
 
42106
class ExtGnu;
 
42107
class PragmaOnceUnitState;
 
42108
class PragmaOnce;
 
42109
class CMatchSyntax;
 
42110
namespace Puma {
 
42111
 
 
42112
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42113
class CT_ContinueStmt : public CT_Statement {
 
42114
#line 42115 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42115
  friend class ::CCExprResolve;
 
42116
  friend class ::CExprResolve;
 
42117
  friend class ::WinIfExists;
 
42118
  friend class ::WinImportHandler;
 
42119
  friend class ::WinMacros;
 
42120
  friend class ::WinAsm;
 
42121
  friend class ::WinDeclSpecs;
 
42122
  friend class ::WinMemberExplSpec;
 
42123
  friend class ::WinTypeKeywords;
 
42124
  friend class ::WinFriend;
 
42125
  friend class ::ExtAC;
 
42126
  friend class ::ExtACBuilderCoupling;
 
42127
  friend class ::ExtACSyntaxCoupling;
 
42128
  friend class ::ExtACTree;
 
42129
  friend class ::ExtACKeywords;
 
42130
  friend class ::ExtGnu;
 
42131
  friend class ::PragmaOnceUnitState;
 
42132
  friend class ::PragmaOnce;
 
42133
  friend class ::CMatchSyntax;
 
42134
 
 
42135
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42136
 
 
42137
  CTree *sons[2]; // key, semi_colon
 
42138
 
 
42139
public:
 
42140
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
42141
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42142
  static const char *NodeId ();
 
42143
  /** Get the name of the node. Can be compared with NodeId(). */
 
42144
  const char *NodeName () const { return NodeId (); }
 
42145
  /** Get the number of sons. */
 
42146
  int Sons () const { return 2; }
 
42147
  /** Get the n-th son.
 
42148
   *  \param n The index of the son.
 
42149
   *  \return The n-th son or NULL. */
 
42150
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
42151
  /** Replace a son.
 
42152
   *  \param old_son The son to replace.
 
42153
   *  \param new_son The new son. */
 
42154
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
42155
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
42156
  }
 
42157
};
 
42158
 
 
42159
 
 
42160
#line 42161 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42161
} // closed Puma
 
42162
class CCExprResolve;
 
42163
class CExprResolve;
 
42164
class WinIfExists;
 
42165
class WinImportHandler;
 
42166
class WinMacros;
 
42167
class WinAsm;
 
42168
class WinDeclSpecs;
 
42169
class WinMemberExplSpec;
 
42170
class WinTypeKeywords;
 
42171
class WinFriend;
 
42172
class ExtAC;
 
42173
class ExtACBuilderCoupling;
 
42174
class ExtACSyntaxCoupling;
 
42175
class ExtACTree;
 
42176
class ExtACKeywords;
 
42177
class ExtGnu;
 
42178
class PragmaOnceUnitState;
 
42179
class PragmaOnce;
 
42180
class CMatchSyntax;
 
42181
namespace Puma {
 
42182
 
 
42183
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42184
class CT_GotoStmt : public CT_Statement {
 
42185
#line 42186 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42186
  friend class ::CCExprResolve;
 
42187
  friend class ::CExprResolve;
 
42188
  friend class ::WinIfExists;
 
42189
  friend class ::WinImportHandler;
 
42190
  friend class ::WinMacros;
 
42191
  friend class ::WinAsm;
 
42192
  friend class ::WinDeclSpecs;
 
42193
  friend class ::WinMemberExplSpec;
 
42194
  friend class ::WinTypeKeywords;
 
42195
  friend class ::WinFriend;
 
42196
  friend class ::ExtAC;
 
42197
  friend class ::ExtACBuilderCoupling;
 
42198
  friend class ::ExtACSyntaxCoupling;
 
42199
  friend class ::ExtACTree;
 
42200
  friend class ::ExtACKeywords;
 
42201
  friend class ::ExtGnu;
 
42202
  friend class ::PragmaOnceUnitState;
 
42203
  friend class ::PragmaOnce;
 
42204
  friend class ::CMatchSyntax;
 
42205
 
 
42206
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42207
 
 
42208
  CTree *sons[3]; // key, label, semi_colon
 
42209
 
 
42210
public:
 
42211
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
 
42212
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
 
42213
  }
 
42214
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42215
  static const char *NodeId ();
 
42216
  /** Get the name of the node. Can be compared with NodeId(). */
 
42217
  const char *NodeName () const { return NodeId (); }
 
42218
  /** Get the number of sons. */
 
42219
  int Sons () const { return 3; }
 
42220
  /** Get the n-th son.
 
42221
   *  \param n The index of the son.
 
42222
   *  \return The n-th son or NULL. */
 
42223
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
42224
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
42225
  /** Replace a son.
 
42226
   *  \param old_son The son to replace.
 
42227
   *  \param new_son The new son. */
 
42228
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
42229
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
42230
  }
 
42231
};
 
42232
 
 
42233
 
 
42234
#line 42235 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42235
} // closed Puma
 
42236
class CCExprResolve;
 
42237
class CExprResolve;
 
42238
class WinIfExists;
 
42239
class WinImportHandler;
 
42240
class WinMacros;
 
42241
class WinAsm;
 
42242
class WinDeclSpecs;
 
42243
class WinMemberExplSpec;
 
42244
class WinTypeKeywords;
 
42245
class WinFriend;
 
42246
class ExtAC;
 
42247
class ExtACBuilderCoupling;
 
42248
class ExtACSyntaxCoupling;
 
42249
class ExtACTree;
 
42250
class ExtACKeywords;
 
42251
class ExtGnu;
 
42252
class PragmaOnceUnitState;
 
42253
class PragmaOnce;
 
42254
class CMatchSyntax;
 
42255
namespace Puma {
 
42256
 
 
42257
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42258
class CT_ReturnStmt : public CT_Statement {
 
42259
#line 42260 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42260
  friend class ::CCExprResolve;
 
42261
  friend class ::CExprResolve;
 
42262
  friend class ::WinIfExists;
 
42263
  friend class ::WinImportHandler;
 
42264
  friend class ::WinMacros;
 
42265
  friend class ::WinAsm;
 
42266
  friend class ::WinDeclSpecs;
 
42267
  friend class ::WinMemberExplSpec;
 
42268
  friend class ::WinTypeKeywords;
 
42269
  friend class ::WinFriend;
 
42270
  friend class ::ExtAC;
 
42271
  friend class ::ExtACBuilderCoupling;
 
42272
  friend class ::ExtACSyntaxCoupling;
 
42273
  friend class ::ExtACTree;
 
42274
  friend class ::ExtACKeywords;
 
42275
  friend class ::ExtGnu;
 
42276
  friend class ::PragmaOnceUnitState;
 
42277
  friend class ::PragmaOnce;
 
42278
  friend class ::CMatchSyntax;
 
42279
 
 
42280
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42281
 
 
42282
  CTree *sons[3]; // key, expr, semi_colon
 
42283
 
 
42284
public:
 
42285
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
 
42286
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
 
42287
  }
 
42288
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42289
  static const char *NodeId ();
 
42290
  /** Get the name of the node. Can be compared with NodeId(). */
 
42291
  const char *NodeName () const { return NodeId (); }
 
42292
  /** Get the number of sons. */
 
42293
  int Sons () const { return CTree::Sons (sons, 3); }
 
42294
  /** Get the n-th son.
 
42295
   *  \param n The index of the son.
 
42296
   *  \return The n-th son or NULL. */
 
42297
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
42298
  CTree *Expr () const { return sons[1]; }
 
42299
  /** Replace a son.
 
42300
   *  \param old_son The son to replace.
 
42301
   *  \param new_son The new son. */
 
42302
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
42303
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
42304
  }
 
42305
};
 
42306
 
 
42307
 
 
42308
#line 42309 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42309
} // closed Puma
 
42310
class CCExprResolve;
 
42311
class CExprResolve;
 
42312
class WinIfExists;
 
42313
class WinImportHandler;
 
42314
class WinMacros;
 
42315
class WinAsm;
 
42316
class WinDeclSpecs;
 
42317
class WinMemberExplSpec;
 
42318
class WinTypeKeywords;
 
42319
class WinFriend;
 
42320
class ExtAC;
 
42321
class ExtACBuilderCoupling;
 
42322
class ExtACSyntaxCoupling;
 
42323
class ExtACTree;
 
42324
class ExtACKeywords;
 
42325
class ExtGnu;
 
42326
class PragmaOnceUnitState;
 
42327
class PragmaOnce;
 
42328
class CMatchSyntax;
 
42329
namespace Puma {
 
42330
 
 
42331
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42332
class CT_WhileStmt : public CT_Statement, public CSemScope {
 
42333
#line 42334 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42334
  friend class ::CCExprResolve;
 
42335
  friend class ::CExprResolve;
 
42336
  friend class ::WinIfExists;
 
42337
  friend class ::WinImportHandler;
 
42338
  friend class ::WinMacros;
 
42339
  friend class ::WinAsm;
 
42340
  friend class ::WinDeclSpecs;
 
42341
  friend class ::WinMemberExplSpec;
 
42342
  friend class ::WinTypeKeywords;
 
42343
  friend class ::WinFriend;
 
42344
  friend class ::ExtAC;
 
42345
  friend class ::ExtACBuilderCoupling;
 
42346
  friend class ::ExtACSyntaxCoupling;
 
42347
  friend class ::ExtACTree;
 
42348
  friend class ::ExtACKeywords;
 
42349
  friend class ::ExtGnu;
 
42350
  friend class ::PragmaOnceUnitState;
 
42351
  friend class ::PragmaOnce;
 
42352
  friend class ::CMatchSyntax;
 
42353
 
 
42354
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42355
 
 
42356
  CTree *sons[5]; // key, open, cond, close, stmt
 
42357
 
 
42358
public:
 
42359
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
42360
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
42361
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
42362
  }
 
42363
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42364
  static const char *NodeId ();
 
42365
  /** Get the name of the node. Can be compared with NodeId(). */
 
42366
  const char *NodeName () const { return NodeId (); }
 
42367
  /** Get the number of sons. */
 
42368
  int Sons () const { return 5; }
 
42369
  /** Get the n-th son.
 
42370
   *  \param n The index of the son.
 
42371
   *  \return The n-th son or NULL. */
 
42372
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
42373
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
42374
  CTree *Condition () const { return sons[2]; }
 
42375
  /** Replace a son.
 
42376
   *  \param old_son The son to replace.
 
42377
   *  \param new_son The new son. */
 
42378
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
42379
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
42380
  }
 
42381
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
42382
};
 
42383
 
 
42384
 
 
42385
#line 42386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42386
} // closed Puma
 
42387
class CCExprResolve;
 
42388
class CExprResolve;
 
42389
class WinIfExists;
 
42390
class WinImportHandler;
 
42391
class WinMacros;
 
42392
class WinAsm;
 
42393
class WinDeclSpecs;
 
42394
class WinMemberExplSpec;
 
42395
class WinTypeKeywords;
 
42396
class WinFriend;
 
42397
class ExtAC;
 
42398
class ExtACBuilderCoupling;
 
42399
class ExtACSyntaxCoupling;
 
42400
class ExtACTree;
 
42401
class ExtACKeywords;
 
42402
class ExtGnu;
 
42403
class PragmaOnceUnitState;
 
42404
class PragmaOnce;
 
42405
class CMatchSyntax;
 
42406
namespace Puma {
 
42407
 
 
42408
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42409
class CT_DoStmt : public CT_Statement {
 
42410
#line 42411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42411
  friend class ::CCExprResolve;
 
42412
  friend class ::CExprResolve;
 
42413
  friend class ::WinIfExists;
 
42414
  friend class ::WinImportHandler;
 
42415
  friend class ::WinMacros;
 
42416
  friend class ::WinAsm;
 
42417
  friend class ::WinDeclSpecs;
 
42418
  friend class ::WinMemberExplSpec;
 
42419
  friend class ::WinTypeKeywords;
 
42420
  friend class ::WinFriend;
 
42421
  friend class ::ExtAC;
 
42422
  friend class ::ExtACBuilderCoupling;
 
42423
  friend class ::ExtACSyntaxCoupling;
 
42424
  friend class ::ExtACTree;
 
42425
  friend class ::ExtACKeywords;
 
42426
  friend class ::ExtGnu;
 
42427
  friend class ::PragmaOnceUnitState;
 
42428
  friend class ::PragmaOnce;
 
42429
  friend class ::CMatchSyntax;
 
42430
 
 
42431
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42432
 
 
42433
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
 
42434
 
 
42435
public:
 
42436
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
 
42437
             CTree *c, CTree *sc) {
 
42438
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
42439
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
42440
    AddSon (sons[6], sc); 
 
42441
  }
 
42442
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42443
  static const char *NodeId ();
 
42444
  /** Get the name of the node. Can be compared with NodeId(). */
 
42445
  const char *NodeName () const { return NodeId (); }
 
42446
  /** Get the number of sons. */
 
42447
  int Sons () const { return 7; }
 
42448
  /** Get the n-th son.
 
42449
   *  \param n The index of the son.
 
42450
   *  \return The n-th son or NULL. */
 
42451
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
42452
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
 
42453
  CTree *Expr () const { return sons[4]; }
 
42454
  /** Replace a son.
 
42455
   *  \param old_son The son to replace.
 
42456
   *  \param new_son The new son. */
 
42457
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
42458
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
42459
  }
 
42460
};
 
42461
 
 
42462
 
 
42463
#line 42464 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42464
} // closed Puma
 
42465
class CCExprResolve;
 
42466
class CExprResolve;
 
42467
class WinIfExists;
 
42468
class WinImportHandler;
 
42469
class WinMacros;
 
42470
class WinAsm;
 
42471
class WinDeclSpecs;
 
42472
class WinMemberExplSpec;
 
42473
class WinTypeKeywords;
 
42474
class WinFriend;
 
42475
class ExtAC;
 
42476
class ExtACBuilderCoupling;
 
42477
class ExtACSyntaxCoupling;
 
42478
class ExtACTree;
 
42479
class ExtACKeywords;
 
42480
class ExtGnu;
 
42481
class PragmaOnceUnitState;
 
42482
class PragmaOnce;
 
42483
class CMatchSyntax;
 
42484
namespace Puma {
 
42485
 
 
42486
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42487
class CT_ForStmt : public CT_Statement, public CSemScope {
 
42488
#line 42489 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42489
  friend class ::CCExprResolve;
 
42490
  friend class ::CExprResolve;
 
42491
  friend class ::WinIfExists;
 
42492
  friend class ::WinImportHandler;
 
42493
  friend class ::WinMacros;
 
42494
  friend class ::WinAsm;
 
42495
  friend class ::WinDeclSpecs;
 
42496
  friend class ::WinMemberExplSpec;
 
42497
  friend class ::WinTypeKeywords;
 
42498
  friend class ::WinFriend;
 
42499
  friend class ::ExtAC;
 
42500
  friend class ::ExtACBuilderCoupling;
 
42501
  friend class ::ExtACSyntaxCoupling;
 
42502
  friend class ::ExtACTree;
 
42503
  friend class ::ExtACKeywords;
 
42504
  friend class ::ExtGnu;
 
42505
  friend class ::PragmaOnceUnitState;
 
42506
  friend class ::PragmaOnce;
 
42507
  friend class ::CMatchSyntax;
 
42508
 
 
42509
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42510
 
 
42511
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
 
42512
 
 
42513
public:
 
42514
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
 
42515
              CTree *e, CTree *c, CTree *stmt) {
 
42516
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
42517
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
42518
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
 
42519
  }
 
42520
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42521
  static const char *NodeId ();
 
42522
  /** Get the name of the node. Can be compared with NodeId(). */
 
42523
  const char *NodeName () const { return NodeId (); }
 
42524
  /** Get the number of sons. */
 
42525
  int Sons () const { return CTree::Sons (sons, 8); }
 
42526
  /** Get the n-th son.
 
42527
   *  \param n The index of the son.
 
42528
   *  \return The n-th son or NULL. */
 
42529
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
 
42530
  CTree *InitStmt () const { return sons[2]; }
 
42531
  CTree *Condition () const { return sons[3]; }
 
42532
  CTree *Expr () const { return sons[5]; }
 
42533
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
42534
  /** Replace a son.
 
42535
   *  \param old_son The son to replace.
 
42536
   *  \param new_son The new son. */
 
42537
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
42538
    CTree::ReplaceSon (sons, 8, old_son, new_son);
 
42539
  }
 
42540
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
42541
};
 
42542
 
 
42543
 
 
42544
#line 42545 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42545
} // closed Puma
 
42546
class CCExprResolve;
 
42547
class CExprResolve;
 
42548
class WinIfExists;
 
42549
class WinImportHandler;
 
42550
class WinMacros;
 
42551
class WinAsm;
 
42552
class WinDeclSpecs;
 
42553
class WinMemberExplSpec;
 
42554
class WinTypeKeywords;
 
42555
class WinFriend;
 
42556
class ExtAC;
 
42557
class ExtACBuilderCoupling;
 
42558
class ExtACSyntaxCoupling;
 
42559
class ExtACTree;
 
42560
class ExtACKeywords;
 
42561
class ExtGnu;
 
42562
class PragmaOnceUnitState;
 
42563
class PragmaOnce;
 
42564
class CMatchSyntax;
 
42565
namespace Puma {
 
42566
 
 
42567
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42568
class CT_Condition : public CT_Decl, public CSemObject {
 
42569
#line 42570 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42570
  friend class ::CCExprResolve;
 
42571
  friend class ::CExprResolve;
 
42572
  friend class ::WinIfExists;
 
42573
  friend class ::WinImportHandler;
 
42574
  friend class ::WinMacros;
 
42575
  friend class ::WinAsm;
 
42576
  friend class ::WinDeclSpecs;
 
42577
  friend class ::WinMemberExplSpec;
 
42578
  friend class ::WinTypeKeywords;
 
42579
  friend class ::WinFriend;
 
42580
  friend class ::ExtAC;
 
42581
  friend class ::ExtACBuilderCoupling;
 
42582
  friend class ::ExtACSyntaxCoupling;
 
42583
  friend class ::ExtACTree;
 
42584
  friend class ::ExtACKeywords;
 
42585
  friend class ::ExtGnu;
 
42586
  friend class ::PragmaOnceUnitState;
 
42587
  friend class ::PragmaOnce;
 
42588
  friend class ::CMatchSyntax;
 
42589
 
 
42590
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42591
 
 
42592
  CTree *sons[3]; // declspecs, declarator, init
 
42593
 
 
42594
public:
 
42595
  CT_Condition (CTree *dsl, CTree *d) {
 
42596
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
 
42597
  }
 
42598
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42599
  static const char *NodeId ();
 
42600
  /** Get the name of the node. Can be compared with NodeId(). */
 
42601
  const char *NodeName () const { return NodeId (); }
 
42602
  /** Get the number of sons. */
 
42603
  int Sons () const { return CTree::Sons (sons, 3); }
 
42604
  /** Get the n-th son.
 
42605
   *  \param n The index of the son.
 
42606
   *  \return The n-th son or NULL. */
 
42607
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
42608
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
42609
  CTree *Declarator () const { return sons[1]; }
 
42610
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
42611
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
42612
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
42613
  /** Replace a son.
 
42614
   *  \param old_son The son to replace.
 
42615
   *  \param new_son The new son. */
 
42616
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
42617
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
42618
  }
 
42619
};
 
42620
 
 
42621
/*****************************************************************************/
 
42622
/*                                                                           */
 
42623
/*                              Classes                                      */
 
42624
/*                                                                           */
 
42625
/*****************************************************************************/
 
42626
 
 
42627
 
 
42628
#line 42629 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42629
} // closed Puma
 
42630
class CCExprResolve;
 
42631
class CExprResolve;
 
42632
class WinIfExists;
 
42633
class WinImportHandler;
 
42634
class WinMacros;
 
42635
class WinAsm;
 
42636
class WinDeclSpecs;
 
42637
class WinMemberExplSpec;
 
42638
class WinTypeKeywords;
 
42639
class WinFriend;
 
42640
class ExtAC;
 
42641
class ExtACBuilderCoupling;
 
42642
class ExtACSyntaxCoupling;
 
42643
class ExtACTree;
 
42644
class ExtACKeywords;
 
42645
class ExtGnu;
 
42646
class PragmaOnceUnitState;
 
42647
class PragmaOnce;
 
42648
class CMatchSyntax;
 
42649
namespace Puma {
 
42650
 
 
42651
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42652
 
 
42653
#line 42654 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42654
} // closed Puma
 
42655
 
 
42656
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
42657
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
42658
#include "ExtACTree.ah"
 
42659
#endif
 
42660
namespace Puma {
 
42661
 
 
42662
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42663
class CT_ClassDef : public CT_Decl, public CSemObject {
 
42664
#line 42665 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.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 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42686
 
 
42687
   
 
42688
#line 42689 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42689
 
 
42690
  struct __ac_wrapper_sons {
 
42691
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
 
42692
    operator A& () { return _data; }
 
42693
    operator A& () const { return (A&)*(::Puma::CTree * *)_data; }
 
42694
    operator const A& () { return _data; }
 
42695
    operator const A& () const { return _data; }
 
42696
    operator void* () { return _data; }
 
42697
    operator void* () const { return (void*)_data; }
 
42698
    operator const void* () { return _data; }
 
42699
    operator const void* () const { return _data; }
 
42700
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
 
42701
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
 
42702
  } sons
 
42703
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42704
 
 
42705
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42706
; // key, name, bases, members
 
42707
  CTree *obj_decl;
 
42708
 
 
42709
public:
 
42710
  
 
42711
#line 42712 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42712
 
 
42713
 
 
42714
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
42715
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
42716
  typedef TResult Result;
 
42717
  typedef TThat   That;
 
42718
  typedef TTarget Target;
 
42719
  enum { ARGS = TArgs::ARGS };
 
42720
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
42721
  static const int JPID = 55;
 
42722
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
42723
  struct Res {
 
42724
    typedef void Type;
 
42725
    typedef void ReferredType;
 
42726
  };
 
42727
 
 
42728
  That *_that;
 
42729
 
 
42730
  inline That *that() {return (That*)_that;}
 
42731
 
 
42732
};
 
42733
 
 
42734
 
 
42735
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42736
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
 
42737
#line 42738 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42738
{
 
42739
  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;
 
42740
    __TJP tjp;
 
42741
  tjp._that =  (__TJP::That*)this;
 
42742
    this->__exec_old_C1(arg0, arg1, arg2);
 
42743
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
42744
  
 
42745
}
 
42746
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
42747
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42748
{
 
42749
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
42750
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
 
42751
  }
 
42752
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42753
  static const char *NodeId ();
 
42754
  /** Get the name of the node. Can be compared with NodeId(). */
 
42755
  const char *NodeName () const { return NodeId (); }
 
42756
  /** Get the number of sons. */
 
42757
  int Sons () const { return CTree::Sons (sons, 4); }
 
42758
  /** Get the n-th son.
 
42759
   *  \param n The index of the son.
 
42760
   *  \return The n-th son or NULL. */
 
42761
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
42762
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
42763
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
 
42764
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
 
42765
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
 
42766
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
42767
  void Members (CTree *m) { AddSon (sons[3], m); }
 
42768
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
42769
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
42770
  /** Replace a son.
 
42771
   *  \param old_son The son to replace.
 
42772
   *  \param new_son The new son. */
 
42773
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
42774
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
42775
  }
 
42776
   private:
 
42777
 
 
42778
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
42779
 Puma :: CTree * _intro_members ;
 
42780
Puma :: CTree * _base_intros ;
 
42781
public :
 
42782
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
42783
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
42784
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
42785
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
42786
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42787
 
 
42788
#line 42789 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42789
 
 
42790
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
42791
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
42792
  typedef TResult Result;
 
42793
  typedef TThat   That;
 
42794
  typedef TTarget Target;
 
42795
  enum { ARGS = TArgs::ARGS };
 
42796
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
42797
  static const int JPID = 6218;
 
42798
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
42799
  struct Res {
 
42800
    typedef void Type;
 
42801
    typedef void ReferredType;
 
42802
  };
 
42803
 
 
42804
  That *_that;
 
42805
 
 
42806
  inline That *that() {return (That*)_that;}
 
42807
 
 
42808
};
 
42809
 
 
42810
 
 
42811
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42812
 
 
42813
#line 42814 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42814
 
 
42815
public:
 
42816
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) {
 
42817
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
42818
  __TJP tjp;
 
42819
  tjp._that =  (__TJP::That*)this;
 
42820
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
42821
 
 
42822
}
 
42823
 
 
42824
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42825
 
 
42826
#line 42827 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42827
 
 
42828
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
42829
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
42830
  typedef TResult Result;
 
42831
  typedef TThat   That;
 
42832
  typedef TTarget Target;
 
42833
  enum { ARGS = TArgs::ARGS };
 
42834
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
42835
  static const int JPID = 6216;
 
42836
  static const AC::JPType JPTYPE = (AC::JPType)32;
 
42837
  struct Res {
 
42838
    typedef void Type;
 
42839
    typedef void ReferredType;
 
42840
  };
 
42841
 
 
42842
  That *_that;
 
42843
 
 
42844
  inline That *that() {return (That*)_that;}
 
42845
 
 
42846
};
 
42847
 
 
42848
 
 
42849
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42850
 
 
42851
#line 42852 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42852
 
 
42853
public:
 
42854
inline ~CT_ClassDef () {
 
42855
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
42856
  __TJP tjp;
 
42857
  tjp._that =  (__TJP::That*)this;
 
42858
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
 
42859
 
 
42860
}
 
42861
 
 
42862
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42863
};
 
42864
      
 
42865
 
 
42866
#line 42867 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.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 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42890
class CT_UnionDef : public CT_ClassDef {
 
42891
#line 42892 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.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 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42913
 
 
42914
public:
 
42915
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
 
42916
  static const char *NodeId ();
 
42917
  /** Get the name of the node. Can be compared with NodeId(). */
 
42918
  const char *NodeName () const { return NodeId (); }
 
42919
};
 
42920
      
 
42921
 
 
42922
#line 42923 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42923
} // closed Puma
 
42924
class CCExprResolve;
 
42925
class CExprResolve;
 
42926
class WinIfExists;
 
42927
class WinImportHandler;
 
42928
class WinMacros;
 
42929
class WinAsm;
 
42930
class WinDeclSpecs;
 
42931
class WinMemberExplSpec;
 
42932
class WinTypeKeywords;
 
42933
class WinFriend;
 
42934
class ExtAC;
 
42935
class ExtACBuilderCoupling;
 
42936
class ExtACSyntaxCoupling;
 
42937
class ExtACTree;
 
42938
class ExtACKeywords;
 
42939
class ExtGnu;
 
42940
class PragmaOnceUnitState;
 
42941
class PragmaOnce;
 
42942
class CMatchSyntax;
 
42943
namespace Puma {
 
42944
 
 
42945
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42946
class CT_MembList : public CT_DeclList, public CSemScope {
 
42947
#line 42948 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42948
  friend class ::CCExprResolve;
 
42949
  friend class ::CExprResolve;
 
42950
  friend class ::WinIfExists;
 
42951
  friend class ::WinImportHandler;
 
42952
  friend class ::WinMacros;
 
42953
  friend class ::WinAsm;
 
42954
  friend class ::WinDeclSpecs;
 
42955
  friend class ::WinMemberExplSpec;
 
42956
  friend class ::WinTypeKeywords;
 
42957
  friend class ::WinFriend;
 
42958
  friend class ::ExtAC;
 
42959
  friend class ::ExtACBuilderCoupling;
 
42960
  friend class ::ExtACSyntaxCoupling;
 
42961
  friend class ::ExtACTree;
 
42962
  friend class ::ExtACKeywords;
 
42963
  friend class ::ExtGnu;
 
42964
  friend class ::PragmaOnceUnitState;
 
42965
  friend class ::PragmaOnce;
 
42966
  friend class ::CMatchSyntax;
 
42967
 
 
42968
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42969
 
 
42970
public:
 
42971
  CT_MembList (int size = 10, int incr = 10) : 
 
42972
    CT_DeclList (size, incr) {}
 
42973
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42974
  static const char *NodeId ();
 
42975
  /** Get the name of the node. Can be compared with NodeId(). */
 
42976
  const char *NodeName () const { return NodeId (); }
 
42977
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
42978
};
 
42979
 
 
42980
 
 
42981
#line 42982 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
42982
} // closed Puma
 
42983
class CCExprResolve;
 
42984
class CExprResolve;
 
42985
class WinIfExists;
 
42986
class WinImportHandler;
 
42987
class WinMacros;
 
42988
class WinAsm;
 
42989
class WinDeclSpecs;
 
42990
class WinMemberExplSpec;
 
42991
class WinTypeKeywords;
 
42992
class WinFriend;
 
42993
class ExtAC;
 
42994
class ExtACBuilderCoupling;
 
42995
class ExtACSyntaxCoupling;
 
42996
class ExtACTree;
 
42997
class ExtACKeywords;
 
42998
class ExtGnu;
 
42999
class PragmaOnceUnitState;
 
43000
class PragmaOnce;
 
43001
class CMatchSyntax;
 
43002
namespace Puma {
 
43003
 
 
43004
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43005
class CT_MembInitList : public CT_List, public CSemScope {
 
43006
#line 43007 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43007
  friend class ::CCExprResolve;
 
43008
  friend class ::CExprResolve;
 
43009
  friend class ::WinIfExists;
 
43010
  friend class ::WinImportHandler;
 
43011
  friend class ::WinMacros;
 
43012
  friend class ::WinAsm;
 
43013
  friend class ::WinDeclSpecs;
 
43014
  friend class ::WinMemberExplSpec;
 
43015
  friend class ::WinTypeKeywords;
 
43016
  friend class ::WinFriend;
 
43017
  friend class ::ExtAC;
 
43018
  friend class ::ExtACBuilderCoupling;
 
43019
  friend class ::ExtACSyntaxCoupling;
 
43020
  friend class ::ExtACTree;
 
43021
  friend class ::ExtACKeywords;
 
43022
  friend class ::ExtGnu;
 
43023
  friend class ::PragmaOnceUnitState;
 
43024
  friend class ::PragmaOnce;
 
43025
  friend class ::CMatchSyntax;
 
43026
 
 
43027
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43028
 
 
43029
public:
 
43030
  CT_MembInitList (int size = 2) : 
 
43031
    CT_List (size, 2, CT_List::OPEN) {}
 
43032
  static const char *NodeId ();
 
43033
  /** Get the name of the node. Can be compared with NodeId(). */
 
43034
  const char *NodeName () const { return NodeId (); }
 
43035
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
43036
};
 
43037
 
 
43038
 
 
43039
#line 43040 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43040
} // closed Puma
 
43041
class CCExprResolve;
 
43042
class CExprResolve;
 
43043
class WinIfExists;
 
43044
class WinImportHandler;
 
43045
class WinMacros;
 
43046
class WinAsm;
 
43047
class WinDeclSpecs;
 
43048
class WinMemberExplSpec;
 
43049
class WinTypeKeywords;
 
43050
class WinFriend;
 
43051
class ExtAC;
 
43052
class ExtACBuilderCoupling;
 
43053
class ExtACSyntaxCoupling;
 
43054
class ExtACTree;
 
43055
class ExtACKeywords;
 
43056
class ExtGnu;
 
43057
class PragmaOnceUnitState;
 
43058
class PragmaOnce;
 
43059
class CMatchSyntax;
 
43060
namespace Puma {
 
43061
 
 
43062
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43063
 
 
43064
#line 43065 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43065
} // closed Puma
 
43066
 
 
43067
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
43068
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
43069
#include "CCExprResolveH.ah"
 
43070
#endif
 
43071
namespace Puma {
 
43072
 
 
43073
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43074
 
 
43075
#line 43076 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43076
} // closed Puma
 
43077
 
 
43078
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
43079
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
43080
#include "CExprResolveH.ah"
 
43081
#endif
 
43082
namespace Puma {
 
43083
 
 
43084
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43085
class CT_MembInit : public CT_Expression, public CSemObject {
 
43086
#line 43087 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43087
  friend class ::CCExprResolve;
 
43088
  friend class ::CExprResolve;
 
43089
  friend class ::WinIfExists;
 
43090
  friend class ::WinImportHandler;
 
43091
  friend class ::WinMacros;
 
43092
  friend class ::WinAsm;
 
43093
  friend class ::WinDeclSpecs;
 
43094
  friend class ::WinMemberExplSpec;
 
43095
  friend class ::WinTypeKeywords;
 
43096
  friend class ::WinFriend;
 
43097
  friend class ::ExtAC;
 
43098
  friend class ::ExtACBuilderCoupling;
 
43099
  friend class ::ExtACSyntaxCoupling;
 
43100
  friend class ::ExtACTree;
 
43101
  friend class ::ExtACKeywords;
 
43102
  friend class ::ExtGnu;
 
43103
  friend class ::PragmaOnceUnitState;
 
43104
  friend class ::PragmaOnce;
 
43105
  friend class ::CMatchSyntax;
 
43106
 
 
43107
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43108
 
 
43109
  CTree *sons[2]; // name, init
 
43110
 
 
43111
public:
 
43112
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
43113
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43114
  static const char *NodeId ();
 
43115
  /** Get the name of the node. Can be compared with NodeId(). */
 
43116
  const char *NodeName () const { return NodeId (); }
 
43117
  /** Get the number of sons. */
 
43118
  int Sons () const { return 2; }
 
43119
  /** Get the n-th son.
 
43120
   *  \param n The index of the son.
 
43121
   *  \return The n-th son or NULL. */
 
43122
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
43123
  /** Replace a son.
 
43124
   *  \param old_son The son to replace.
 
43125
   *  \param new_son The new son. */
 
43126
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
43127
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
43128
  }
 
43129
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
43130
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
43131
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
43132
   private:
 
43133
  typedef CT_MembInit CCExprResolveExpr;
 
43134
 
 
43135
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
43136
 public :
 
43137
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
43138
  typedef CT_MembInit CExprResolveExpr;
 
43139
 
 
43140
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
43141
 public :
 
43142
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
43143
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43144
};
 
43145
 
 
43146
 
 
43147
#line 43148 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43148
} // closed Puma
 
43149
class CCExprResolve;
 
43150
class CExprResolve;
 
43151
class WinIfExists;
 
43152
class WinImportHandler;
 
43153
class WinMacros;
 
43154
class WinAsm;
 
43155
class WinDeclSpecs;
 
43156
class WinMemberExplSpec;
 
43157
class WinTypeKeywords;
 
43158
class WinFriend;
 
43159
class ExtAC;
 
43160
class ExtACBuilderCoupling;
 
43161
class ExtACSyntaxCoupling;
 
43162
class ExtACTree;
 
43163
class ExtACKeywords;
 
43164
class ExtGnu;
 
43165
class PragmaOnceUnitState;
 
43166
class PragmaOnce;
 
43167
class CMatchSyntax;
 
43168
namespace Puma {
 
43169
 
 
43170
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43171
class CT_BaseSpecList : public CT_List {
 
43172
#line 43173 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43173
  friend class ::CCExprResolve;
 
43174
  friend class ::CExprResolve;
 
43175
  friend class ::WinIfExists;
 
43176
  friend class ::WinImportHandler;
 
43177
  friend class ::WinMacros;
 
43178
  friend class ::WinAsm;
 
43179
  friend class ::WinDeclSpecs;
 
43180
  friend class ::WinMemberExplSpec;
 
43181
  friend class ::WinTypeKeywords;
 
43182
  friend class ::WinFriend;
 
43183
  friend class ::ExtAC;
 
43184
  friend class ::ExtACBuilderCoupling;
 
43185
  friend class ::ExtACSyntaxCoupling;
 
43186
  friend class ::ExtACTree;
 
43187
  friend class ::ExtACKeywords;
 
43188
  friend class ::ExtGnu;
 
43189
  friend class ::PragmaOnceUnitState;
 
43190
  friend class ::PragmaOnce;
 
43191
  friend class ::CMatchSyntax;
 
43192
 
 
43193
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43194
 
 
43195
public:
 
43196
  CT_BaseSpecList (int size = 2) : 
 
43197
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
43198
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43199
  static const char *NodeId ();
 
43200
  /** Get the name of the node. Can be compared with NodeId(). */
 
43201
  const char *NodeName () const { return NodeId (); }
 
43202
};
 
43203
 
 
43204
 
 
43205
#line 43206 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43206
} // closed Puma
 
43207
class CCExprResolve;
 
43208
class CExprResolve;
 
43209
class WinIfExists;
 
43210
class WinImportHandler;
 
43211
class WinMacros;
 
43212
class WinAsm;
 
43213
class WinDeclSpecs;
 
43214
class WinMemberExplSpec;
 
43215
class WinTypeKeywords;
 
43216
class WinFriend;
 
43217
class ExtAC;
 
43218
class ExtACBuilderCoupling;
 
43219
class ExtACSyntaxCoupling;
 
43220
class ExtACTree;
 
43221
class ExtACKeywords;
 
43222
class ExtGnu;
 
43223
class PragmaOnceUnitState;
 
43224
class PragmaOnce;
 
43225
class CMatchSyntax;
 
43226
namespace Puma {
 
43227
 
 
43228
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43229
class CT_AccessSpec : public CTree {
 
43230
#line 43231 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43231
  friend class ::CCExprResolve;
 
43232
  friend class ::CExprResolve;
 
43233
  friend class ::WinIfExists;
 
43234
  friend class ::WinImportHandler;
 
43235
  friend class ::WinMacros;
 
43236
  friend class ::WinAsm;
 
43237
  friend class ::WinDeclSpecs;
 
43238
  friend class ::WinMemberExplSpec;
 
43239
  friend class ::WinTypeKeywords;
 
43240
  friend class ::WinFriend;
 
43241
  friend class ::ExtAC;
 
43242
  friend class ::ExtACBuilderCoupling;
 
43243
  friend class ::ExtACSyntaxCoupling;
 
43244
  friend class ::ExtACTree;
 
43245
  friend class ::ExtACKeywords;
 
43246
  friend class ::ExtGnu;
 
43247
  friend class ::PragmaOnceUnitState;
 
43248
  friend class ::PragmaOnce;
 
43249
  friend class ::CMatchSyntax;
 
43250
 
 
43251
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43252
 
 
43253
  CTree *sons[2]; // access, colon
 
43254
 
 
43255
public:
 
43256
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
43257
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43258
  static const char *NodeId ();
 
43259
  /** Get the name of the node. Can be compared with NodeId(). */
 
43260
  const char *NodeName () const { return NodeId (); }
 
43261
  /** Get the number of sons. */
 
43262
  int Sons () const { return 2; }
 
43263
  /** Get the n-th son.
 
43264
   *  \param n The index of the son.
 
43265
   *  \return The n-th son or NULL. */
 
43266
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
43267
  int Access () const { return sons[0]->token ()->type (); }
 
43268
  /** Replace a son.
 
43269
   *  \param old_son The son to replace.
 
43270
   *  \param new_son The new son. */
 
43271
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
43272
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
43273
  }
 
43274
};
 
43275
 
 
43276
 
 
43277
#line 43278 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43278
} // closed Puma
 
43279
class CCExprResolve;
 
43280
class CExprResolve;
 
43281
class WinIfExists;
 
43282
class WinImportHandler;
 
43283
class WinMacros;
 
43284
class WinAsm;
 
43285
class WinDeclSpecs;
 
43286
class WinMemberExplSpec;
 
43287
class WinTypeKeywords;
 
43288
class WinFriend;
 
43289
class ExtAC;
 
43290
class ExtACBuilderCoupling;
 
43291
class ExtACSyntaxCoupling;
 
43292
class ExtACTree;
 
43293
class ExtACKeywords;
 
43294
class ExtGnu;
 
43295
class PragmaOnceUnitState;
 
43296
class PragmaOnce;
 
43297
class CMatchSyntax;
 
43298
namespace Puma {
 
43299
 
 
43300
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43301
class CT_BaseSpec : public CTree {
 
43302
#line 43303 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43303
  friend class ::CCExprResolve;
 
43304
  friend class ::CExprResolve;
 
43305
  friend class ::WinIfExists;
 
43306
  friend class ::WinImportHandler;
 
43307
  friend class ::WinMacros;
 
43308
  friend class ::WinAsm;
 
43309
  friend class ::WinDeclSpecs;
 
43310
  friend class ::WinMemberExplSpec;
 
43311
  friend class ::WinTypeKeywords;
 
43312
  friend class ::WinFriend;
 
43313
  friend class ::ExtAC;
 
43314
  friend class ::ExtACBuilderCoupling;
 
43315
  friend class ::ExtACSyntaxCoupling;
 
43316
  friend class ::ExtACTree;
 
43317
  friend class ::ExtACKeywords;
 
43318
  friend class ::ExtGnu;
 
43319
  friend class ::PragmaOnceUnitState;
 
43320
  friend class ::PragmaOnce;
 
43321
  friend class ::CMatchSyntax;
 
43322
 
 
43323
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43324
 
 
43325
  CTree *sons[3]; // virtual, access, name
 
43326
 
 
43327
public:
 
43328
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
 
43329
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
 
43330
  }
 
43331
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43332
  static const char *NodeId ();
 
43333
  /** Get the name of the node. Can be compared with NodeId(). */
 
43334
  const char *NodeName () const { return NodeId (); }
 
43335
  /** Get the number of sons. */
 
43336
  int Sons () const { return CTree::Sons (sons, 3); }
 
43337
  /** Get the n-th son.
 
43338
   *  \param n The index of the son.
 
43339
   *  \return The n-th son or NULL. */
 
43340
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
43341
  int Access () const { return sons[1]->token ()->type (); }
 
43342
  CTree *AccessSpec () const { return sons[1]; }
 
43343
  CTree *Virtual () const { return sons[0]; }
 
43344
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
43345
  /** Replace a son.
 
43346
   *  \param old_son The son to replace.
 
43347
   *  \param new_son The new son. */
 
43348
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
43349
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
43350
  }
 
43351
};
 
43352
 
 
43353
 
 
43354
#line 43355 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43355
} // closed Puma
 
43356
class CCExprResolve;
 
43357
class CExprResolve;
 
43358
class WinIfExists;
 
43359
class WinImportHandler;
 
43360
class WinMacros;
 
43361
class WinAsm;
 
43362
class WinDeclSpecs;
 
43363
class WinMemberExplSpec;
 
43364
class WinTypeKeywords;
 
43365
class WinFriend;
 
43366
class ExtAC;
 
43367
class ExtACBuilderCoupling;
 
43368
class ExtACSyntaxCoupling;
 
43369
class ExtACTree;
 
43370
class ExtACKeywords;
 
43371
class ExtGnu;
 
43372
class PragmaOnceUnitState;
 
43373
class PragmaOnce;
 
43374
class CMatchSyntax;
 
43375
namespace Puma {
 
43376
 
 
43377
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43378
class CT_AccessDecl : public CT_Decl {
 
43379
#line 43380 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43380
  friend class ::CCExprResolve;
 
43381
  friend class ::CExprResolve;
 
43382
  friend class ::WinIfExists;
 
43383
  friend class ::WinImportHandler;
 
43384
  friend class ::WinMacros;
 
43385
  friend class ::WinAsm;
 
43386
  friend class ::WinDeclSpecs;
 
43387
  friend class ::WinMemberExplSpec;
 
43388
  friend class ::WinTypeKeywords;
 
43389
  friend class ::WinFriend;
 
43390
  friend class ::ExtAC;
 
43391
  friend class ::ExtACBuilderCoupling;
 
43392
  friend class ::ExtACSyntaxCoupling;
 
43393
  friend class ::ExtACTree;
 
43394
  friend class ::ExtACKeywords;
 
43395
  friend class ::ExtGnu;
 
43396
  friend class ::PragmaOnceUnitState;
 
43397
  friend class ::PragmaOnce;
 
43398
  friend class ::CMatchSyntax;
 
43399
 
 
43400
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43401
 
 
43402
  CTree *sons[2]; // name, semi_colon
 
43403
 
 
43404
public:
 
43405
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
43406
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43407
  static const char *NodeId ();
 
43408
  /** Get the name of the node. Can be compared with NodeId(). */
 
43409
  const char *NodeName () const { return NodeId (); }
 
43410
  /** Get the number of sons. */
 
43411
  int Sons () const { return 2; }
 
43412
  /** Get the n-th son.
 
43413
   *  \param n The index of the son.
 
43414
   *  \return The n-th son or NULL. */
 
43415
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
43416
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
43417
  /** Replace a son.
 
43418
   *  \param old_son The son to replace.
 
43419
   *  \param new_son The new son. */
 
43420
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
43421
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
43422
  }
 
43423
};
 
43424
 
 
43425
 
 
43426
#line 43427 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43427
} // closed Puma
 
43428
class CCExprResolve;
 
43429
class CExprResolve;
 
43430
class WinIfExists;
 
43431
class WinImportHandler;
 
43432
class WinMacros;
 
43433
class WinAsm;
 
43434
class WinDeclSpecs;
 
43435
class WinMemberExplSpec;
 
43436
class WinTypeKeywords;
 
43437
class WinFriend;
 
43438
class ExtAC;
 
43439
class ExtACBuilderCoupling;
 
43440
class ExtACSyntaxCoupling;
 
43441
class ExtACTree;
 
43442
class ExtACKeywords;
 
43443
class ExtGnu;
 
43444
class PragmaOnceUnitState;
 
43445
class PragmaOnce;
 
43446
class CMatchSyntax;
 
43447
namespace Puma {
 
43448
 
 
43449
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43450
class CT_UsingDecl : public CT_AccessDecl {
 
43451
#line 43452 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43452
  friend class ::CCExprResolve;
 
43453
  friend class ::CExprResolve;
 
43454
  friend class ::WinIfExists;
 
43455
  friend class ::WinImportHandler;
 
43456
  friend class ::WinMacros;
 
43457
  friend class ::WinAsm;
 
43458
  friend class ::WinDeclSpecs;
 
43459
  friend class ::WinMemberExplSpec;
 
43460
  friend class ::WinTypeKeywords;
 
43461
  friend class ::WinFriend;
 
43462
  friend class ::ExtAC;
 
43463
  friend class ::ExtACBuilderCoupling;
 
43464
  friend class ::ExtACSyntaxCoupling;
 
43465
  friend class ::ExtACTree;
 
43466
  friend class ::ExtACKeywords;
 
43467
  friend class ::ExtGnu;
 
43468
  friend class ::PragmaOnceUnitState;
 
43469
  friend class ::PragmaOnce;
 
43470
  friend class ::CMatchSyntax;
 
43471
 
 
43472
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43473
 
 
43474
  CTree *sons[2]; // using, typename
 
43475
 
 
43476
public:
 
43477
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
 
43478
    AddSon (sons[0], u); AddSon (sons[1], 0); 
 
43479
  }
 
43480
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
 
43481
    AddSon (sons[0], u); AddSon (sons[1], t); 
 
43482
  }
 
43483
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43484
  static const char *NodeId ();
 
43485
  /** Get the name of the node. Can be compared with NodeId(). */
 
43486
  const char *NodeName () const { return NodeId (); }
 
43487
  /** Get the number of sons. */
 
43488
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
43489
  /** Get the n-th son.
 
43490
   *  \param n The index of the son.
 
43491
   *  \return The n-th son or NULL. */
 
43492
  CTree *Son (int n) const {
 
43493
    int num = CTree::Sons (sons, 2);
 
43494
    CTree *result = CTree::Son (sons, 2, n);
 
43495
    return result ? result : CT_AccessDecl::Son (n-num);
 
43496
  }
 
43497
  CTree *Typename () const { return sons[1]; }
 
43498
  /** Replace a son.
 
43499
   *  \param old_son The son to replace.
 
43500
   *  \param new_son The new son. */
 
43501
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
43502
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
43503
    CT_AccessDecl::ReplaceSon (old_son, new_son);
 
43504
  }
 
43505
};
 
43506
 
 
43507
/*****************************************************************************/
 
43508
/*                                                                           */
 
43509
/*                              Wildcards                                    */
 
43510
/*                                                                           */
 
43511
/*****************************************************************************/
 
43512
 
 
43513
 
 
43514
#line 43515 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43515
} // closed Puma
 
43516
class CCExprResolve;
 
43517
class CExprResolve;
 
43518
class WinIfExists;
 
43519
class WinImportHandler;
 
43520
class WinMacros;
 
43521
class WinAsm;
 
43522
class WinDeclSpecs;
 
43523
class WinMemberExplSpec;
 
43524
class WinTypeKeywords;
 
43525
class WinFriend;
 
43526
class ExtAC;
 
43527
class ExtACBuilderCoupling;
 
43528
class ExtACSyntaxCoupling;
 
43529
class ExtACTree;
 
43530
class ExtACKeywords;
 
43531
class ExtGnu;
 
43532
class PragmaOnceUnitState;
 
43533
class PragmaOnce;
 
43534
class CMatchSyntax;
 
43535
namespace Puma {
 
43536
 
 
43537
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43538
class CT_Any : public CTree {
 
43539
#line 43540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43540
  friend class ::CCExprResolve;
 
43541
  friend class ::CExprResolve;
 
43542
  friend class ::WinIfExists;
 
43543
  friend class ::WinImportHandler;
 
43544
  friend class ::WinMacros;
 
43545
  friend class ::WinAsm;
 
43546
  friend class ::WinDeclSpecs;
 
43547
  friend class ::WinMemberExplSpec;
 
43548
  friend class ::WinTypeKeywords;
 
43549
  friend class ::WinFriend;
 
43550
  friend class ::ExtAC;
 
43551
  friend class ::ExtACBuilderCoupling;
 
43552
  friend class ::ExtACSyntaxCoupling;
 
43553
  friend class ::ExtACTree;
 
43554
  friend class ::ExtACKeywords;
 
43555
  friend class ::ExtGnu;
 
43556
  friend class ::PragmaOnceUnitState;
 
43557
  friend class ::PragmaOnce;
 
43558
  friend class ::CMatchSyntax;
 
43559
 
 
43560
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43561
 
 
43562
  CTree *sons[2]; // keyword, extension
 
43563
 
 
43564
public:
 
43565
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
43566
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43567
  static const char *NodeId ();
 
43568
  /** Get the name of the node. Can be compared with NodeId(). */
 
43569
  const char *NodeName () const { return NodeId (); }
 
43570
  /** Get the number of sons. */
 
43571
  int Sons () const { return CTree::Sons (sons, 2); }
 
43572
  /** Get the n-th son.
 
43573
   *  \param n The index of the son.
 
43574
   *  \return The n-th son or NULL. */
 
43575
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
43576
  /** Replace a son.
 
43577
   *  \param old_son The son to replace.
 
43578
   *  \param new_son The new son. */
 
43579
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
43580
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
43581
  }
 
43582
  int AnyType () const { return sons[0]->token ()->type (); }
 
43583
  CT_AnyExtension *Extension () const { return (CT_AnyExtension*)sons[1]; }
 
43584
};
 
43585
 
 
43586
 
 
43587
#line 43588 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43588
} // closed Puma
 
43589
class CCExprResolve;
 
43590
class CExprResolve;
 
43591
class WinIfExists;
 
43592
class WinImportHandler;
 
43593
class WinMacros;
 
43594
class WinAsm;
 
43595
class WinDeclSpecs;
 
43596
class WinMemberExplSpec;
 
43597
class WinTypeKeywords;
 
43598
class WinFriend;
 
43599
class ExtAC;
 
43600
class ExtACBuilderCoupling;
 
43601
class ExtACSyntaxCoupling;
 
43602
class ExtACTree;
 
43603
class ExtACKeywords;
 
43604
class ExtGnu;
 
43605
class PragmaOnceUnitState;
 
43606
class PragmaOnce;
 
43607
class CMatchSyntax;
 
43608
namespace Puma {
 
43609
 
 
43610
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43611
class CT_AnyList : public CT_Any {
 
43612
#line 43613 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43613
  friend class ::CCExprResolve;
 
43614
  friend class ::CExprResolve;
 
43615
  friend class ::WinIfExists;
 
43616
  friend class ::WinImportHandler;
 
43617
  friend class ::WinMacros;
 
43618
  friend class ::WinAsm;
 
43619
  friend class ::WinDeclSpecs;
 
43620
  friend class ::WinMemberExplSpec;
 
43621
  friend class ::WinTypeKeywords;
 
43622
  friend class ::WinFriend;
 
43623
  friend class ::ExtAC;
 
43624
  friend class ::ExtACBuilderCoupling;
 
43625
  friend class ::ExtACSyntaxCoupling;
 
43626
  friend class ::ExtACTree;
 
43627
  friend class ::ExtACKeywords;
 
43628
  friend class ::ExtGnu;
 
43629
  friend class ::PragmaOnceUnitState;
 
43630
  friend class ::PragmaOnce;
 
43631
  friend class ::CMatchSyntax;
 
43632
 
 
43633
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43634
 
 
43635
public:
 
43636
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
43637
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43638
  static const char *NodeId ();
 
43639
  /** Get the name of the node. Can be compared with NodeId(). */
 
43640
  const char *NodeName () const { return NodeId (); }
 
43641
};
 
43642
 
 
43643
 
 
43644
#line 43645 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43645
} // closed Puma
 
43646
class CCExprResolve;
 
43647
class CExprResolve;
 
43648
class WinIfExists;
 
43649
class WinImportHandler;
 
43650
class WinMacros;
 
43651
class WinAsm;
 
43652
class WinDeclSpecs;
 
43653
class WinMemberExplSpec;
 
43654
class WinTypeKeywords;
 
43655
class WinFriend;
 
43656
class ExtAC;
 
43657
class ExtACBuilderCoupling;
 
43658
class ExtACSyntaxCoupling;
 
43659
class ExtACTree;
 
43660
class ExtACKeywords;
 
43661
class ExtGnu;
 
43662
class PragmaOnceUnitState;
 
43663
class PragmaOnce;
 
43664
class CMatchSyntax;
 
43665
namespace Puma {
 
43666
 
 
43667
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43668
class CT_AnyExtension : public CTree, public CSemValue {
 
43669
#line 43670 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43670
  friend class ::CCExprResolve;
 
43671
  friend class ::CExprResolve;
 
43672
  friend class ::WinIfExists;
 
43673
  friend class ::WinImportHandler;
 
43674
  friend class ::WinMacros;
 
43675
  friend class ::WinAsm;
 
43676
  friend class ::WinDeclSpecs;
 
43677
  friend class ::WinMemberExplSpec;
 
43678
  friend class ::WinTypeKeywords;
 
43679
  friend class ::WinFriend;
 
43680
  friend class ::ExtAC;
 
43681
  friend class ::ExtACBuilderCoupling;
 
43682
  friend class ::ExtACSyntaxCoupling;
 
43683
  friend class ::ExtACTree;
 
43684
  friend class ::ExtACKeywords;
 
43685
  friend class ::ExtGnu;
 
43686
  friend class ::PragmaOnceUnitState;
 
43687
  friend class ::PragmaOnce;
 
43688
  friend class ::CMatchSyntax;
 
43689
 
 
43690
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43691
 
 
43692
  CTree *sons[5]; // open, string, comma, cond, close
 
43693
 
 
43694
public:
 
43695
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
 
43696
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
43697
    AddSon (sons[3], c); AddSon (sons[4], cr); 
 
43698
  }
 
43699
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43700
  static const char *NodeId ();
 
43701
  /** Get the name of the node. Can be compared with NodeId(). */
 
43702
  const char *NodeName () const { return NodeId (); }
 
43703
  /** Get the number of sons. */
 
43704
  int Sons () const { return CTree::Sons (sons, 5); }
 
43705
  /** Get the n-th son.
 
43706
   *  \param n The index of the son.
 
43707
   *  \return The n-th son or NULL. */
 
43708
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
43709
  /** Replace a son.
 
43710
   *  \param old_son The son to replace.
 
43711
   *  \param new_son The new son. */
 
43712
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
43713
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
43714
  }
 
43715
  CTree *Condition () const { return sons[3]; }
 
43716
  CT_Token *String () const { return (CT_Token*)sons[1]; }
 
43717
  const char *Name () const { 
 
43718
    return value ? value->StrLiteral ()->String () : (const char*)0; }
 
43719
 
 
43720
  CExprValue *Value () const { return value; }
 
43721
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
43722
};
 
43723
 
 
43724
 
 
43725
#line 43726 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43726
} // closed Puma
 
43727
class CCExprResolve;
 
43728
class CExprResolve;
 
43729
class WinIfExists;
 
43730
class WinImportHandler;
 
43731
class WinMacros;
 
43732
class WinAsm;
 
43733
class WinDeclSpecs;
 
43734
class WinMemberExplSpec;
 
43735
class WinTypeKeywords;
 
43736
class WinFriend;
 
43737
class ExtAC;
 
43738
class ExtACBuilderCoupling;
 
43739
class ExtACSyntaxCoupling;
 
43740
class ExtACTree;
 
43741
class ExtACKeywords;
 
43742
class ExtGnu;
 
43743
class PragmaOnceUnitState;
 
43744
class PragmaOnce;
 
43745
class CMatchSyntax;
 
43746
namespace Puma {
 
43747
 
 
43748
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43749
class CT_AnyCondition : public CTree {
 
43750
#line 43751 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43751
  friend class ::CCExprResolve;
 
43752
  friend class ::CExprResolve;
 
43753
  friend class ::WinIfExists;
 
43754
  friend class ::WinImportHandler;
 
43755
  friend class ::WinMacros;
 
43756
  friend class ::WinAsm;
 
43757
  friend class ::WinDeclSpecs;
 
43758
  friend class ::WinMemberExplSpec;
 
43759
  friend class ::WinTypeKeywords;
 
43760
  friend class ::WinFriend;
 
43761
  friend class ::ExtAC;
 
43762
  friend class ::ExtACBuilderCoupling;
 
43763
  friend class ::ExtACSyntaxCoupling;
 
43764
  friend class ::ExtACTree;
 
43765
  friend class ::ExtACKeywords;
 
43766
  friend class ::ExtGnu;
 
43767
  friend class ::PragmaOnceUnitState;
 
43768
  friend class ::PragmaOnce;
 
43769
  friend class ::CMatchSyntax;
 
43770
 
 
43771
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43772
 
 
43773
  CTree *sons[3]; // arg1, arg2, arg3
 
43774
 
 
43775
public:
 
43776
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
 
43777
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
 
43778
  }
 
43779
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
43780
  static const char *NodeId ();
 
43781
  /** Get the name of the node. Can be compared with NodeId(). */
 
43782
  const char *NodeName () const { return NodeId (); }
 
43783
  /** Get the number of sons. */
 
43784
  int Sons () const { return CTree::Sons (sons, 3); }
 
43785
  /** Get the n-th son.
 
43786
   *  \param n The index of the son.
 
43787
   *  \return The n-th son or NULL. */
 
43788
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
43789
  /** Replace a son.
 
43790
   *  \param old_son The son to replace.
 
43791
   *  \param new_son The new son. */
 
43792
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
43793
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
43794
  }
 
43795
};
 
43796
 
 
43797
 
 
43798
} // namespace Puma
 
43799
 
 
43800
#endif /* __CTree_h__ */
 
43801
 
 
43802
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
 
43803
namespace Puma {
 
43804
 
 
43805
 
 
43806
CSemDeclSpecs::CSemDeclSpecs (ErrorSink *err, CT_DeclSpecSeq *dss, bool support_implicit_int) :
 
43807
  _err (err), _dss (dss) {
 
43808
   
 
43809
  bool no_error = true, have_type = false;
 
43810
  
 
43811
  // first gather information about all nodes in the sequence
 
43812
  no_error = (analyze_seq () && no_error);
 
43813
  
 
43814
  // check for errors
 
43815
  no_error = (check_prim_decl_specs (have_type) && no_error);
 
43816
  no_error = (check_complex_decl_specs (have_type) && no_error);  
 
43817
  no_error = (check_storage_class () && no_error);
 
43818
  no_error = (check_signed_unsigned () && no_error);
 
43819
  no_error = (check_long_short () && no_error); 
 
43820
 
 
43821
  // implicit int
 
43822
  if (! have_type && support_implicit_int) {
 
43823
    _prim_map[CT_PrimDeclSpec::PDS_INT]++;
 
43824
    have_type = true;
 
43825
  }
 
43826
 
 
43827
  // now create the type
 
43828
  _type = &CTYPE_UNDEFINED;
 
43829
  if (have_type && no_error) {
 
43830
    CTypeInfo *type = create_qualifiers (create_type ());
 
43831
    // assign the type if the final check is also ok
 
43832
    if (check_finally ())
 
43833
      _type = type;
 
43834
  }
 
43835
}
 
43836
 
 
43837
 
 
43838
// analyses the syntax tree nodes of the decl-spec sequence. Return false
 
43839
// if an error was detected. 
 
43840
 
 
43841
#line 43842 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43842
 
 
43843
 
 
43844
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma13CSemDeclSpecs11analyze_seqEv_0 {
 
43845
  typedef TJP__ZN4Puma13CSemDeclSpecs11analyze_seqEv_0 __TJP;
 
43846
  typedef TResult Result;
 
43847
  typedef TThat   That;
 
43848
  typedef TTarget Target;
 
43849
  enum { ARGS = TArgs::ARGS };
 
43850
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
43851
  static const int JPID = 6429;
 
43852
  static const AC::JPType JPTYPE = (AC::JPType)8;
 
43853
  struct Res {
 
43854
    typedef TResult Type;
 
43855
    typedef TResult ReferredType;
 
43856
  };
 
43857
 
 
43858
  That *_that;
 
43859
 
 
43860
  inline That *that() {return (That*)_that;}
 
43861
 
 
43862
struct Binding_ExtGnu_ExtGnu_a7_before {
 
43863
  typedef __TJP TJP;
 
43864
  template <int I, int DUMMY = 0> struct Arg {
 
43865
    void val (TJP *tjp) {} // for VC7
 
43866
  };
 
43867
  template <int DUMMY> struct Arg<0, DUMMY> {
 
43868
    static typename TJP::That &val (TJP *tjp) { return *tjp->that (); }
 
43869
  };
 
43870
};
 
43871
};
 
43872
 
 
43873
 
 
43874
#line 63 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
 
43875
bool CSemDeclSpecs::analyze_seq () 
 
43876
#line 43877 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43877
{
 
43878
  typedef TJP__ZN4Puma13CSemDeclSpecs11analyze_seqEv_0< bool , ::Puma::CSemDeclSpecs , ::Puma::CSemDeclSpecs ,  AC::TLE > __TJP;
 
43879
  bool result;
 
43880
  __TJP tjp;
 
43881
  tjp._that =  (__TJP::That*)this;
 
43882
  AC::invoke_ExtGnu_ExtGnu_a7_before<__TJP> (&tjp);
 
43883
    result = this->__exec_old_analyze_seq();
 
43884
  return (bool &)result;
 
43885
 
 
43886
}
 
43887
__attribute__((always_inline)) inline bool Puma::CSemDeclSpecs::__exec_old_analyze_seq()
 
43888
#line 63 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
 
43889
{
 
43890
  _names = 0, _class_specs = 0, _union_specs = 0, _enum_specs = 0;
 
43891
  _def_class = _def_union = _def_enum = false;
 
43892
  _name = 0;
 
43893
  for (int i = 0; i < CT_PrimDeclSpec::NumTypes; i++)
 
43894
    _prim_map[i] = 0; // clear the array
 
43895
 
 
43896
  // Gather information about the declaration specifiers
 
43897
  for (int s = 0; s < _dss->Sons (); s++) {
 
43898
    CTree *spec = _dss->Son (s);
 
43899
    if (!analyze (spec)) {
 
43900
      Token *token = spec->token ();
 
43901
      if (token) *_err << token->location ();
 
43902
      *_err << sev_fatal << "unknown declaration specifier `" 
 
43903
           << spec->NodeName () << "'" << endMessage;
 
43904
      return false;
 
43905
    }
 
43906
  }
 
43907
  return true;
 
43908
}
 
43909
 
 
43910
 
 
43911
// analyzes the current declaration specifier in the sequence and set some
 
43912
// attributes according to the result. Returns false if the specifier type
 
43913
// is unknown.
 
43914
 
 
43915
#line 43916 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43916
 
 
43917
 
 
43918
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma13CSemDeclSpecs7analyzeEPN4PumaE5CTree_0 {
 
43919
  typedef TJP__ZN4Puma13CSemDeclSpecs7analyzeEPN4PumaE5CTree_0 __TJP;
 
43920
  typedef TResult Result;
 
43921
  typedef TThat   That;
 
43922
  typedef TTarget Target;
 
43923
  enum { ARGS = TArgs::ARGS };
 
43924
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
43925
  static const int JPID = 6431;
 
43926
  static const AC::JPType JPTYPE = (AC::JPType)8;
 
43927
  struct Res {
 
43928
    typedef TResult Type;
 
43929
    typedef TResult ReferredType;
 
43930
  };
 
43931
 
 
43932
  void *_args[ARGS];
 
43933
  Result *_result;
 
43934
  That *_that;
 
43935
 
 
43936
  inline void *arg (int n) {return _args[n];}
 
43937
  template <int I> typename Arg<I>::ReferredType *arg () {
 
43938
    return (typename Arg<I>::ReferredType*)arg (I);
 
43939
  }
 
43940
  inline Result *result() {return (Result*)_result;}
 
43941
  inline That *that() {return (That*)_that;}
 
43942
 
 
43943
struct Binding_ExtGnu_ExtGnu_a8_after {
 
43944
  typedef __TJP TJP;
 
43945
  template <int I, int DUMMY = 0> struct Arg {
 
43946
    void val (TJP *tjp) {} // for VC7
 
43947
  };
 
43948
  template <int DUMMY> struct Arg<0, DUMMY> {
 
43949
    static typename TJP::That &val (TJP *tjp) { return *tjp->that (); }
 
43950
  };
 
43951
  template <int DUMMY> struct Arg<1, DUMMY> {
 
43952
    static typename TJP::template Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
 
43953
  };
 
43954
};
 
43955
};
 
43956
 
 
43957
 
 
43958
#line 88 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
 
43959
bool CSemDeclSpecs::analyze (CTree * arg0) 
 
43960
#line 43961 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
43961
{
 
43962
  typedef TJP__ZN4Puma13CSemDeclSpecs7analyzeEPN4PumaE5CTree_0< bool , ::Puma::CSemDeclSpecs , ::Puma::CSemDeclSpecs ,  AC::TL< ::Puma::CTree * , AC::TLE > > __TJP;
 
43963
  bool result;
 
43964
  __TJP tjp;
 
43965
  tjp._args[0] = (void*)&arg0;
 
43966
  tjp._result = &(__TJP::Result&)result;
 
43967
  tjp._that =  (__TJP::That*)this;
 
43968
    result = this->__exec_old_analyze(arg0);
 
43969
  AC::invoke_ExtGnu_ExtGnu_a8_after<__TJP> (&tjp);
 
43970
  return (bool &)result;
 
43971
 
 
43972
}
 
43973
__attribute__((always_inline)) inline bool Puma::CSemDeclSpecs::__exec_old_analyze(::Puma::CTree * spec)
 
43974
#line 88 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
 
43975
{
 
43976
  const char *id = spec->NodeName ();
 
43977
  if (id == CT_PrimDeclSpec::NodeId ()) {
 
43978
    CT_PrimDeclSpec *pds = (CT_PrimDeclSpec*)spec;
 
43979
    _prim_map[pds->SpecType ()]++;
 
43980
    _prim_token[pds->SpecType ()] = pds->token ();
 
43981
  } else if (id == CT_SimpleName::NodeId () ||
 
43982
             id == CT_TemplateName::NodeId () ||
 
43983
             id == CT_QualName::NodeId () ||
 
43984
      id == CT_RootQualName::NodeId ()) {
 
43985
    _names++;
 
43986
    _name = (CT_SimpleName*)spec;
 
43987
  } else if (id == CT_ClassSpec::NodeId ()) {
 
43988
    _class_specs++;
 
43989
    _name = (CT_SimpleName*)spec->Son (1);
 
43990
    _def_class = (_name && _name->Object () && 
 
43991
                  _name->Object ()->Record () &&
 
43992
                  _name->Object ()->Record ()->isDefined ());
 
43993
  } else if (id == CT_ClassDef::NodeId ()) {
 
43994
    _class_specs++;
 
43995
    _name = (CT_SimpleName*)spec->Son (1);
 
43996
    _def_class = true;
 
43997
  } else if (id == CT_UnionSpec::NodeId ()) {
 
43998
    _union_specs++;
 
43999
    _name = (CT_SimpleName*)spec->Son (1);
 
44000
    _def_union = (_name && _name->Object () && 
 
44001
                  _name->Object ()->Record ()->isDefined ());
 
44002
  } else if (id == CT_UnionDef::NodeId ()) {
 
44003
    _union_specs++;
 
44004
    _name = (CT_SimpleName*)spec->Son (1);
 
44005
    _def_union = true;
 
44006
  } else if (id == CT_EnumSpec::NodeId ()) {
 
44007
    _enum_specs++;
 
44008
    _name = (CT_SimpleName*)spec->Son (1);
 
44009
    _def_enum = (_name && _name->Object () && 
 
44010
                 _name->Object ()->EnumInfo ()->isDefined ());
 
44011
  } else if (id == CT_EnumDef::NodeId ()) {
 
44012
    _enum_specs++;
 
44013
    _name = (CT_SimpleName*)spec->Son (1);
 
44014
    _def_enum = true;
 
44015
  } else
 
44016
    return false;
 
44017
  return true;
 
44018
}
 
44019
 
 
44020
 
 
44021
bool CSemDeclSpecs::check_prim_decl_specs (bool &have_type) {
 
44022
  bool have_error = false;
 
44023
  for (int s = 0; s < CT_PrimDeclSpec::NumTypes; s++) {
 
44024
    int count = _prim_map[s];
 
44025
    switch (s) { // be careful, some break statement are missing!
 
44026
      case CT_PrimDeclSpec::PDS_LONG:
 
44027
        if (count > 0) have_type = true;
 
44028
        if (count > 2) {
 
44029
          *_err << sev_error << _prim_token[s]->location () << count 
 
44030
                << " times `long' is too long" << endMessage;
 
44031
          have_error = true;
 
44032
        }
 
44033
        break;
 
44034
      case CT_PrimDeclSpec::PDS_CHAR:
 
44035
      case CT_PrimDeclSpec::PDS_WCHAR_T:
 
44036
      case CT_PrimDeclSpec::PDS_BOOL:
 
44037
      case CT_PrimDeclSpec::PDS_INT:
 
44038
      case CT_PrimDeclSpec::PDS_INT64:
 
44039
      case CT_PrimDeclSpec::PDS_FLOAT:
 
44040
      case CT_PrimDeclSpec::PDS_DOUBLE:
 
44041
      case CT_PrimDeclSpec::PDS_VOID:
 
44042
      case CT_PrimDeclSpec::PDS_UNKNOWN_T:
 
44043
        if (count > 0) have_type = true;
 
44044
        if (count > 1) {
 
44045
          *_err << sev_error << _prim_token[s]->location ()
 
44046
                << "extraneous `" << _prim_token[s]->text () 
 
44047
                << "' ignored" << endMessage;
 
44048
          have_error = true;
 
44049
        }
 
44050
        break;
 
44051
      case CT_PrimDeclSpec::PDS_SIGNED:
 
44052
        if (count > 0 && _prim_map[CT_PrimDeclSpec::PDS_UNSIGNED] > 0) {
 
44053
          *_err << sev_error << _prim_token[s]->location () 
 
44054
                << "signed and unsigned given together" << endMessage;
 
44055
          have_error = true;
 
44056
        }
 
44057
      case CT_PrimDeclSpec::PDS_UNSIGNED:
 
44058
      case CT_PrimDeclSpec::PDS_SHORT:
 
44059
        if (count > 0) have_type = true;
 
44060
      default:
 
44061
        if (count > 1) {
 
44062
          *_err << sev_warning << _prim_token[s]->location () 
 
44063
                << "duplicate `" << _prim_token[s]->text () << "'"
 
44064
                << endMessage;
 
44065
          have_error = true;
 
44066
        }
 
44067
    }
 
44068
  }
 
44069
  return !have_error;
 
44070
}
 
44071
 
 
44072
 
 
44073
 
 
44074
#line 44075 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
44075
 
 
44076
 
 
44077
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma13CSemDeclSpecs24check_complex_decl_specsERb_0 {
 
44078
  typedef TJP__ZN4Puma13CSemDeclSpecs24check_complex_decl_specsERb_0 __TJP;
 
44079
  typedef TResult Result;
 
44080
  typedef TThat   That;
 
44081
  typedef TTarget Target;
 
44082
  enum { ARGS = TArgs::ARGS };
 
44083
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
44084
  static const int JPID = 6435;
 
44085
  static const AC::JPType JPTYPE = (AC::JPType)8;
 
44086
  struct Res {
 
44087
    typedef TResult Type;
 
44088
    typedef TResult ReferredType;
 
44089
  };
 
44090
 
 
44091
  void *_args[ARGS];
 
44092
  Result *_result;
 
44093
  That *_that;
 
44094
 
 
44095
  inline void *arg (int n) {return _args[n];}
 
44096
  template <int I> typename Arg<I>::ReferredType *arg () {
 
44097
    return (typename Arg<I>::ReferredType*)arg (I);
 
44098
  }
 
44099
  inline Result *result() {return (Result*)_result;}
 
44100
  inline That *that() {return (That*)_that;}
 
44101
 
 
44102
struct Binding_ExtGnu_ExtGnu_a9_after {
 
44103
  typedef __TJP TJP;
 
44104
  template <int I, int DUMMY = 0> struct Arg {
 
44105
    void val (TJP *tjp) {} // for VC7
 
44106
  };
 
44107
  template <int DUMMY> struct Arg<0, DUMMY> {
 
44108
    static typename TJP::That &val (TJP *tjp) { return *tjp->that (); }
 
44109
  };
 
44110
  template <int DUMMY> struct Arg<1, DUMMY> {
 
44111
    static typename TJP::template Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
 
44112
  };
 
44113
};
 
44114
};
 
44115
 
 
44116
 
 
44117
#line 186 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
 
44118
bool CSemDeclSpecs::check_complex_decl_specs (bool & arg0) 
 
44119
#line 44120 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
44120
{
 
44121
  typedef TJP__ZN4Puma13CSemDeclSpecs24check_complex_decl_specsERb_0< bool , ::Puma::CSemDeclSpecs , ::Puma::CSemDeclSpecs ,  AC::TL< bool & , AC::TLE > > __TJP;
 
44122
  bool result;
 
44123
  __TJP tjp;
 
44124
  tjp._args[0] = (void*)&arg0;
 
44125
  tjp._result = &(__TJP::Result&)result;
 
44126
  tjp._that =  (__TJP::That*)this;
 
44127
    result = this->__exec_old_check_complex_decl_specs(arg0);
 
44128
  AC::invoke_ExtGnu_ExtGnu_a9_after<__TJP> (&tjp);
 
44129
  return (bool &)result;
 
44130
 
 
44131
}
 
44132
__attribute__((always_inline)) inline bool Puma::CSemDeclSpecs::__exec_old_check_complex_decl_specs(bool & have_type)
 
44133
#line 186 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
 
44134
{
 
44135
  if (_names || _class_specs || _union_specs || _enum_specs) {
 
44136
    have_type = true;
 
44137
  }
 
44138
  return true;
 
44139
}
 
44140
 
 
44141
 
 
44142
bool CSemDeclSpecs::check_storage_class () {
 
44143
  if (_prim_map[CT_PrimDeclSpec::PDS_TYPEDEF] + 
 
44144
      _prim_map[CT_PrimDeclSpec::PDS_AUTO] + 
 
44145
      _prim_map[CT_PrimDeclSpec::PDS_REGISTER] + 
 
44146
      _prim_map[CT_PrimDeclSpec::PDS_STATIC] + 
 
44147
      _prim_map[CT_PrimDeclSpec::PDS_EXTERN] + 
 
44148
      _prim_map[CT_PrimDeclSpec::PDS_MUTABLE]  > 1) {
 
44149
    *_err << sev_error << _dss->token ()->location () 
 
44150
         << "multiple storage classes in declaration" << endMessage;
 
44151
    return false;
 
44152
  }
 
44153
  return true;
 
44154
}
 
44155
 
 
44156
 
 
44157
 
 
44158
#line 44159 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
44159
 
 
44160
 
 
44161
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma13CSemDeclSpecs21check_signed_unsignedEv_0 {
 
44162
  typedef TJP__ZN4Puma13CSemDeclSpecs21check_signed_unsignedEv_0 __TJP;
 
44163
  typedef TResult Result;
 
44164
  typedef TThat   That;
 
44165
  typedef TTarget Target;
 
44166
  enum { ARGS = TArgs::ARGS };
 
44167
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
44168
  static const int JPID = 6439;
 
44169
  static const AC::JPType JPTYPE = (AC::JPType)8;
 
44170
  struct Res {
 
44171
    typedef TResult Type;
 
44172
    typedef TResult ReferredType;
 
44173
  };
 
44174
 
 
44175
  Result *_result;
 
44176
  That *_that;
 
44177
 
 
44178
  inline Result *result() {return (Result*)_result;}
 
44179
  inline That *that() {return (That*)_that;}
 
44180
 
 
44181
struct Binding_ExtGnu_ExtGnu_a10_after {
 
44182
  typedef __TJP TJP;
 
44183
  template <int I, int DUMMY = 0> struct Arg {
 
44184
    void val (TJP *tjp) {} // for VC7
 
44185
  };
 
44186
  template <int DUMMY> struct Arg<0, DUMMY> {
 
44187
    static typename TJP::That &val (TJP *tjp) { return *tjp->that (); }
 
44188
  };
 
44189
};
 
44190
};
 
44191
 
 
44192
 
 
44193
#line 209 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
 
44194
bool CSemDeclSpecs::check_signed_unsigned () 
 
44195
#line 44196 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
44196
{
 
44197
  typedef TJP__ZN4Puma13CSemDeclSpecs21check_signed_unsignedEv_0< bool , ::Puma::CSemDeclSpecs , ::Puma::CSemDeclSpecs ,  AC::TLE > __TJP;
 
44198
  bool result;
 
44199
  __TJP tjp;
 
44200
  tjp._result = &(__TJP::Result&)result;
 
44201
  tjp._that =  (__TJP::That*)this;
 
44202
    result = this->__exec_old_check_signed_unsigned();
 
44203
  AC::invoke_ExtGnu_ExtGnu_a10_after<__TJP> (&tjp);
 
44204
  return (bool &)result;
 
44205
 
 
44206
}
 
44207
__attribute__((always_inline)) inline bool Puma::CSemDeclSpecs::__exec_old_check_signed_unsigned()
 
44208
#line 209 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
 
44209
{
 
44210
  if ((_prim_map[CT_PrimDeclSpec::PDS_SIGNED] || 
 
44211
       _prim_map[CT_PrimDeclSpec::PDS_UNSIGNED]) &&
 
44212
      (_prim_map[CT_PrimDeclSpec::PDS_BOOL] || 
 
44213
       _prim_map[CT_PrimDeclSpec::PDS_FLOAT] || 
 
44214
       _prim_map[CT_PrimDeclSpec::PDS_DOUBLE] || 
 
44215
       _prim_map[CT_PrimDeclSpec::PDS_VOID] ||
 
44216
       _prim_map[CT_PrimDeclSpec::PDS_UNKNOWN_T] ||
 
44217
       _prim_map[CT_PrimDeclSpec::PDS_WCHAR_T] ||
 
44218
       _class_specs || _union_specs || _enum_specs)) {
 
44219
    *_err << sev_error << _dss->token ()->location () 
 
44220
         << "`signed' or `unsigned' invalid for given type"
 
44221
         << endMessage;
 
44222
    return false;
 
44223
  }
 
44224
  return true;
 
44225
}
 
44226
 
 
44227
 
 
44228
bool CSemDeclSpecs::check_long_short () {
 
44229
  if (_prim_map[CT_PrimDeclSpec::PDS_LONG] &&
 
44230
      _prim_map[CT_PrimDeclSpec::PDS_SHORT]) {
 
44231
    *_err << sev_error << _dss->token ()->location () 
 
44232
         << "`long' and `short' specified together"
 
44233
         << endMessage;
 
44234
    return false;
 
44235
  }
 
44236
  return true;
 
44237
}
 
44238
 
 
44239
 
 
44240
// makes a type object according to the state of this object after analysis
 
44241
 
 
44242
#line 44243 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
44243
 
 
44244
 
 
44245
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma13CSemDeclSpecs11create_typeEv_0 {
 
44246
  typedef TJP__ZN4Puma13CSemDeclSpecs11create_typeEv_0 __TJP;
 
44247
  typedef TResult Result;
 
44248
  typedef TThat   That;
 
44249
  typedef TTarget Target;
 
44250
  enum { ARGS = TArgs::ARGS };
 
44251
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
44252
  static const int JPID = 6445;
 
44253
  static const AC::JPType JPTYPE = (AC::JPType)8;
 
44254
  struct Res {
 
44255
    typedef TResult Type;
 
44256
    typedef TResult ReferredType;
 
44257
  };
 
44258
 
 
44259
  Result *_result;
 
44260
  That *_that;
 
44261
 
 
44262
  inline Result *result() {return (Result*)_result;}
 
44263
  inline That *that() {return (That*)_that;}
 
44264
 
 
44265
struct Binding_ExtGnu_ExtGnu_a12_after {
 
44266
  typedef __TJP TJP;
 
44267
  template <int I, int DUMMY = 0> struct Arg {
 
44268
    void val (TJP *tjp) {} // for VC7
 
44269
  };
 
44270
  template <int DUMMY> struct Arg<0, DUMMY> {
 
44271
    static typename TJP::That &val (TJP *tjp) { return *tjp->that (); }
 
44272
  };
 
44273
};
 
44274
};
 
44275
 
 
44276
 
 
44277
#line 241 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
 
44278
CTypeInfo *CSemDeclSpecs::create_type () 
 
44279
#line 44280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
44280
{
 
44281
  typedef TJP__ZN4Puma13CSemDeclSpecs11create_typeEv_0< ::Puma::CTypeInfo * , ::Puma::CSemDeclSpecs , ::Puma::CSemDeclSpecs ,  AC::TLE > __TJP;
 
44282
  ::Puma::CTypeInfo * result;
 
44283
  __TJP tjp;
 
44284
  tjp._result = &(__TJP::Result&)result;
 
44285
  tjp._that =  (__TJP::That*)this;
 
44286
    result = this->__exec_old_create_type();
 
44287
  AC::invoke_ExtGnu_ExtGnu_a12_after<__TJP> (&tjp);
 
44288
  return (::Puma::CTypeInfo * &)result;
 
44289
 
 
44290
}
 
44291
__attribute__((always_inline)) inline ::Puma::CTypeInfo * Puma::CSemDeclSpecs::__exec_old_create_type()
 
44292
#line 241 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
 
44293
{
 
44294
  // --------------------------------------------- //
 
44295
  //  type specifier(s)    | specified type        //       
 
44296
  // --------------------------------------------- //
 
44297
  //  void                 | "void"                //
 
44298
  //  bool                 | "bool"                //       
 
44299
  //  wchar_t              | "wchar_t"             //       
 
44300
  //                       |                       //
 
44301
  //  char                 | "char"                //       
 
44302
  //  unsigned char        | "unsigned char"       //       
 
44303
  //  signed char          | "signed char"         //       
 
44304
  //                       |                       //
 
44305
  //  unsigned             | "unsigned int"        //       
 
44306
  //  unsigned int         | "unsigned int"        //       
 
44307
  //  signed               | "int"                 //       
 
44308
  //  signed int           | "int"                 //       
 
44309
  //  int                  | "int"                 //       
 
44310
  //  unsigned short int   | "unsigned short int"  //
 
44311
  //  unsigned short       | "unsigned short int"  //
 
44312
  //  unsigned long int    | "unsigned long int"   //
 
44313
  //  unsigned long        | "unsigned long int"   //
 
44314
  //  signed long int      | "long int"            //       
 
44315
  //  signed long          | "long int"            //       
 
44316
  //  long int             | "long int"            //       
 
44317
  //  long                 | "long int"            //       
 
44318
  //  signed short int     | "short int"           //       
 
44319
  //  signed short         | "short int"           //       
 
44320
  //  short int            | "short int"           //       
 
44321
  //  short                | "short int"           //       
 
44322
  //                       |                       //
 
44323
  //  float                | "float"               //       
 
44324
  //  double               | "double"              //       
 
44325
  //  long double          | "long double"         //       
 
44326
  // --------------------------------------------- //
 
44327
  CObjectInfo *info;
 
44328
  CTypeInfo *type = &CTYPE_UNDEFINED;
 
44329
  // handle 'bool'
 
44330
  if (_prim_map[CT_PrimDeclSpec::PDS_BOOL]) {
 
44331
    _prim_map[CT_PrimDeclSpec::PDS_BOOL] = 0;
 
44332
    type = &CTYPE_BOOL;
 
44333
  }
 
44334
  // handle 'float'
 
44335
  else if (_prim_map[CT_PrimDeclSpec::PDS_FLOAT]) {
 
44336
    _prim_map[CT_PrimDeclSpec::PDS_FLOAT] = 0;
 
44337
    type = &CTYPE_FLOAT;
 
44338
  }
 
44339
  // handle 'double' <= must be handled before 'long'
 
44340
  else if (_prim_map[CT_PrimDeclSpec::PDS_DOUBLE]) {
 
44341
    _prim_map[CT_PrimDeclSpec::PDS_DOUBLE] = 0;
 
44342
    if (_prim_map[CT_PrimDeclSpec::PDS_LONG]) {
 
44343
      type = &CTYPE_LONG_DOUBLE;
 
44344
      _prim_map[CT_PrimDeclSpec::PDS_LONG] = 0;
 
44345
    } else
 
44346
      type = &CTYPE_DOUBLE;
 
44347
  }
 
44348
  // handle 'char'
 
44349
  else if (_prim_map[CT_PrimDeclSpec::PDS_CHAR]) {
 
44350
    _prim_map[CT_PrimDeclSpec::PDS_CHAR] = 0;
 
44351
    if (_prim_map[CT_PrimDeclSpec::PDS_UNSIGNED]) {
 
44352
      type = &CTYPE_UNSIGNED_CHAR;
 
44353
      _prim_map[CT_PrimDeclSpec::PDS_UNSIGNED] = 0;
 
44354
    } else if (_prim_map[CT_PrimDeclSpec::PDS_SIGNED]) {
 
44355
      type = &CTYPE_SIGNED_CHAR;
 
44356
      _prim_map[CT_PrimDeclSpec::PDS_SIGNED] = 0;
 
44357
    } else
 
44358
      type = &CTYPE_CHAR;
 
44359
  }
 
44360
  // handle 'wchar_t'
 
44361
  else if (_prim_map[CT_PrimDeclSpec::PDS_WCHAR_T]) {
 
44362
    _prim_map[CT_PrimDeclSpec::PDS_WCHAR_T] = 0;
 
44363
    type = &CTYPE_WCHAR_T;
 
44364
  }
 
44365
  // handle 'short'
 
44366
  else if (_prim_map[CT_PrimDeclSpec::PDS_SHORT]) {
 
44367
    _prim_map[CT_PrimDeclSpec::PDS_SHORT] = 0;
 
44368
    _prim_map[CT_PrimDeclSpec::PDS_INT] = 0;
 
44369
    if (_prim_map[CT_PrimDeclSpec::PDS_UNSIGNED]) {
 
44370
      type = &CTYPE_UNSIGNED_SHORT;
 
44371
      _prim_map[CT_PrimDeclSpec::PDS_UNSIGNED] = 0;
 
44372
    } else if (_prim_map[CT_PrimDeclSpec::PDS_SIGNED]) {
 
44373
      type = &CTYPE_SHORT;
 
44374
      _prim_map[CT_PrimDeclSpec::PDS_SIGNED] = 0;
 
44375
    } else
 
44376
      type = &CTYPE_SHORT;
 
44377
  }
 
44378
  // handle 'long long'  <= be careful, this must be before 'int'!
 
44379
  else if (_prim_map[CT_PrimDeclSpec::PDS_LONG] == 2) {
 
44380
    _prim_map[CT_PrimDeclSpec::PDS_LONG] = 0;
 
44381
    _prim_map[CT_PrimDeclSpec::PDS_INT] = 0;
 
44382
    if (_prim_map[CT_PrimDeclSpec::PDS_UNSIGNED]) {
 
44383
      type = &CTYPE_UNSIGNED_LONG_LONG;
 
44384
      _prim_map[CT_PrimDeclSpec::PDS_UNSIGNED] = 0;
 
44385
    } else if (_prim_map[CT_PrimDeclSpec::PDS_SIGNED]) {
 
44386
      type = &CTYPE_LONG_LONG;
 
44387
      _prim_map[CT_PrimDeclSpec::PDS_SIGNED] = 0;
 
44388
    } else
 
44389
      type = &CTYPE_LONG_LONG;
 
44390
  }
 
44391
  // handle 'long'  <= be careful, this must be before 'int'!
 
44392
  else if (_prim_map[CT_PrimDeclSpec::PDS_LONG] == 1) {
 
44393
    _prim_map[CT_PrimDeclSpec::PDS_LONG] = 0;
 
44394
    _prim_map[CT_PrimDeclSpec::PDS_INT] = 0;
 
44395
    if (_prim_map[CT_PrimDeclSpec::PDS_UNSIGNED]) {
 
44396
      type = &CTYPE_UNSIGNED_LONG;
 
44397
      _prim_map[CT_PrimDeclSpec::PDS_UNSIGNED] = 0;
 
44398
    } else if (_prim_map[CT_PrimDeclSpec::PDS_SIGNED]) {
 
44399
      type = &CTYPE_LONG;
 
44400
      _prim_map[CT_PrimDeclSpec::PDS_SIGNED] = 0;
 
44401
    } else
 
44402
      type = &CTYPE_LONG;
 
44403
  }
 
44404
  // handle 'int'
 
44405
  else if (_prim_map[CT_PrimDeclSpec::PDS_INT]) {
 
44406
    _prim_map[CT_PrimDeclSpec::PDS_INT] = 0;
 
44407
    if (_prim_map[CT_PrimDeclSpec::PDS_UNSIGNED]) {
 
44408
      type = &CTYPE_UNSIGNED_INT;
 
44409
      _prim_map[CT_PrimDeclSpec::PDS_UNSIGNED] = 0;
 
44410
    } else if (_prim_map[CT_PrimDeclSpec::PDS_SIGNED]) {
 
44411
      type = &CTYPE_INT;
 
44412
      _prim_map[CT_PrimDeclSpec::PDS_SIGNED] = 0;
 
44413
    } else
 
44414
      type = &CTYPE_INT;
 
44415
  }
 
44416
  // handle '__int64'
 
44417
  else if (_prim_map[CT_PrimDeclSpec::PDS_INT64]) {
 
44418
    _prim_map[CT_PrimDeclSpec::PDS_INT64] = 0;
 
44419
    if (_prim_map[CT_PrimDeclSpec::PDS_UNSIGNED]) {
 
44420
      type = &CTYPE_UNSIGNED_LONG_LONG;
 
44421
      _prim_map[CT_PrimDeclSpec::PDS_UNSIGNED] = 0;
 
44422
    } else if (_prim_map[CT_PrimDeclSpec::PDS_SIGNED]) {
 
44423
      type = &CTYPE_LONG_LONG;
 
44424
      _prim_map[CT_PrimDeclSpec::PDS_SIGNED] = 0;
 
44425
    } else
 
44426
      type = &CTYPE_LONG_LONG;
 
44427
  }
 
44428
  // handle 'signed'
 
44429
  else if (_prim_map[CT_PrimDeclSpec::PDS_SIGNED]) {
 
44430
    _prim_map[CT_PrimDeclSpec::PDS_SIGNED] = 0;
 
44431
    type = &CTYPE_INT;
 
44432
  }
 
44433
  // handle 'unsigned'
 
44434
  else if (_prim_map[CT_PrimDeclSpec::PDS_UNSIGNED]) {
 
44435
    _prim_map[CT_PrimDeclSpec::PDS_UNSIGNED] = 0;
 
44436
    type = &CTYPE_UNSIGNED_INT;
 
44437
  }
 
44438
  // handle 'void'
 
44439
  else if (_prim_map[CT_PrimDeclSpec::PDS_VOID]) {
 
44440
    _prim_map[CT_PrimDeclSpec::PDS_VOID] = 0;
 
44441
    type = &CTYPE_VOID;
 
44442
  }
 
44443
  // handle '__unknown_t'
 
44444
  else if (_prim_map[CT_PrimDeclSpec::PDS_UNKNOWN_T]) {
 
44445
    _prim_map[CT_PrimDeclSpec::PDS_UNKNOWN_T] = 0;
 
44446
    type = &CTYPE_UNKNOWN_T;
 
44447
  }
 
44448
  else if (_names) {
 
44449
    _names--;
 
44450
    if (_name) {
 
44451
      info = 0;
 
44452
      if (_name->NodeName () == CT_TemplateName::NodeId ())
 
44453
        info = _name->Object ();
 
44454
      else if (_name->NodeName () == CT_QualName::NodeId () ||
 
44455
               _name->NodeName () == CT_RootQualName::NodeId ()) {
 
44456
        for (unsigned i = _name->Entries (); i > 0; i--)
 
44457
          if ((info = ((CT_SimpleName*)_name->Entry (i-1))->Object ()))
 
44458
            break;
 
44459
      } else
 
44460
        info = _name->Name ()->Object ();
 
44461
      if (info && (info->Record () || info->EnumInfo () || 
 
44462
                   info->TypedefInfo () || info->TemplateParamInfo ()))
 
44463
        type = info->TypeInfo ()->Duplicate ();
 
44464
    }
 
44465
  }
 
44466
  else if (_class_specs) {
 
44467
    _class_specs--;
 
44468
    if (_name) {
 
44469
      info = _name->Object ();
 
44470
      if (info)
 
44471
        type = CTypeInfo::Duplicate (info->TypeInfo ());
 
44472
    }
 
44473
  }
 
44474
  else if (_union_specs) {
 
44475
    _union_specs--;
 
44476
    if (_name) {
 
44477
      info = _name->Object ();
 
44478
      if (info)
 
44479
        type = CTypeInfo::Duplicate (info->TypeInfo ());
 
44480
    }
 
44481
  }
 
44482
  else if (_enum_specs) {
 
44483
    _enum_specs--;
 
44484
    if (_name) {
 
44485
      info = _name->Object ();
 
44486
      if (info)
 
44487
        type = CTypeInfo::Duplicate (info->TypeInfo ());
 
44488
    }
 
44489
  }
 
44490
  return type;
 
44491
}
 
44492
 
 
44493
 
 
44494
CTypeInfo *CSemDeclSpecs::create_qualifiers (CTypeInfo *type) {
 
44495
  // handle 'const', 'volatile' and 'restrict'
 
44496
  if (_prim_map[CT_PrimDeclSpec::PDS_CONST] ||
 
44497
      _prim_map[CT_PrimDeclSpec::PDS_VOLATILE] ||
 
44498
      _prim_map[CT_PrimDeclSpec::PDS_RESTRICT]) {
 
44499
    return new CTypeQualified (type, _prim_map[CT_PrimDeclSpec::PDS_CONST], 
 
44500
                               _prim_map[CT_PrimDeclSpec::PDS_VOLATILE],
 
44501
                               _prim_map[CT_PrimDeclSpec::PDS_RESTRICT]);
 
44502
  }
 
44503
  return type;
 
44504
}
 
44505
 
 
44506
 
 
44507
 
 
44508
#line 44509 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
44509
 
 
44510
 
 
44511
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma13CSemDeclSpecs13check_finallyEv_0 {
 
44512
  typedef TJP__ZN4Puma13CSemDeclSpecs13check_finallyEv_0 __TJP;
 
44513
  typedef TResult Result;
 
44514
  typedef TThat   That;
 
44515
  typedef TTarget Target;
 
44516
  enum { ARGS = TArgs::ARGS };
 
44517
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
44518
  static const int JPID = 6443;
 
44519
  static const AC::JPType JPTYPE = (AC::JPType)8;
 
44520
  struct Res {
 
44521
    typedef TResult Type;
 
44522
    typedef TResult ReferredType;
 
44523
  };
 
44524
 
 
44525
  Result *_result;
 
44526
  That *_that;
 
44527
 
 
44528
  inline Result *result() {return (Result*)_result;}
 
44529
  inline That *that() {return (That*)_that;}
 
44530
 
 
44531
struct Binding_ExtGnu_ExtGnu_a11_after {
 
44532
  typedef __TJP TJP;
 
44533
  template <int I, int DUMMY = 0> struct Arg {
 
44534
    void val (TJP *tjp) {} // for VC7
 
44535
  };
 
44536
  template <int DUMMY> struct Arg<0, DUMMY> {
 
44537
    static typename TJP::That &val (TJP *tjp) { return *tjp->that (); }
 
44538
  };
 
44539
};
 
44540
};
 
44541
 
 
44542
 
 
44543
#line 455 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
 
44544
bool CSemDeclSpecs::check_finally () 
 
44545
#line 44546 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
44546
{
 
44547
  typedef TJP__ZN4Puma13CSemDeclSpecs13check_finallyEv_0< bool , ::Puma::CSemDeclSpecs , ::Puma::CSemDeclSpecs ,  AC::TLE > __TJP;
 
44548
  bool result;
 
44549
  __TJP tjp;
 
44550
  tjp._result = &(__TJP::Result&)result;
 
44551
  tjp._that =  (__TJP::That*)this;
 
44552
    result = this->__exec_old_check_finally();
 
44553
  AC::invoke_ExtGnu_ExtGnu_a11_after<__TJP> (&tjp);
 
44554
  return (bool &)result;
 
44555
 
 
44556
}
 
44557
__attribute__((always_inline)) inline bool Puma::CSemDeclSpecs::__exec_old_check_finally()
 
44558
#line 455 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
 
44559
{
 
44560
  if (_prim_map[CT_PrimDeclSpec::PDS_CHAR] + 
 
44561
      _prim_map[CT_PrimDeclSpec::PDS_WCHAR_T] + 
 
44562
      _prim_map[CT_PrimDeclSpec::PDS_BOOL] + 
 
44563
      _prim_map[CT_PrimDeclSpec::PDS_SHORT] + 
 
44564
      _prim_map[CT_PrimDeclSpec::PDS_INT] + 
 
44565
      _prim_map[CT_PrimDeclSpec::PDS_LONG] + 
 
44566
      _prim_map[CT_PrimDeclSpec::PDS_SIGNED] + 
 
44567
      _prim_map[CT_PrimDeclSpec::PDS_UNSIGNED] + 
 
44568
      _prim_map[CT_PrimDeclSpec::PDS_FLOAT] + 
 
44569
      _prim_map[CT_PrimDeclSpec::PDS_DOUBLE] + 
 
44570
      _prim_map[CT_PrimDeclSpec::PDS_INT64] + 
 
44571
      _prim_map[CT_PrimDeclSpec::PDS_UNKNOWN_T] + 
 
44572
      _prim_map[CT_PrimDeclSpec::PDS_VOID] +
 
44573
      _names + _class_specs + _union_specs + _enum_specs > 0) {
 
44574
    *_err << sev_error << _dss->token ()->location () 
 
44575
          << "invalid type specified in declaration" << endMessage;
 
44576
    return false;
 
44577
  }
 
44578
  return true;
 
44579
}
 
44580
 
 
44581
} // namespace Puma
 
44582
 
 
44583
#line 44584 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
44584
 
 
44585
#ifdef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_CSemDeclSpecs_cc__
 
44586
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
44587
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
44588
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
44589
#include "CCExprResolveCC.ah"
 
44590
#endif
 
44591
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44592
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44593
#include "ExtACTree.ah"
 
44594
#endif
 
44595
#endif
 
44596
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44597
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44598
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44599
#include "CCExprResolveH.ah"
 
44600
#endif
 
44601
#endif
 
44602
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
44603
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
44604
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
44605
#include "CExprResolveCC.ah"
 
44606
#endif
 
44607
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44608
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44609
#include "ExtACTree.ah"
 
44610
#endif
 
44611
#endif
 
44612
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44613
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44614
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44615
#include "CExprResolveH.ah"
 
44616
#endif
 
44617
#endif
 
44618
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
44619
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
44620
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
44621
#include "WinIfExists.ah"
 
44622
#endif
 
44623
#endif
 
44624
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
44625
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
44626
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
44627
#include "WinImportHandler.ah"
 
44628
#endif
 
44629
#endif
 
44630
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
44631
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
44632
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
44633
#include "WinMacros.ah"
 
44634
#endif
 
44635
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
44636
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
44637
#include "PragmaOnceUnitState.ah"
 
44638
#endif
 
44639
#endif
 
44640
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
 
44641
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
 
44642
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
 
44643
#include "WinAsm.ah"
 
44644
#endif
 
44645
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44646
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44647
#include "ExtACTree.ah"
 
44648
#endif
 
44649
#endif
 
44650
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
44651
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
44652
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
44653
#include "WinDeclSpecs.ah"
 
44654
#endif
 
44655
#endif
 
44656
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
44657
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
44658
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
44659
#include "WinMemberExplSpec.ah"
 
44660
#endif
 
44661
#endif
 
44662
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
44663
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
44664
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
44665
#include "WinTypeKeywords.ah"
 
44666
#endif
 
44667
#endif
 
44668
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
 
44669
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
 
44670
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
 
44671
#include "WinFriend.ah"
 
44672
#endif
 
44673
#endif
 
44674
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
44675
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
44676
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
44677
#include "ExtAC.ah"
 
44678
#endif
 
44679
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44680
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44681
#include "ExtACTree.ah"
 
44682
#endif
 
44683
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
44684
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
44685
#include "ExtACKeywords.ah"
 
44686
#endif
 
44687
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
44688
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
44689
#include "ExtGnu.ah"
 
44690
#endif
 
44691
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
44692
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
44693
#include "PragmaOnceUnitState.ah"
 
44694
#endif
 
44695
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
44696
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
44697
#include "CMatchSyntax.ah"
 
44698
#endif
 
44699
#endif
 
44700
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
44701
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
44702
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
44703
#include "ExtACBuilderH.ah"
 
44704
#endif
 
44705
#endif
 
44706
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
44707
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
44708
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
44709
#include "ExtACBuilderCC.ah"
 
44710
#endif
 
44711
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44712
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44713
#include "ExtACTree.ah"
 
44714
#endif
 
44715
#endif
 
44716
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
44717
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
44718
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
44719
#include "ExtACSyntaxH.ah"
 
44720
#endif
 
44721
#endif
 
44722
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
44723
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
44724
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
44725
#include "ExtACSyntaxCC.ah"
 
44726
#endif
 
44727
#endif
 
44728
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44729
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44730
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44731
 
 
44732
#line 149 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
 
44733
#endif
 
44734
#endif
 
44735
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
44736
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
44737
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
44738
#include "ExtACKeywords.ah"
 
44739
#endif
 
44740
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
44741
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
44742
#include "PragmaOnceUnitState.ah"
 
44743
#endif
 
44744
#endif
 
44745
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
44746
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44747
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44748
#include "ExtACTree.ah"
 
44749
#endif
 
44750
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
44751
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
44752
 
 
44753
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
44754
// This file is part of PUMA.
 
44755
// Copyright (C) 1999-2003  The PUMA developer team.
 
44756
//                                                                
 
44757
// This program is free software;  you can redistribute it and/or 
 
44758
// modify it under the terms of the GNU General Public License as 
 
44759
// published by the Free Software Foundation; either version 2 of 
 
44760
// the License, or (at your option) any later version.            
 
44761
//                                                                
 
44762
// This program is distributed in the hope that it will be useful,
 
44763
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
44764
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
44765
// GNU General Public License for more details.                   
 
44766
//                                                                
 
44767
// You should have received a copy of the GNU General Public      
 
44768
// License along with this program; if not, write to the Free     
 
44769
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
44770
// MA  02111-1307  USA                                            
 
44771
 
 
44772
#ifndef __ext_gnu_h__
 
44773
#define __ext_gnu_h__
 
44774
 
 
44775
 
 
44776
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
16300
44777
// This file is part of PUMA.
16301
44778
// Copyright (C) 1999-2003  The PUMA developer team.
16302
44779
//                                                                
16319
44796
#define __CSemVisitor_h__
16320
44797
 
16321
44798
 
16322
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
16323
 
// This file is part of PUMA.
16324
 
// Copyright (C) 1999-2003  The PUMA developer team.
16325
 
//                                                                
16326
 
// This program is free software;  you can redistribute it and/or 
16327
 
// modify it under the terms of the GNU General Public License as 
16328
 
// published by the Free Software Foundation; either version 2 of 
16329
 
// the License, or (at your option) any later version.            
16330
 
//                                                                
16331
 
// This program is distributed in the hope that it will be useful,
16332
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
16333
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
16334
 
// GNU General Public License for more details.                   
16335
 
//                                                                
16336
 
// You should have received a copy of the GNU General Public      
16337
 
// License along with this program; if not, write to the Free     
16338
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
16339
 
// MA  02111-1307  USA                                            
16340
 
 
16341
 
#ifndef __error_sink_h__
16342
 
#define __error_sink_h__
16343
 
 
16344
 
// This is an interface for classes that may be used to consume error
16345
 
// messages during a process where many errors can occur like parsing
16346
 
// a program.
16347
 
// The error information is handed over to the ErrorSink in stream-like
16348
 
// style. Different severities of errors are predefined and can be used
16349
 
// to classify error information that follows. Also a location can be
16350
 
// handed over to the ErrorSink to specify where the error was found
16351
 
// (filename, line, etc.). The error information itself can be of any
16352
 
// standard data type or anything that is "Printable".
16353
 
// Specializations of this class could either build and print error
16354
 
// messages or collect them for a later processing.
16355
 
 
16356
 
 
16357
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
16358
 
namespace Puma {
16359
 
 
16360
 
 
16361
 
 
16362
 
#line 16363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
16363
 
} // closed Puma
16364
 
class WinIfExists;
16365
 
class WinImportHandler;
16366
 
class WinMacros;
16367
 
class CMatchSyntax;
16368
 
class ExtGnu;
16369
 
class ExtAC;
16370
 
class ExtACBuilderCoupling;
16371
 
class ExtACSyntaxCoupling;
16372
 
class ExtACTree;
16373
 
class ExtACKeywords;
16374
 
class WinAsm;
16375
 
class WinDeclSpecs;
16376
 
class WinMemberExplSpec;
16377
 
class WinTypeKeywords;
16378
 
class PragmaOnceUnitState;
16379
 
class PragmaOnce;
16380
 
class CCExprResolve;
16381
 
class CExprResolve;
16382
 
namespace Puma {
16383
 
 
16384
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
16385
 
class ErrorSink {
16386
 
#line 16387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
16387
 
  friend class ::WinIfExists;
16388
 
  friend class ::WinImportHandler;
16389
 
  friend class ::WinMacros;
16390
 
  friend class ::CMatchSyntax;
16391
 
  friend class ::ExtGnu;
16392
 
  friend class ::ExtAC;
16393
 
  friend class ::ExtACBuilderCoupling;
16394
 
  friend class ::ExtACSyntaxCoupling;
16395
 
  friend class ::ExtACTree;
16396
 
  friend class ::ExtACKeywords;
16397
 
  friend class ::WinAsm;
16398
 
  friend class ::WinDeclSpecs;
16399
 
  friend class ::WinMemberExplSpec;
16400
 
  friend class ::WinTypeKeywords;
16401
 
  friend class ::PragmaOnceUnitState;
16402
 
  friend class ::PragmaOnce;
16403
 
  friend class ::CCExprResolve;
16404
 
  friend class ::CExprResolve;
16405
 
 
16406
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
16407
 
 
16408
 
public:
16409
 
  virtual ~ErrorSink () {}
16410
 
  virtual ErrorSink &operator << (const char *) = 0;
16411
 
  virtual ErrorSink &operator << (long) = 0;
16412
 
  virtual ErrorSink &operator << (unsigned) = 0;
16413
 
  virtual ErrorSink &operator << (int) = 0;
16414
 
  virtual ErrorSink &operator << (short) = 0;
16415
 
  virtual ErrorSink &operator << (char) = 0;
16416
 
  virtual ErrorSink &operator << (double) = 0;
16417
 
  virtual ErrorSink &operator << (const ErrorSeverity &) = 0;
16418
 
  virtual ErrorSink &operator << (Location) = 0;
16419
 
  virtual ErrorSink &operator << (const Printable &) = 0;
16420
 
  virtual ErrorSink &operator << (void (*f)(ErrorSink &)) = 0;
16421
 
  virtual void endMessage () = 0;
16422
 
};
16423
 
 
16424
 
void endMessage (ErrorSink &);
16425
 
 
16426
 
 
16427
 
} // namespace Puma
16428
 
 
16429
 
#endif /* __error_sink_h__ */
16430
 
 
16431
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CVisitor.h"
 
44799
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CVisitor.h"
16432
44800
// This file is part of PUMA.
16433
44801
// Copyright (C) 1999-2003  The PUMA developer team.
16434
44802
//                                                                
16458
44826
class CTree;
16459
44827
 
16460
44828
 
16461
 
#line 16462 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
44829
#line 44830 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
16462
44830
} // closed Puma
 
44831
class CCExprResolve;
 
44832
class CExprResolve;
16463
44833
class WinIfExists;
16464
44834
class WinImportHandler;
16465
44835
class WinMacros;
16466
 
class CMatchSyntax;
16467
 
class ExtGnu;
 
44836
class WinAsm;
 
44837
class WinDeclSpecs;
 
44838
class WinMemberExplSpec;
 
44839
class WinTypeKeywords;
 
44840
class WinFriend;
16468
44841
class ExtAC;
16469
44842
class ExtACBuilderCoupling;
16470
44843
class ExtACSyntaxCoupling;
16471
44844
class ExtACTree;
16472
44845
class ExtACKeywords;
16473
 
class WinAsm;
16474
 
class WinDeclSpecs;
16475
 
class WinMemberExplSpec;
16476
 
class WinTypeKeywords;
 
44846
class ExtGnu;
16477
44847
class PragmaOnceUnitState;
16478
44848
class PragmaOnce;
16479
 
class CCExprResolve;
16480
 
class CExprResolve;
 
44849
class CMatchSyntax;
16481
44850
namespace Puma {
16482
44851
 
16483
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CVisitor.h"
 
44852
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CVisitor.h"
16484
44853
class CVisitor {
16485
 
#line 16486 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
44854
#line 44855 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
44855
  friend class ::CCExprResolve;
 
44856
  friend class ::CExprResolve;
16486
44857
  friend class ::WinIfExists;
16487
44858
  friend class ::WinImportHandler;
16488
44859
  friend class ::WinMacros;
16489
 
  friend class ::CMatchSyntax;
16490
 
  friend class ::ExtGnu;
 
44860
  friend class ::WinAsm;
 
44861
  friend class ::WinDeclSpecs;
 
44862
  friend class ::WinMemberExplSpec;
 
44863
  friend class ::WinTypeKeywords;
 
44864
  friend class ::WinFriend;
16491
44865
  friend class ::ExtAC;
16492
44866
  friend class ::ExtACBuilderCoupling;
16493
44867
  friend class ::ExtACSyntaxCoupling;
16494
44868
  friend class ::ExtACTree;
16495
44869
  friend class ::ExtACKeywords;
16496
 
  friend class ::WinAsm;
16497
 
  friend class ::WinDeclSpecs;
16498
 
  friend class ::WinMemberExplSpec;
16499
 
  friend class ::WinTypeKeywords;
 
44870
  friend class ::ExtGnu;
16500
44871
  friend class ::PragmaOnceUnitState;
16501
44872
  friend class ::PragmaOnce;
16502
 
  friend class ::CCExprResolve;
16503
 
  friend class ::CExprResolve;
 
44873
  friend class ::CMatchSyntax;
16504
44874
 
16505
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CVisitor.h"
 
44875
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CVisitor.h"
16506
44876
 
16507
44877
  bool _aborted;
16508
44878
  bool _pruned;
16529
44899
 
16530
44900
#endif /* __CVisitor_h__ */
16531
44901
 
16532
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Limits.h"
16533
 
/* This file was generated by the PUMA library, version 1.1. */
16534
 
 
16535
 
// This file is part of PUMA.
16536
 
// Copyright (C) 1999-2003  The PUMA developer team.
16537
 
//                                                                
16538
 
// This program is free software;  you can redistribute it and/or 
16539
 
// modify it under the terms of the GNU General Public License as 
16540
 
// published by the Free Software Foundation; either version 2 of 
16541
 
// the License, or (at your option) any later version.            
16542
 
//                                                                
16543
 
// This program is distributed in the hope that it will be useful,
16544
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
16545
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
16546
 
// GNU General Public License for more details.                   
16547
 
//                                                                
16548
 
// You should have received a copy of the GNU General Public      
16549
 
// License along with this program; if not, write to the Free     
16550
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
16551
 
// MA  02111-1307  USA                                            
16552
 
 
16553
 
#ifndef __Limits_h__
16554
 
#define __Limits_h__
16555
 
 
16556
 
 
16557
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Limits.h"
16558
 
namespace Puma {
16559
 
 
16560
 
 
16561
 
// type `long long' support
16562
 
 
16563
 
#if defined(__GNUC__) || defined(_MSC_VER)
16564
 
typedef long long LONG_LONG;
16565
 
typedef unsigned long long U_LONG_LONG;
16566
 
#else /* __GNUC__ */
16567
 
typedef long LONG_LONG;
16568
 
typedef unsigned long U_LONG_LONG;
16569
 
#endif /* __GNUC__ */
16570
 
 
16571
 
#ifndef LLONG_MAX
16572
 
#  if defined(__GNUC__) || defined(_MSC_VER)
16573
 
#    define LLONG_MAX        9223372036854775807LL
16574
 
#    define LLONG_MIN        (-LLONG_MAX - 1LL)
16575
 
#    define ULLONG_MAX        18446744073709551615ULL
16576
 
#  else /* __GNUC__ */
16577
 
#    define LLONG_MAX        LONG_MAX
16578
 
#    define LLONG_MIN        LONG_MIN
16579
 
#    define ULLONG_MAX       ULONG_MAX
16580
 
#  endif /* __GNUC__ */
16581
 
#endif /* LLONG_MAX */
16582
 
 
16583
 
// type size (in bits)
16584
 
 
16585
 
#define BOOL_SIZE             8
16586
 
#define CHAR_SIZE             8
16587
 
#define SCHAR_SIZE            8
16588
 
#define UCHAR_SIZE            8
16589
 
#define SHORT_SIZE            16
16590
 
#define USHORT_SIZE           16
16591
 
#define WCHAR_T_SIZE          32
16592
 
#define INT_SIZE              32
16593
 
#define UINT_SIZE             32
16594
 
#define LONG_SIZE             32
16595
 
#define ULONG_SIZE            32
16596
 
#define LLONG_SIZE            64
16597
 
#define ULLONG_SIZE           64
16598
 
 
16599
 
#define FLOAT_SIZE            32
16600
 
#define DOUBLE_SIZE           64
16601
 
#define LDOUBLE_SIZE          96
16602
 
 
16603
 
#define PTR_SIZE              32
16604
 
#define MEMB_PTR_SIZE         64
16605
 
 
16606
 
#define ENUM_SIZE             32
16607
 
 
16608
 
 
16609
 
} // namespace Puma
16610
 
 
16611
 
#endif /* __Limits_h__ */
16612
 
 
16613
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
 
44902
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
16614
44903
// This file is part of PUMA.
16615
44904
// Copyright (C) 1999-2003  The PUMA developer team.
16616
44905
//                                                                
16636
44925
// information from file or command line.
16637
44926
 
16638
44927
 
16639
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Flags.h"
 
44928
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
16640
44929
// This file is part of PUMA.
16641
44930
// Copyright (C) 1999-2003  The PUMA developer team.
16642
44931
//                                                                
16662
44951
 
16663
44952
 
16664
44953
 
16665
 
#line 16666 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
44954
#line 44955 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
16666
44955
} // closed Puma
 
44956
class CCExprResolve;
 
44957
class CExprResolve;
16667
44958
class WinIfExists;
16668
44959
class WinImportHandler;
16669
44960
class WinMacros;
16670
 
class CMatchSyntax;
16671
 
class ExtGnu;
 
44961
class WinAsm;
 
44962
class WinDeclSpecs;
 
44963
class WinMemberExplSpec;
 
44964
class WinTypeKeywords;
 
44965
class WinFriend;
16672
44966
class ExtAC;
16673
44967
class ExtACBuilderCoupling;
16674
44968
class ExtACSyntaxCoupling;
16675
44969
class ExtACTree;
16676
44970
class ExtACKeywords;
16677
 
class WinAsm;
16678
 
class WinDeclSpecs;
16679
 
class WinMemberExplSpec;
16680
 
class WinTypeKeywords;
 
44971
class ExtGnu;
16681
44972
class PragmaOnceUnitState;
16682
44973
class PragmaOnce;
16683
 
class CCExprResolve;
16684
 
class CExprResolve;
 
44974
class CMatchSyntax;
16685
44975
namespace Puma {
16686
44976
 
16687
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Flags.h"
 
44977
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
16688
44978
class Flags {
16689
 
#line 16690 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
44979
#line 44980 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
44980
  friend class ::CCExprResolve;
 
44981
  friend class ::CExprResolve;
16690
44982
  friend class ::WinIfExists;
16691
44983
  friend class ::WinImportHandler;
16692
44984
  friend class ::WinMacros;
16693
 
  friend class ::CMatchSyntax;
16694
 
  friend class ::ExtGnu;
 
44985
  friend class ::WinAsm;
 
44986
  friend class ::WinDeclSpecs;
 
44987
  friend class ::WinMemberExplSpec;
 
44988
  friend class ::WinTypeKeywords;
 
44989
  friend class ::WinFriend;
16695
44990
  friend class ::ExtAC;
16696
44991
  friend class ::ExtACBuilderCoupling;
16697
44992
  friend class ::ExtACSyntaxCoupling;
16698
44993
  friend class ::ExtACTree;
16699
44994
  friend class ::ExtACKeywords;
16700
 
  friend class ::WinAsm;
16701
 
  friend class ::WinDeclSpecs;
16702
 
  friend class ::WinMemberExplSpec;
16703
 
  friend class ::WinTypeKeywords;
 
44995
  friend class ::ExtGnu;
16704
44996
  friend class ::PragmaOnceUnitState;
16705
44997
  friend class ::PragmaOnce;
16706
 
  friend class ::CCExprResolve;
16707
 
  friend class ::CExprResolve;
 
44998
  friend class ::CMatchSyntax;
16708
44999
 
16709
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Flags.h"
 
45000
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
16710
45001
 
16711
45002
public:
16712
45003
  enum Flag {
16770
45061
 
16771
45062
#endif /* __Flags_h__ */
16772
45063
 
16773
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
45064
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
16774
45065
// This file is part of PUMA.
16775
45066
// Copyright (C) 1999-2003  The PUMA developer team.
16776
45067
//                                                                
16793
45084
#define __ConfOption_h__
16794
45085
 
16795
45086
 
16796
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
45087
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
16797
45088
#include <stdlib.h>
16798
45089
 
16799
45090
namespace Puma {
16800
45091
 
16801
45092
 
16802
45093
 
16803
 
#line 16804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
45094
#line 45095 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
16804
45095
} // closed Puma
 
45096
class CCExprResolve;
 
45097
class CExprResolve;
16805
45098
class WinIfExists;
16806
45099
class WinImportHandler;
16807
45100
class WinMacros;
16808
 
class CMatchSyntax;
16809
 
class ExtGnu;
 
45101
class WinAsm;
 
45102
class WinDeclSpecs;
 
45103
class WinMemberExplSpec;
 
45104
class WinTypeKeywords;
 
45105
class WinFriend;
16810
45106
class ExtAC;
16811
45107
class ExtACBuilderCoupling;
16812
45108
class ExtACSyntaxCoupling;
16813
45109
class ExtACTree;
16814
45110
class ExtACKeywords;
16815
 
class WinAsm;
16816
 
class WinDeclSpecs;
16817
 
class WinMemberExplSpec;
16818
 
class WinTypeKeywords;
 
45111
class ExtGnu;
16819
45112
class PragmaOnceUnitState;
16820
45113
class PragmaOnce;
16821
 
class CCExprResolve;
16822
 
class CExprResolve;
 
45114
class CMatchSyntax;
16823
45115
namespace Puma {
16824
45116
 
16825
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
45117
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
16826
45118
class ConfOption {
16827
 
#line 16828 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
45119
#line 45120 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
45120
  friend class ::CCExprResolve;
 
45121
  friend class ::CExprResolve;
16828
45122
  friend class ::WinIfExists;
16829
45123
  friend class ::WinImportHandler;
16830
45124
  friend class ::WinMacros;
16831
 
  friend class ::CMatchSyntax;
16832
 
  friend class ::ExtGnu;
 
45125
  friend class ::WinAsm;
 
45126
  friend class ::WinDeclSpecs;
 
45127
  friend class ::WinMemberExplSpec;
 
45128
  friend class ::WinTypeKeywords;
 
45129
  friend class ::WinFriend;
16833
45130
  friend class ::ExtAC;
16834
45131
  friend class ::ExtACBuilderCoupling;
16835
45132
  friend class ::ExtACSyntaxCoupling;
16836
45133
  friend class ::ExtACTree;
16837
45134
  friend class ::ExtACKeywords;
16838
 
  friend class ::WinAsm;
16839
 
  friend class ::WinDeclSpecs;
16840
 
  friend class ::WinMemberExplSpec;
16841
 
  friend class ::WinTypeKeywords;
 
45135
  friend class ::ExtGnu;
16842
45136
  friend class ::PragmaOnceUnitState;
16843
45137
  friend class ::PragmaOnce;
16844
 
  friend class ::CCExprResolve;
16845
 
  friend class ::CExprResolve;
 
45138
  friend class ::CMatchSyntax;
16846
45139
 
16847
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
45140
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
16848
45141
 
16849
45142
  const char *_name;
16850
45143
  Array<const char *> _args;
16890
45183
 
16891
45184
#endif /* __ConfOption_h__ */
16892
45185
 
16893
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
45186
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
16894
45187
// This file is part of PUMA.
16895
45188
// Copyright (C) 1999-2003  The PUMA developer team.
16896
45189
//                                                                
16918
45211
 
16919
45212
#include <sstream>
16920
45213
 
16921
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
45214
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
16922
45215
using namespace std;
16923
45216
 
16924
45217
namespace Puma {
16925
45218
 
16926
45219
 
16927
45220
 
16928
 
#line 16929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
45221
#line 45222 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
16929
45222
} // closed Puma
 
45223
class CCExprResolve;
 
45224
class CExprResolve;
16930
45225
class WinIfExists;
16931
45226
class WinImportHandler;
16932
45227
class WinMacros;
16933
 
class CMatchSyntax;
16934
 
class ExtGnu;
 
45228
class WinAsm;
 
45229
class WinDeclSpecs;
 
45230
class WinMemberExplSpec;
 
45231
class WinTypeKeywords;
 
45232
class WinFriend;
16935
45233
class ExtAC;
16936
45234
class ExtACBuilderCoupling;
16937
45235
class ExtACSyntaxCoupling;
16938
45236
class ExtACTree;
16939
45237
class ExtACKeywords;
16940
 
class WinAsm;
16941
 
class WinDeclSpecs;
16942
 
class WinMemberExplSpec;
16943
 
class WinTypeKeywords;
 
45238
class ExtGnu;
16944
45239
class PragmaOnceUnitState;
16945
45240
class PragmaOnce;
16946
 
class CCExprResolve;
16947
 
class CExprResolve;
 
45241
class CMatchSyntax;
16948
45242
namespace Puma {
16949
45243
 
16950
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
45244
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
16951
45245
class ErrorStream : public ErrorSink {
16952
 
#line 16953 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
45246
#line 45247 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
45247
  friend class ::CCExprResolve;
 
45248
  friend class ::CExprResolve;
16953
45249
  friend class ::WinIfExists;
16954
45250
  friend class ::WinImportHandler;
16955
45251
  friend class ::WinMacros;
16956
 
  friend class ::CMatchSyntax;
16957
 
  friend class ::ExtGnu;
 
45252
  friend class ::WinAsm;
 
45253
  friend class ::WinDeclSpecs;
 
45254
  friend class ::WinMemberExplSpec;
 
45255
  friend class ::WinTypeKeywords;
 
45256
  friend class ::WinFriend;
16958
45257
  friend class ::ExtAC;
16959
45258
  friend class ::ExtACBuilderCoupling;
16960
45259
  friend class ::ExtACSyntaxCoupling;
16961
45260
  friend class ::ExtACTree;
16962
45261
  friend class ::ExtACKeywords;
16963
 
  friend class ::WinAsm;
16964
 
  friend class ::WinDeclSpecs;
16965
 
  friend class ::WinMemberExplSpec;
16966
 
  friend class ::WinTypeKeywords;
 
45262
  friend class ::ExtGnu;
16967
45263
  friend class ::PragmaOnceUnitState;
16968
45264
  friend class ::PragmaOnce;
16969
 
  friend class ::CCExprResolve;
16970
 
  friend class ::CExprResolve;
 
45265
  friend class ::CMatchSyntax;
16971
45266
 
16972
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
45267
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
16973
45268
 
16974
45269
  ostream *_ostream;
16975
45270
  ErrorSeverity _max_severity;
17012
45307
 
17013
45308
#endif /* __error_stream_h__ */
17014
45309
 
17015
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
45310
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
17016
45311
// This file is part of PUMA.
17017
45312
// Copyright (C) 1999-2003  The PUMA developer team.
17018
45313
//                                                                
17035
45330
#define __OptsParser_h__
17036
45331
 
17037
45332
 
17038
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
45333
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
17039
45334
// This file is part of PUMA.
17040
45335
// Copyright (C) 1999-2003  The PUMA developer team.
17041
45336
//                                                                
17058
45353
#define __SimpleParser_h__
17059
45354
 
17060
45355
 
17061
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
45356
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
17062
45357
#include <vector>
17063
45358
using namespace std;
17064
45359
 
17065
45360
namespace Puma {
17066
45361
 
17067
45362
 
 
45363
/** 
 
45364
 * Simple string parser. 
 
45365
 * \class SimpleParser SimpleParser.h Puma/common/SimpleParser.h
 
45366
 */
17068
45367
 
17069
 
#line 17070 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
45368
#line 45369 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
17070
45369
} // closed Puma
 
45370
class CCExprResolve;
 
45371
class CExprResolve;
17071
45372
class WinIfExists;
17072
45373
class WinImportHandler;
17073
45374
class WinMacros;
17074
 
class CMatchSyntax;
17075
 
class ExtGnu;
 
45375
class WinAsm;
 
45376
class WinDeclSpecs;
 
45377
class WinMemberExplSpec;
 
45378
class WinTypeKeywords;
 
45379
class WinFriend;
17076
45380
class ExtAC;
17077
45381
class ExtACBuilderCoupling;
17078
45382
class ExtACSyntaxCoupling;
17079
45383
class ExtACTree;
17080
45384
class ExtACKeywords;
17081
 
class WinAsm;
17082
 
class WinDeclSpecs;
17083
 
class WinMemberExplSpec;
17084
 
class WinTypeKeywords;
 
45385
class ExtGnu;
17085
45386
class PragmaOnceUnitState;
17086
45387
class PragmaOnce;
17087
 
class CCExprResolve;
17088
 
class CExprResolve;
 
45388
class CMatchSyntax;
17089
45389
namespace Puma {
17090
45390
 
17091
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
45391
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
17092
45392
class SimpleParser {
17093
 
#line 17094 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
45393
#line 45394 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
45394
  friend class ::CCExprResolve;
 
45395
  friend class ::CExprResolve;
17094
45396
  friend class ::WinIfExists;
17095
45397
  friend class ::WinImportHandler;
17096
45398
  friend class ::WinMacros;
17097
 
  friend class ::CMatchSyntax;
17098
 
  friend class ::ExtGnu;
 
45399
  friend class ::WinAsm;
 
45400
  friend class ::WinDeclSpecs;
 
45401
  friend class ::WinMemberExplSpec;
 
45402
  friend class ::WinTypeKeywords;
 
45403
  friend class ::WinFriend;
17099
45404
  friend class ::ExtAC;
17100
45405
  friend class ::ExtACBuilderCoupling;
17101
45406
  friend class ::ExtACSyntaxCoupling;
17102
45407
  friend class ::ExtACTree;
17103
45408
  friend class ::ExtACKeywords;
17104
 
  friend class ::WinAsm;
17105
 
  friend class ::WinDeclSpecs;
17106
 
  friend class ::WinMemberExplSpec;
17107
 
  friend class ::WinTypeKeywords;
 
45409
  friend class ::ExtGnu;
17108
45410
  friend class ::PragmaOnceUnitState;
17109
45411
  friend class ::PragmaOnce;
17110
 
  friend class ::CCExprResolve;
17111
 
  friend class ::CExprResolve;
 
45412
  friend class ::CMatchSyntax;
17112
45413
 
17113
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
45414
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
17114
45415
 
17115
45416
public:
17116
 
  SimpleParser() {}
17117
 
  ~SimpleParser() {}
17118
 
   
17119
 
  static int tokenize (const string &, vector<string> &, 
17120
 
                       const string &delimiters = " ");
17121
 
  static string strip (const string &);
 
45417
  /**
 
45418
   * Remove enclosing double-quotes from a string.
 
45419
   * \param str The string to strip.
 
45420
   * \return String without the enclosing double-quotes.
 
45421
   */
 
45422
  static string strip (const string& str);
 
45423
  /**
 
45424
   * Splits a given string into tokens recognized by the given delimiters.
 
45425
   * \param str The string to split.
 
45426
   * \param tokens A vector for the tokens.
 
45427
   * \param delimiters A string with the delimiters. Default is a space or tab.
 
45428
   * \return Number of recognized tokens.
 
45429
   */
 
45430
  static int tokenize (const string& str, vector<string>& tokens, const string& delimiters = " ");
 
45431
 
 
45432
private:
 
45433
  /**
 
45434
   * Get the position of the next token.
 
45435
   * \param line The string to tokenize.
 
45436
   * \param delimiters A string with the token delimiters.
 
45437
   * \param pos The current position in the string.
 
45438
   * \param lastPos The last position in the string.
 
45439
   * \return The position of the next token.
 
45440
   */
 
45441
  static string::size_type next (const string& line, const string& delimiters, string::size_type pos, string::size_type& lastPos);
 
45442
  /**
 
45443
   * Get the begin of the next token.
 
45444
   * \param line The string to tokenize.
 
45445
   * \param delimiters A string with the token delimiters.
 
45446
   * \param pos The current position in the string.
 
45447
   * \return The begin of the next token.
 
45448
   */
 
45449
  static string::size_type findBeginOfNextToken (const string& line, const string& delimiters, string::size_type pos);
 
45450
  /**
 
45451
   * Get the end of the next token.
 
45452
   * \param line The string to tokenize.
 
45453
   * \param delimiters A string with the token delimiters.
 
45454
   * \param lastPos The last position in the string, i.e. the begin of the next token.
 
45455
   * \return The end of the next token.
 
45456
   */
 
45457
  static string::size_type findEndOfNextToken (const string& line, const string& delimiters, string::size_type lastPos);
17122
45458
};
17123
45459
 
17124
45460
 
17126
45462
 
17127
45463
#endif /* __SimpleParser_h__ */
17128
45464
 
17129
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
45465
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
17130
45466
using namespace std;
17131
45467
 
17132
45468
namespace Puma {
17133
45469
 
17134
45470
 
 
45471
/** \brief The %Options %Parser searches command line parameters for options and
 
45472
 *  handles their option arguments, if applicable.
 
45473
 */
17135
45474
 
17136
 
#line 17137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
45475
#line 45476 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
17137
45476
} // closed Puma
 
45477
class CCExprResolve;
 
45478
class CExprResolve;
17138
45479
class WinIfExists;
17139
45480
class WinImportHandler;
17140
45481
class WinMacros;
17141
 
class CMatchSyntax;
17142
 
class ExtGnu;
 
45482
class WinAsm;
 
45483
class WinDeclSpecs;
 
45484
class WinMemberExplSpec;
 
45485
class WinTypeKeywords;
 
45486
class WinFriend;
17143
45487
class ExtAC;
17144
45488
class ExtACBuilderCoupling;
17145
45489
class ExtACSyntaxCoupling;
17146
45490
class ExtACTree;
17147
45491
class ExtACKeywords;
17148
 
class WinAsm;
17149
 
class WinDeclSpecs;
17150
 
class WinMemberExplSpec;
17151
 
class WinTypeKeywords;
 
45492
class ExtGnu;
17152
45493
class PragmaOnceUnitState;
17153
45494
class PragmaOnce;
17154
 
class CCExprResolve;
17155
 
class CExprResolve;
 
45495
class CMatchSyntax;
17156
45496
namespace Puma {
17157
45497
 
17158
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
45498
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
17159
45499
class OptsParser : public SimpleParser {
17160
 
#line 17161 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
45500
#line 45501 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
45501
  friend class ::CCExprResolve;
 
45502
  friend class ::CExprResolve;
17161
45503
  friend class ::WinIfExists;
17162
45504
  friend class ::WinImportHandler;
17163
45505
  friend class ::WinMacros;
17164
 
  friend class ::CMatchSyntax;
17165
 
  friend class ::ExtGnu;
 
45506
  friend class ::WinAsm;
 
45507
  friend class ::WinDeclSpecs;
 
45508
  friend class ::WinMemberExplSpec;
 
45509
  friend class ::WinTypeKeywords;
 
45510
  friend class ::WinFriend;
17166
45511
  friend class ::ExtAC;
17167
45512
  friend class ::ExtACBuilderCoupling;
17168
45513
  friend class ::ExtACSyntaxCoupling;
17169
45514
  friend class ::ExtACTree;
17170
45515
  friend class ::ExtACKeywords;
17171
 
  friend class ::WinAsm;
17172
 
  friend class ::WinDeclSpecs;
17173
 
  friend class ::WinMemberExplSpec;
17174
 
  friend class ::WinTypeKeywords;
 
45516
  friend class ::ExtGnu;
17175
45517
  friend class ::PragmaOnceUnitState;
17176
45518
  friend class ::PragmaOnce;
17177
 
  friend class ::CCExprResolve;
17178
 
  friend class ::CExprResolve;
17179
 
 
17180
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
17181
 
 
 
45519
  friend class ::CMatchSyntax;
 
45520
 
 
45521
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
45522
 
 
45523
  
 
45524
  
 
45525
  /** \brief Vector holding the commandline parameters. 
 
45526
   *  
 
45527
   *  This vector is filled in the constructor
 
45528
   */
17182
45529
  vector<string> m_argv;
 
45530
 
 
45531
  /** \brief Position of current parameter analyzed by the 
 
45532
   *  options parser.
 
45533
   */
17183
45534
  unsigned int m_curarg;
 
45535
  
 
45536
  /** \brief The increment added to m_curarg used to get to the next 
 
45537
   *  entry of m_argv which shall be analysed.
 
45538
   */
17184
45539
  unsigned int m_tonext;
 
45540
  
 
45541
  /** \brief %Option number of currently processed element of m_argv
 
45542
   */
17185
45543
  int m_number;
 
45544
  
 
45545
  /** \brief Name of current option
 
45546
   */
 
45547
  string m_opt;
17186
45548
 
 
45549
  /** \brief Value of current option argument
 
45550
   */
17187
45551
  string m_arg;
17188
 
  string m_opt;
 
45552
  
17189
45553
   
17190
45554
public:
17191
45555
  
17192
 
  enum {NOARG =-4, ERR = -3, NOOPTION = -2, UNKNOWN = -1, FINISH = 0 };
17193
 
  
17194
 
  enum ArgType { AT_NONE = 0, AT_MANDATORY = 1, AT_OPTIONAL = 2 };
17195
 
  
 
45556
  /** \enum
 
45557
   *  Return codes for OptsParser::getOption() and OptsParser::getArgument()
 
45558
   */
 
45559
  enum {
 
45560
     NOARG =-4, /**< %Option has no argument */
 
45561
     ERR = -3, /**< Error when parsing option */
 
45562
     NOOPTION = -2, /**< Command line parameter is not an option */
 
45563
     UNKNOWN = -1, /**< Parameter is an unknown option */
 
45564
     FINISH = 0 /**< All options are handled */
 
45565
  };
 
45566
  
 
45567
  /** \enum
 
45568
   *  Type of argument associated to an option  
 
45569
   */
 
45570
  enum ArgType { 
 
45571
     AT_NONE = 0, /**< %Option receives no argument */
 
45572
     AT_MANDATORY = 1, /**< %Option requires an argument */
 
45573
     AT_OPTIONAL = 2 /**< %Option has optionally an argument */
 
45574
  };
 
45575
  
 
45576
  /** \struct
 
45577
   *  Type for specifying an array of options recognized by the %Option %Parser.
 
45578
   *  An array of this type has to be passed to the constructor OptsParser::OptsParser()
 
45579
   */
17196
45580
  struct Option {
17197
 
#line 17198 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
45581
#line 45582 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
45582
  friend class ::CCExprResolve;
 
45583
  friend class ::CExprResolve;
17198
45584
  friend class ::WinIfExists;
17199
45585
  friend class ::WinImportHandler;
17200
45586
  friend class ::WinMacros;
17201
 
  friend class ::CMatchSyntax;
17202
 
  friend class ::ExtGnu;
 
45587
  friend class ::WinAsm;
 
45588
  friend class ::WinDeclSpecs;
 
45589
  friend class ::WinMemberExplSpec;
 
45590
  friend class ::WinTypeKeywords;
 
45591
  friend class ::WinFriend;
17203
45592
  friend class ::ExtAC;
17204
45593
  friend class ::ExtACBuilderCoupling;
17205
45594
  friend class ::ExtACSyntaxCoupling;
17206
45595
  friend class ::ExtACTree;
17207
45596
  friend class ::ExtACKeywords;
17208
 
  friend class ::WinAsm;
17209
 
  friend class ::WinDeclSpecs;
17210
 
  friend class ::WinMemberExplSpec;
17211
 
  friend class ::WinTypeKeywords;
 
45597
  friend class ::ExtGnu;
17212
45598
  friend class ::PragmaOnceUnitState;
17213
45599
  friend class ::PragmaOnce;
17214
 
  friend class ::CCExprResolve;
17215
 
  friend class ::CExprResolve;
17216
 
 
17217
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
17218
 
 
17219
 
    int number;
17220
 
    char key; 
17221
 
    const char *name;
17222
 
    const char *desc;
17223
 
    ArgType args;
 
45600
  friend class ::CMatchSyntax;
 
45601
 
 
45602
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
45603
 
 
45604
    int number; /**< Number associated with this option */
 
45605
    const char *shortName; /**< Short name of this option. Should ideally not contain more than one character */
 
45606
    const char *longName; /**< Long namen of this option */
 
45607
    const char *desc; /**< Description of this option **/ 
 
45608
    ArgType argType; /**< Type of argument for this option */
17224
45609
  };
17225
45610
 
17226
45611
private:
 
45612
  /** Pointer to array of available options. This value is set to the value of the 
 
45613
   * parameter passed to the constructor OptsParser::OptsParser()
 
45614
   */
17227
45615
  const Option *m_opts;
17228
45616
   
17229
45617
public:
17230
 
  OptsParser (int, char **, const Option *);
17231
 
  OptsParser (const string &, const Option *);
 
45618
  /** \brief Constructor of OptsParser
 
45619
   *  
 
45620
   *  \param argc Number of parameters to be analyzed
 
45621
   *  \param argv Parameters to be analyzed
 
45622
   *  \param opts Pointer to array of options which shall be
 
45623
   *              recognized by the options parser
 
45624
   *
 
45625
   */
 
45626
  OptsParser (int argc, char **argv, const Option *opts);
 
45627
  
 
45628
  /** \brief Constructor of OptsParser
 
45629
   *  
 
45630
   *  \param line Reference to string with parameters to analyse
 
45631
   *              The paramaters are extracted from the string by splitting it up 
 
45632
   *              into tokens at:
 
45633
   *               - space character
 
45634
   *               - tabs 
 
45635
   *               - newline
 
45636
   *               - carriage return
 
45637
   *  \param opts Pointer to array of options which shall be 
 
45638
   *              recognized by the options parser
 
45639
   */
 
45640
  OptsParser (const string &line, const Option *);
17232
45641
 
17233
 
  int getCurrentArgNum () const;
17234
 
  int getNextArgNum () const;
 
45642
  
 
45643
  /** Get next parameter without modification. 
 
45644
   * No option parsing is done
 
45645
   *
 
45646
   * \return OptsParser::NOOPTION or OptsParser::FINISH 
 
45647
   */
 
45648
  int getRawOption ();
 
45649
  
 
45650
  /** \brief Get next option
 
45651
   *
 
45652
   * This function processes the next parameter passed to the constructor 
 
45653
   * OptsParser::OptsParser(). 
 
45654
   * That is, search for options and eventually process
 
45655
   * option and option arguement. 
 
45656
   *
 
45657
   * \return Number of option recognized by the options parser or
 
45658
   *         OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
 
45659
   *         OptsParser::UNKNOWN or OptsParser::FINISH.
 
45660
   *
 
45661
   */
17235
45662
  int getOption ();
 
45663
  
 
45664
  /** \brief Get result of last processed parameter
 
45665
   *
 
45666
   *  The number returned by this function is identical to the number 
 
45667
   *  returned by the last call of OptsParser::getOption
 
45668
   *   
 
45669
   * \return Number of option recognized by the options parser or
 
45670
   *         OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
 
45671
   *         OptsParser::UNKNOWN or OptsParser::FINISH.
 
45672
   *
 
45673
   */
17236
45674
  int getResult () const;
17237
45675
  
 
45676
  /** \brief Get option argument of last processed parameter
 
45677
   *
 
45678
   *  This function returns the argument of the option processed during 
 
45679
   *  OptsParser::getOption. If the option does not provide any argument
 
45680
   *  the string will be empty.
 
45681
   *
 
45682
   *  If OptsParser::getOption or respectively OptsParser::getResult returns with 
 
45683
   *  OptsParser::NOOPTION this function (OptsParser::getArgument) returns the last processed parameter, 
 
45684
   *  which is no option, of course.
 
45685
   *
 
45686
   *  \return Argument of last processed parameter
 
45687
   */
17238
45688
  const string &getArgument () const;
 
45689
  
 
45690
  /** \brief Get option name of last processed parameter
 
45691
   *
 
45692
   *  If the last processed parameter did not contain an option the string 
 
45693
   *  returned by this function is empty.
 
45694
   *
 
45695
   *  \return Name of last processed parameter
 
45696
   *
 
45697
   */
17239
45698
  const string &getOptionName () const;
 
45699
  
 
45700
  /** \brief Get position of current argument
 
45701
   *
 
45702
   *  \return Position of currently processed parameter previously passed to OptsParser::OptsParser()
 
45703
   *
 
45704
   */
 
45705
  int getCurrentArgNum () const;
 
45706
  
 
45707
  /** \brief Get position of next argument
 
45708
   *
 
45709
   *  \return Position of next parameter which will be processed by the %Options %Parser
 
45710
   *
 
45711
   */
 
45712
  int getNextArgNum () const;
17240
45713
 
17241
 
  bool revokeArgument();
17242
 
   
17243
45714
private:
17244
 
  int  getShortOption (const string &);
17245
 
  int  getLongOption  (const string &);
17246
 
  bool processOption  (const string &, unsigned int,ArgType argtype);
 
45715
  /** Search for an option in m_argv at position m_curarg
 
45716
   *
 
45717
   *  \param arg Currently processed parameter 
 
45718
   */
 
45719
  const Option*  findOption(const string &arg, bool isLong);
 
45720
  
 
45721
  /** Process an option found by OptsParser::findOption(). 
 
45722
   */
 
45723
  bool processOption  (const string &arg, const Option* curOpt, bool isLong);
17247
45724
};
17248
45725
 
17249
45726
 
17251
45728
 
17252
45729
#endif /* __OptsParser_h__ */
17253
45730
 
17254
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
 
45731
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
17255
45732
using namespace std;
17256
45733
 
17257
45734
namespace Puma {
17258
45735
 
17259
45736
 
17260
45737
 
17261
 
#line 17262 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
45738
#line 45739 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
17262
45739
} // closed Puma
 
45740
class CCExprResolve;
 
45741
class CExprResolve;
17263
45742
class WinIfExists;
17264
45743
class WinImportHandler;
17265
45744
class WinMacros;
17266
 
class CMatchSyntax;
17267
 
class ExtGnu;
 
45745
class WinAsm;
 
45746
class WinDeclSpecs;
 
45747
class WinMemberExplSpec;
 
45748
class WinTypeKeywords;
 
45749
class WinFriend;
17268
45750
class ExtAC;
17269
45751
class ExtACBuilderCoupling;
17270
45752
class ExtACSyntaxCoupling;
17271
45753
class ExtACTree;
17272
45754
class ExtACKeywords;
17273
 
class WinAsm;
17274
 
class WinDeclSpecs;
17275
 
class WinMemberExplSpec;
17276
 
class WinTypeKeywords;
 
45755
class ExtGnu;
17277
45756
class PragmaOnceUnitState;
17278
45757
class PragmaOnce;
17279
 
class CCExprResolve;
17280
 
class CExprResolve;
 
45758
class CMatchSyntax;
17281
45759
namespace Puma {
17282
45760
 
17283
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
 
45761
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
17284
45762
class Config {
17285
 
#line 17286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
45763
#line 45764 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
45764
  friend class ::CCExprResolve;
 
45765
  friend class ::CExprResolve;
17286
45766
  friend class ::WinIfExists;
17287
45767
  friend class ::WinImportHandler;
17288
45768
  friend class ::WinMacros;
17289
 
  friend class ::CMatchSyntax;
17290
 
  friend class ::ExtGnu;
 
45769
  friend class ::WinAsm;
 
45770
  friend class ::WinDeclSpecs;
 
45771
  friend class ::WinMemberExplSpec;
 
45772
  friend class ::WinTypeKeywords;
 
45773
  friend class ::WinFriend;
17291
45774
  friend class ::ExtAC;
17292
45775
  friend class ::ExtACBuilderCoupling;
17293
45776
  friend class ::ExtACSyntaxCoupling;
17294
45777
  friend class ::ExtACTree;
17295
45778
  friend class ::ExtACKeywords;
17296
 
  friend class ::WinAsm;
17297
 
  friend class ::WinDeclSpecs;
17298
 
  friend class ::WinMemberExplSpec;
17299
 
  friend class ::WinTypeKeywords;
 
45779
  friend class ::ExtGnu;
17300
45780
  friend class ::PragmaOnceUnitState;
17301
45781
  friend class ::PragmaOnce;
17302
 
  friend class ::CCExprResolve;
17303
 
  friend class ::CExprResolve;
 
45782
  friend class ::CMatchSyntax;
17304
45783
 
17305
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
 
45784
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
17306
45785
 
17307
45786
  Flags _flags;
17308
45787
  ErrorStream &_err;
17362
45841
private:
17363
45842
  bool Valid (const char *, const char * = (const char *)0) const;
17364
45843
 
17365
 
  bool Process (OptsParser&);
 
45844
  bool Process (OptsParser&, bool unescape = false);
17366
45845
  bool ProcessAssert (const string&);
17367
45846
  bool ProcessDefine (const string&);
17368
45847
  bool ProcessLockMacro (const string&);
17371
45850
  bool ProcessArgument (const string&,const string&);
17372
45851
  bool ProcessPathArgument (const string&,const string&);
17373
45852
 
 
45853
  string Unescape(const string&);
17374
45854
};
17375
45855
 
17376
45856
inline Config::Config (ErrorStream &e) : _err (e)
17412
45892
 
17413
45893
#endif /* __Config_h__ */
17414
45894
 
17415
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45895
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17416
45896
 
17417
 
#line 17418 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
45897
#line 45898 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
17418
45898
 
17419
45899
#ifndef __ac_fwd_ExtACTree__
17420
45900
#define __ac_fwd_ExtACTree__
17421
45901
class ExtACTree;
17422
45902
namespace AC {
17423
45903
  template <class JoinPoint>
17424
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
45904
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
17425
45905
  template <class JoinPoint>
17426
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
45906
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
17427
45907
}
17428
45908
#endif
17429
45909
 
17430
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
17431
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
45910
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
45911
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
17432
45912
#endif
17433
45913
 
17434
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17435
 
 
17436
 
#line 17437 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
17437
 
 
17438
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17439
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
17440
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
17441
 
 
17442
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45914
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17443
45915
// This file is part of PUMA.
17444
45916
// Copyright (C) 1999-2003  The PUMA developer team.
17445
45917
//                                                                
17484
45956
class     CT_DefaultStmt;
17485
45957
class     CT_TryStmt;
17486
45958
class   CT_Expression;
 
45959
class     CT_Call;
 
45960
class       CT_CallExpr;
 
45961
class       CT_ImplicitCall;
17487
45962
class     CT_ThrowExpr;
17488
45963
class     CT_NewExpr;
17489
45964
class     CT_DeleteExpr;
17504
45979
class     CT_IfThenExpr;
17505
45980
class     CT_CmpdLiteral;
17506
45981
class     CT_IndexExpr;
17507
 
class     CT_CallExpr;
17508
45982
class     CT_CastExpr;
17509
45983
class     CT_StaticCast;
17510
45984
class       CT_ConstCast;
17551
46025
class     CT_NamespaceDef;
17552
46026
class     CT_NamespaceAliasDef;
17553
46027
class     CT_UsingDirective;
 
46028
class     CT_Condition;
17554
46029
class   CT_List;
17555
46030
class     CT_CmpdStmt;
17556
46031
class     CT_DeclSpecSeq;
17581
46056
class     CT_TemplateArgList;
17582
46057
class   CT_Token;
17583
46058
class   CT_Error;
17584
 
class   CT_Condition;
17585
46059
class   CT_BaseSpec;
17586
46060
class   CT_AccessSpec;
17587
46061
class   CT_ArrayDelimiter;
17621
46095
/*                                                                           */
17622
46096
/*****************************************************************************/
17623
46097
 
17624
 
 
17625
 
#line 17626 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46098
/** \file
 
46099
 *  C/C++ syntax tree classes.
 
46100
 *  \see Puma::CTree */
 
46101
 
 
46102
/** \class CTree CTree.h Puma/CTree.h
 
46103
 *  Base class for all C/C++ syntax tree classes. */
 
46104
 
 
46105
#line 46106 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
17626
46106
} // closed Puma
 
46107
class CCExprResolve;
 
46108
class CExprResolve;
17627
46109
class WinIfExists;
17628
46110
class WinImportHandler;
17629
46111
class WinMacros;
17630
 
class CMatchSyntax;
17631
 
class ExtGnu;
 
46112
class WinAsm;
 
46113
class WinDeclSpecs;
 
46114
class WinMemberExplSpec;
 
46115
class WinTypeKeywords;
 
46116
class WinFriend;
17632
46117
class ExtAC;
17633
46118
class ExtACBuilderCoupling;
17634
46119
class ExtACSyntaxCoupling;
17635
46120
class ExtACTree;
17636
46121
class ExtACKeywords;
17637
 
class WinAsm;
17638
 
class WinDeclSpecs;
17639
 
class WinMemberExplSpec;
17640
 
class WinTypeKeywords;
 
46122
class ExtGnu;
17641
46123
class PragmaOnceUnitState;
17642
46124
class PragmaOnce;
17643
 
class CCExprResolve;
17644
 
class CExprResolve;
17645
 
namespace Puma {
17646
 
 
17647
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46125
class CMatchSyntax;
 
46126
namespace Puma {
 
46127
 
 
46128
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46129
 
 
46130
#line 46131 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46131
} // closed Puma
 
46132
 
 
46133
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46134
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46135
#include "CCExprResolveH.ah"
 
46136
#endif
 
46137
namespace Puma {
 
46138
 
 
46139
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46140
 
 
46141
#line 46142 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46142
} // closed Puma
 
46143
 
 
46144
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46145
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46146
#include "CExprResolveH.ah"
 
46147
#endif
 
46148
namespace Puma {
 
46149
 
 
46150
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17648
46151
class CTree {
17649
 
#line 17650 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46152
#line 46153 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46153
  friend class ::CCExprResolve;
 
46154
  friend class ::CExprResolve;
17650
46155
  friend class ::WinIfExists;
17651
46156
  friend class ::WinImportHandler;
17652
46157
  friend class ::WinMacros;
17653
 
  friend class ::CMatchSyntax;
17654
 
  friend class ::ExtGnu;
 
46158
  friend class ::WinAsm;
 
46159
  friend class ::WinDeclSpecs;
 
46160
  friend class ::WinMemberExplSpec;
 
46161
  friend class ::WinTypeKeywords;
 
46162
  friend class ::WinFriend;
17655
46163
  friend class ::ExtAC;
17656
46164
  friend class ::ExtACBuilderCoupling;
17657
46165
  friend class ::ExtACSyntaxCoupling;
17658
46166
  friend class ::ExtACTree;
17659
46167
  friend class ::ExtACKeywords;
17660
 
  friend class ::WinAsm;
17661
 
  friend class ::WinDeclSpecs;
17662
 
  friend class ::WinMemberExplSpec;
17663
 
  friend class ::WinTypeKeywords;
 
46168
  friend class ::ExtGnu;
17664
46169
  friend class ::PragmaOnceUnitState;
17665
46170
  friend class ::PragmaOnce;
17666
 
  friend class ::CCExprResolve;
17667
 
  friend class ::CExprResolve;
17668
 
 
17669
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46171
  friend class ::CMatchSyntax;
 
46172
 
 
46173
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46174
 
 
46175
  CTree * _parent;
17670
46176
 
17671
46177
public:
17672
46178
  /*DEBUG*/static int alloc;
17673
46179
  /*DEBUG*/static int release;
17674
46180
 
17675
46181
protected:
17676
 
  CTree *Son (CTree * const *, int, int) const;
17677
 
  int Sons (CTree * const *, int) const;
17678
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
 
46182
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
46183
   *  \param sons The sons array.
 
46184
   *  \param len Length of the sons array.
 
46185
   *  \param n Index of the son.
 
46186
   *  \return The n-th son or NULL. */
 
46187
  CTree *Son (CTree * const *sons, int len, int n) const;
 
46188
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
46189
   *  \param sons The sons array.
 
46190
   *  \param len Length of the sons array. */
 
46191
  int Sons (CTree * const *sons, int len) const;
 
46192
  /** Replace a son.
 
46193
   *  \param sons The sons array.
 
46194
   *  \param len Length of the sons array.
 
46195
   *  \param old_son The son to replace.
 
46196
   *  \param new_son The new son. */
 
46197
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
46198
  /** Replace a son if it equals the given son.
 
46199
   *  \param son The actual son.
 
46200
   *  \param old_son The son to replace, must match the actual son.
 
46201
   *  \param new_son The new son, overwrites the actual son. */
 
46202
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
46203
  /** Add a new son.
 
46204
   *  \param son The actual son.
 
46205
   *  \param new_son The new son, overwrites the actual son. */
 
46206
  void AddSon (CTree *&son, CTree *new_son);
 
46207
  /** Set the parent tree node.
 
46208
   *  \param parent The new parent tree node. */
 
46209
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
46210
  /** Set the parent tree node of the given tree node.
 
46211
   *  \param node The tree node.
 
46212
   *  \param parent The new parent. */
 
46213
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
17679
46214
  
17680
46215
protected:
17681
 
  CTree () { /*DEBUG*/alloc++; }
 
46216
  /** Default constructor. */
 
46217
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
17682
46218
 
17683
46219
public:
 
46220
  /** Destructor. */
17684
46221
  virtual ~CTree () { /*DEBUG*/release++; }
 
46222
  /** Get the number of sons. */
17685
46223
  virtual int Sons () const = 0;
 
46224
  /** Get the n-th son.
 
46225
   *  \param n The index of the son.
 
46226
   *  \return The n-th son or NULL. */
17686
46227
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
46228
  /** Get the node name (node identifier). */
17687
46229
  virtual const char *NodeName () const = 0;
 
46230
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
46231
   *  \return The token or NULL. */
17688
46232
  virtual Token *token () const;
 
46233
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
46234
   *  \return The token or NULL. */
17689
46235
  virtual Token *end_token () const;
 
46236
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
46237
   *  \return The token node or NULL. */
17690
46238
  virtual CT_Token *token_node () const;
 
46239
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
46240
   *  \return The token node or NULL. */
17691
46241
  virtual CT_Token *end_token_node () const;
17692
 
  virtual void ReplaceSon (CTree *, CTree *) {}
 
46242
  /** Replace a son.
 
46243
   *  \param old_son The son to replace.
 
46244
   *  \param new_son The son with which to replace. */
 
46245
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
46246
  /** Get the parent node.
 
46247
   *  \return The parent node or NULL. */
 
46248
  virtual CTree *Parent () const { return (CTree*)_parent; }
17693
46249
 
17694
46250
public: // semantic information
 
46251
  /** Get the semantic type of the node.
 
46252
   *  \return The type object or NULL. */
17695
46253
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
46254
  /** Get the calculated value of the expression.
 
46255
   *  \return The value object or NULL. */
17696
46256
  virtual CExprValue *Value () const { return (CExprValue*)0; }
17697
46257
  
 
46258
  /** Get the semantic scope of the node.
 
46259
   *  \return The scope object or NULL. */
 
46260
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
46261
  /** Get the semantic value of the node.
 
46262
   *  \return The value object or NULL. */
17698
46263
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
46264
  /** Get the semantic object of the node.
 
46265
   *  \return The semantic object or NULL. */
17699
46266
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
17700
46267
  
17701
46268
public: // node classification function
 
46269
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
46270
   *  \return The CT_SimpleName node or NULL. */
17702
46271
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
46272
  /** Get a pointer to CT_String if the current node represents a string.
 
46273
   *  \return The CT_String node or NULL. */
 
46274
  virtual CT_String *IsString () { return 0; }
 
46275
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
46276
   *  \return The CT_Declarator pointer or NULL. */
17703
46277
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
46278
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
46279
   *  \return The CT_Statement pointer or NULL. */
 
46280
  virtual CT_Statement *IsStatement () { return 0; }
 
46281
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
46282
   *  \return The CT_Expression pointer or NULL. */
 
46283
  virtual CT_Expression *IsExpression () { return 0; }
 
46284
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
46285
   *  \return The CT_Decl pointer or NULL. */
 
46286
  virtual CT_Decl *IsDeclaration () { return 0; }
 
46287
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
46288
   *  \return The CT_Call pointer or NULL. */
 
46289
  virtual CT_Call *IsCall () { return 0; }
17704
46290
   private:
17705
46291
  typedef CTree CCExprResolveCTree;
17706
46292
 
17707
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
46293
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
17708
46294
 public :
17709
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
46295
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
17710
46296
  typedef CTree CExprResolveCTree;
17711
46297
 
17712
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
46298
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
17713
46299
 public :
17714
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
17715
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46300
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
46301
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17716
46302
};
17717
46303
 
 
46304
/** \class CT_Error CTree.h Puma/CTree.h
 
46305
 *  Error tree node that is inserted into the tree for syntactic constructs
 
46306
 *  that could not be parsed. */
17718
46307
 
17719
 
#line 17720 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46308
#line 46309 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
17720
46309
} // closed Puma
 
46310
class CCExprResolve;
 
46311
class CExprResolve;
17721
46312
class WinIfExists;
17722
46313
class WinImportHandler;
17723
46314
class WinMacros;
17724
 
class CMatchSyntax;
17725
 
class ExtGnu;
 
46315
class WinAsm;
 
46316
class WinDeclSpecs;
 
46317
class WinMemberExplSpec;
 
46318
class WinTypeKeywords;
 
46319
class WinFriend;
17726
46320
class ExtAC;
17727
46321
class ExtACBuilderCoupling;
17728
46322
class ExtACSyntaxCoupling;
17729
46323
class ExtACTree;
17730
46324
class ExtACKeywords;
17731
 
class WinAsm;
17732
 
class WinDeclSpecs;
17733
 
class WinMemberExplSpec;
17734
 
class WinTypeKeywords;
 
46325
class ExtGnu;
17735
46326
class PragmaOnceUnitState;
17736
46327
class PragmaOnce;
17737
 
class CCExprResolve;
17738
 
class CExprResolve;
 
46328
class CMatchSyntax;
17739
46329
namespace Puma {
17740
46330
 
17741
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46331
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17742
46332
class CT_Error : public CTree {
17743
 
#line 17744 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46333
#line 46334 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46334
  friend class ::CCExprResolve;
 
46335
  friend class ::CExprResolve;
17744
46336
  friend class ::WinIfExists;
17745
46337
  friend class ::WinImportHandler;
17746
46338
  friend class ::WinMacros;
17747
 
  friend class ::CMatchSyntax;
17748
 
  friend class ::ExtGnu;
 
46339
  friend class ::WinAsm;
 
46340
  friend class ::WinDeclSpecs;
 
46341
  friend class ::WinMemberExplSpec;
 
46342
  friend class ::WinTypeKeywords;
 
46343
  friend class ::WinFriend;
17749
46344
  friend class ::ExtAC;
17750
46345
  friend class ::ExtACBuilderCoupling;
17751
46346
  friend class ::ExtACSyntaxCoupling;
17752
46347
  friend class ::ExtACTree;
17753
46348
  friend class ::ExtACKeywords;
17754
 
  friend class ::WinAsm;
17755
 
  friend class ::WinDeclSpecs;
17756
 
  friend class ::WinMemberExplSpec;
17757
 
  friend class ::WinTypeKeywords;
 
46349
  friend class ::ExtGnu;
17758
46350
  friend class ::PragmaOnceUnitState;
17759
46351
  friend class ::PragmaOnce;
17760
 
  friend class ::CCExprResolve;
17761
 
  friend class ::CExprResolve;
 
46352
  friend class ::CMatchSyntax;
17762
46353
 
17763
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46354
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17764
46355
 
17765
46356
public:
 
46357
  /** Get the identifier for this node type. Can be compared with NodeName(). */
17766
46358
  static const char *NodeId ();
 
46359
  /** Get the name of the node. Can be compared with NodeId(). */
17767
46360
  const char *NodeName () const { return NodeId (); }
 
46361
  /** Get the number of sons. */
17768
46362
  int Sons () const { return 0; }
17769
46363
};
17770
46364
 
 
46365
/** \class CT_Token CTree.h Puma/CTree.h
 
46366
 *  Tree node representing a single token in the source code. */
17771
46367
 
17772
 
#line 17773 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46368
#line 46369 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
17773
46369
} // closed Puma
 
46370
class CCExprResolve;
 
46371
class CExprResolve;
17774
46372
class WinIfExists;
17775
46373
class WinImportHandler;
17776
46374
class WinMacros;
17777
 
class CMatchSyntax;
17778
 
class ExtGnu;
 
46375
class WinAsm;
 
46376
class WinDeclSpecs;
 
46377
class WinMemberExplSpec;
 
46378
class WinTypeKeywords;
 
46379
class WinFriend;
17779
46380
class ExtAC;
17780
46381
class ExtACBuilderCoupling;
17781
46382
class ExtACSyntaxCoupling;
17782
46383
class ExtACTree;
17783
46384
class ExtACKeywords;
17784
 
class WinAsm;
17785
 
class WinDeclSpecs;
17786
 
class WinMemberExplSpec;
17787
 
class WinTypeKeywords;
 
46385
class ExtGnu;
17788
46386
class PragmaOnceUnitState;
17789
46387
class PragmaOnce;
17790
 
class CCExprResolve;
17791
 
class CExprResolve;
 
46388
class CMatchSyntax;
17792
46389
namespace Puma {
17793
46390
 
17794
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46391
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17795
46392
class CT_Token : public CTree {
17796
 
#line 17797 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46393
#line 46394 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46394
  friend class ::CCExprResolve;
 
46395
  friend class ::CExprResolve;
17797
46396
  friend class ::WinIfExists;
17798
46397
  friend class ::WinImportHandler;
17799
46398
  friend class ::WinMacros;
17800
 
  friend class ::CMatchSyntax;
17801
 
  friend class ::ExtGnu;
 
46399
  friend class ::WinAsm;
 
46400
  friend class ::WinDeclSpecs;
 
46401
  friend class ::WinMemberExplSpec;
 
46402
  friend class ::WinTypeKeywords;
 
46403
  friend class ::WinFriend;
17802
46404
  friend class ::ExtAC;
17803
46405
  friend class ::ExtACBuilderCoupling;
17804
46406
  friend class ::ExtACSyntaxCoupling;
17805
46407
  friend class ::ExtACTree;
17806
46408
  friend class ::ExtACKeywords;
17807
 
  friend class ::WinAsm;
17808
 
  friend class ::WinDeclSpecs;
17809
 
  friend class ::WinMemberExplSpec;
17810
 
  friend class ::WinTypeKeywords;
 
46409
  friend class ::ExtGnu;
17811
46410
  friend class ::PragmaOnceUnitState;
17812
46411
  friend class ::PragmaOnce;
17813
 
  friend class ::CCExprResolve;
17814
 
  friend class ::CExprResolve;
 
46412
  friend class ::CMatchSyntax;
17815
46413
 
17816
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46414
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17817
46415
 
17818
46416
  Token *_token;
17819
46417
  unsigned long int _number;
17820
46418
  
17821
46419
public:
17822
 
  CT_Token (Token *t, unsigned long int n = 0) : 
17823
 
    _token (t), _number (n) {}
 
46420
  /** Constructor. 
 
46421
   *  \param token The represented token.
 
46422
   *  \param number The token number (a consecutive number). */
 
46423
  CT_Token (Token *token, unsigned long int number = 0) : 
 
46424
    _token (token), _number (number) {}
 
46425
  /** Get the identifier for this node type. Can be compared with NodeName(). */
17824
46426
  static const char *NodeId ();
 
46427
  /** Get the name of the node. Can be compared with NodeId(). */
17825
46428
  const char *NodeName () const { return NodeId (); }
 
46429
  /** Get the number of sons. */
17826
46430
  int Sons () const { return 0; }
 
46431
  /** Get the represented token. */
17827
46432
  Token *token () const { return _token; }
 
46433
  /** Get the represented token. */
17828
46434
  Token *end_token () const { return _token; }
 
46435
  /** Get this. */
17829
46436
  CT_Token *token_node () const { return (CT_Token*)this; }
 
46437
  /** Get this. */
17830
46438
  CT_Token *end_token_node () const { return (CT_Token*)this; }
17831
 
  void Number (unsigned long int n) { _number = n; }
 
46439
  /** Set the token number. 
 
46440
   *  \param number The token number. */ 
 
46441
  void Number (unsigned long int number) { _number = number; }
 
46442
  /** Get the token number. Can be used to indentify this token. */
17832
46443
  unsigned long int Number () const { return _number; }
17833
 
  // special new / delete with reusing memory
 
46444
  
 
46445
public:
 
46446
  /** Own new operator reusing memory. */
17834
46447
  void *operator new (size_t);
17835
 
  void  operator delete (void *);
 
46448
  /** Own delete operator. */
 
46449
  void operator delete (void *);
17836
46450
};
17837
46451
 
17838
46452
/*****************************************************************************/
17841
46455
/*                                                                           */
17842
46456
/*****************************************************************************/
17843
46457
 
 
46458
/** \class CT_List CTree.h Puma/CTree.h
 
46459
 *  Base class for tree nodes representing lists. */
17844
46460
 
17845
 
#line 17846 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46461
#line 46462 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
17846
46462
} // closed Puma
 
46463
class CCExprResolve;
 
46464
class CExprResolve;
17847
46465
class WinIfExists;
17848
46466
class WinImportHandler;
17849
46467
class WinMacros;
17850
 
class CMatchSyntax;
17851
 
class ExtGnu;
 
46468
class WinAsm;
 
46469
class WinDeclSpecs;
 
46470
class WinMemberExplSpec;
 
46471
class WinTypeKeywords;
 
46472
class WinFriend;
17852
46473
class ExtAC;
17853
46474
class ExtACBuilderCoupling;
17854
46475
class ExtACSyntaxCoupling;
17855
46476
class ExtACTree;
17856
46477
class ExtACKeywords;
17857
 
class WinAsm;
17858
 
class WinDeclSpecs;
17859
 
class WinMemberExplSpec;
17860
 
class WinTypeKeywords;
 
46478
class ExtGnu;
17861
46479
class PragmaOnceUnitState;
17862
46480
class PragmaOnce;
17863
 
class CCExprResolve;
17864
 
class CExprResolve;
 
46481
class CMatchSyntax;
17865
46482
namespace Puma {
17866
46483
 
17867
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46484
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17868
46485
class CT_List : public CTree {
17869
 
#line 17870 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46486
#line 46487 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46487
  friend class ::CCExprResolve;
 
46488
  friend class ::CExprResolve;
17870
46489
  friend class ::WinIfExists;
17871
46490
  friend class ::WinImportHandler;
17872
46491
  friend class ::WinMacros;
17873
 
  friend class ::CMatchSyntax;
17874
 
  friend class ::ExtGnu;
 
46492
  friend class ::WinAsm;
 
46493
  friend class ::WinDeclSpecs;
 
46494
  friend class ::WinMemberExplSpec;
 
46495
  friend class ::WinTypeKeywords;
 
46496
  friend class ::WinFriend;
17875
46497
  friend class ::ExtAC;
17876
46498
  friend class ::ExtACBuilderCoupling;
17877
46499
  friend class ::ExtACSyntaxCoupling;
17878
46500
  friend class ::ExtACTree;
17879
46501
  friend class ::ExtACKeywords;
17880
 
  friend class ::WinAsm;
17881
 
  friend class ::WinDeclSpecs;
17882
 
  friend class ::WinMemberExplSpec;
17883
 
  friend class ::WinTypeKeywords;
 
46502
  friend class ::ExtGnu;
17884
46503
  friend class ::PragmaOnceUnitState;
17885
46504
  friend class ::PragmaOnce;
17886
 
  friend class ::CCExprResolve;
17887
 
  friend class ::CExprResolve;
 
46505
  friend class ::CMatchSyntax;
17888
46506
 
17889
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46507
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17890
46508
 
17891
46509
  Array<CTree*> _sons;
17892
46510
  int _properties;
17893
46511
 
17894
46512
protected:
 
46513
  /** Constructor.
 
46514
   *  \param size The initial list size.
 
46515
   *  \param incr The initial increment count. 
 
46516
   *  \param props The list properties (bit array). */
17895
46517
  CT_List(int size = 5, int incr = 5, int props = 0) : 
17896
46518
    _sons (size, incr), _properties (props) {}
17897
46519
 
17898
46520
public:
 
46521
  /** List properties. */
17899
46522
  enum {
17900
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
17901
 
    CLOSE = 2,
17902
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
17903
 
    SEPARATORS = 4,   // the list has separators like ','
17904
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
17905
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
17906
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
17907
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
 
46523
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
46524
    CLOSE = 2,        /** List has an end token */
 
46525
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
46526
    SEPARATORS = 4,   /** List has separators, like ',' */
 
46527
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
46528
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
46529
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
46530
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
17908
46531
  };
17909
46532
 
 
46533
  /** Get the number of list entries. */
17910
46534
  int Entries () const;
17911
 
  CTree *Entry (int no) const;
 
46535
  /** Get the n-th list entry.
 
46536
   *  \param n The index of the entry. 
 
46537
   *  \return The list entry or NULL. */
 
46538
  CTree *Entry (int n) const;
 
46539
  /** Get the number of sons. */
17912
46540
  int Sons () const { return _sons.length (); }
 
46541
  /** Get the n-th son.
 
46542
   *  \param n The index of the son. 
 
46543
   *  \return The n-th son or NULL. */
17913
46544
  CTree *Son (int n) const { return _sons.lookup (n); }
 
46545
  /** Get the list properties. */
17914
46546
  int GetProperties () const { return _properties; }
 
46547
  /** Add a list property.
 
46548
   *  \param p The property to add. */
17915
46549
  void AddProperties (int p) { _properties |= p; }
17916
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
17917
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
17918
 
  void InsertSon (CTree *, CTree *);  // before given son
17919
 
  void ReplaceSon (CTree *, CTree *);
17920
 
  void RemoveSon (CTree *);
 
46550
  /** Add a son.
 
46551
   *  \param s The son to add. */
 
46552
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
46553
  /** Prepend a son.
 
46554
   *  \param s The son to prepend. */
 
46555
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
46556
  /** Insert a son before another son.
 
46557
   *  \param before The son to insert the new son before.
 
46558
   *  \param son The son to insert. */
 
46559
  void InsertSon (CTree *before, CTree *son); 
 
46560
  /** Replace a son.
 
46561
   *  \param old_son The son to replace.
 
46562
   *  \param new_son The new son. */
 
46563
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
46564
  /** Remove a son.
 
46565
   *  \param son The son to remove. */
 
46566
  void RemoveSon (CTree *son);
 
46567
  /** Insert a son at the given index. 
 
46568
   *  \param idx The index at which to insert.
 
46569
   *  \param s The son to insert. */
17921
46570
  void InsertSon (int idx, CTree *s)
17922
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
 
46571
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
46572
  /** Replace the son at the given index.
 
46573
   *  \param idx The index of the son to replace.
 
46574
   *  \param s The new son. */
17923
46575
  void ReplaceSon (int idx, CTree *s) 
17924
 
   { if (idx < Sons ()) _sons[idx] = s; }
 
46576
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
46577
  /** Remove the son at the given index. 
 
46578
   *  \param idx The index of the son to remove. */
17925
46579
  void RemoveSon (int idx) 
17926
 
   { if (idx < Sons ()) _sons.remove (idx); }
 
46580
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
17927
46581
};
17928
46582
 
 
46583
/** \class CT_ExprList CTree.h Puma/CTree.h
 
46584
 *  Tree node representing an expression list. */
17929
46585
 
17930
 
#line 17931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46586
#line 46587 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
17931
46587
} // closed Puma
 
46588
class CCExprResolve;
 
46589
class CExprResolve;
17932
46590
class WinIfExists;
17933
46591
class WinImportHandler;
17934
46592
class WinMacros;
17935
 
class CMatchSyntax;
17936
 
class ExtGnu;
 
46593
class WinAsm;
 
46594
class WinDeclSpecs;
 
46595
class WinMemberExplSpec;
 
46596
class WinTypeKeywords;
 
46597
class WinFriend;
17937
46598
class ExtAC;
17938
46599
class ExtACBuilderCoupling;
17939
46600
class ExtACSyntaxCoupling;
17940
46601
class ExtACTree;
17941
46602
class ExtACKeywords;
17942
 
class WinAsm;
17943
 
class WinDeclSpecs;
17944
 
class WinMemberExplSpec;
17945
 
class WinTypeKeywords;
 
46603
class ExtGnu;
17946
46604
class PragmaOnceUnitState;
17947
46605
class PragmaOnce;
17948
 
class CCExprResolve;
17949
 
class CExprResolve;
 
46606
class CMatchSyntax;
17950
46607
namespace Puma {
17951
46608
 
17952
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46609
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17953
46610
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
17954
 
#line 17955 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46611
#line 46612 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46612
  friend class ::CCExprResolve;
 
46613
  friend class ::CExprResolve;
17955
46614
  friend class ::WinIfExists;
17956
46615
  friend class ::WinImportHandler;
17957
46616
  friend class ::WinMacros;
17958
 
  friend class ::CMatchSyntax;
17959
 
  friend class ::ExtGnu;
 
46617
  friend class ::WinAsm;
 
46618
  friend class ::WinDeclSpecs;
 
46619
  friend class ::WinMemberExplSpec;
 
46620
  friend class ::WinTypeKeywords;
 
46621
  friend class ::WinFriend;
17960
46622
  friend class ::ExtAC;
17961
46623
  friend class ::ExtACBuilderCoupling;
17962
46624
  friend class ::ExtACSyntaxCoupling;
17963
46625
  friend class ::ExtACTree;
17964
46626
  friend class ::ExtACKeywords;
17965
 
  friend class ::WinAsm;
17966
 
  friend class ::WinDeclSpecs;
17967
 
  friend class ::WinMemberExplSpec;
17968
 
  friend class ::WinTypeKeywords;
 
46627
  friend class ::ExtGnu;
17969
46628
  friend class ::PragmaOnceUnitState;
17970
46629
  friend class ::PragmaOnce;
17971
 
  friend class ::CCExprResolve;
17972
 
  friend class ::CExprResolve;
 
46630
  friend class ::CMatchSyntax;
17973
46631
 
17974
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46632
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
17975
46633
 
17976
46634
public:
 
46635
  /** Constructor. */
17977
46636
  CT_ExprList () { AddProperties (SEPARATORS); }
 
46637
  /** Get the identifier for this node type. Can be compared with NodeName(). */
17978
46638
  static const char *NodeId ();
 
46639
  /** Get the name of the node. Can be compared with NodeId(). */
17979
46640
  const char *NodeName () const { return NodeId (); }
17980
46641
 
 
46642
  /** Get the type of the last expression in the expression list.
 
46643
   *  \return The type or NULL. */
17981
46644
  CTypeInfo *Type () const { return type; }
 
46645
  /** Get the value of the last expression in the expression list.
 
46646
   *  \return The value of NULL. */
17982
46647
  CExprValue *Value () const { return value; }
 
46648
  /** Get the semantic value of the node. */
17983
46649
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
46650
  /** Get the semantic object of the node. */
17984
46651
  CSemObject *SemObject () const { return (CSemObject*)this; }
17985
46652
};
17986
46653
 
 
46654
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
46655
 *  Tree node representing a list of declarators. */
17987
46656
 
17988
 
#line 17989 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46657
#line 46658 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
17989
46658
} // closed Puma
 
46659
class CCExprResolve;
 
46660
class CExprResolve;
17990
46661
class WinIfExists;
17991
46662
class WinImportHandler;
17992
46663
class WinMacros;
17993
 
class CMatchSyntax;
17994
 
class ExtGnu;
 
46664
class WinAsm;
 
46665
class WinDeclSpecs;
 
46666
class WinMemberExplSpec;
 
46667
class WinTypeKeywords;
 
46668
class WinFriend;
17995
46669
class ExtAC;
17996
46670
class ExtACBuilderCoupling;
17997
46671
class ExtACSyntaxCoupling;
17998
46672
class ExtACTree;
17999
46673
class ExtACKeywords;
18000
 
class WinAsm;
18001
 
class WinDeclSpecs;
18002
 
class WinMemberExplSpec;
18003
 
class WinTypeKeywords;
 
46674
class ExtGnu;
18004
46675
class PragmaOnceUnitState;
18005
46676
class PragmaOnce;
18006
 
class CCExprResolve;
18007
 
class CExprResolve;
 
46677
class CMatchSyntax;
18008
46678
namespace Puma {
18009
46679
 
18010
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46680
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18011
46681
class CT_DeclaratorList : public CT_List {
18012
 
#line 18013 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46682
#line 46683 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46683
  friend class ::CCExprResolve;
 
46684
  friend class ::CExprResolve;
18013
46685
  friend class ::WinIfExists;
18014
46686
  friend class ::WinImportHandler;
18015
46687
  friend class ::WinMacros;
18016
 
  friend class ::CMatchSyntax;
18017
 
  friend class ::ExtGnu;
 
46688
  friend class ::WinAsm;
 
46689
  friend class ::WinDeclSpecs;
 
46690
  friend class ::WinMemberExplSpec;
 
46691
  friend class ::WinTypeKeywords;
 
46692
  friend class ::WinFriend;
18018
46693
  friend class ::ExtAC;
18019
46694
  friend class ::ExtACBuilderCoupling;
18020
46695
  friend class ::ExtACSyntaxCoupling;
18021
46696
  friend class ::ExtACTree;
18022
46697
  friend class ::ExtACKeywords;
18023
 
  friend class ::WinAsm;
18024
 
  friend class ::WinDeclSpecs;
18025
 
  friend class ::WinMemberExplSpec;
18026
 
  friend class ::WinTypeKeywords;
 
46698
  friend class ::ExtGnu;
18027
46699
  friend class ::PragmaOnceUnitState;
18028
46700
  friend class ::PragmaOnce;
18029
 
  friend class ::CCExprResolve;
18030
 
  friend class ::CExprResolve;
 
46701
  friend class ::CMatchSyntax;
18031
46702
 
18032
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46703
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18033
46704
 
18034
46705
public:
 
46706
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18035
46707
  static const char *NodeId ();
 
46708
  /** Get the name of the node. Can be compared with NodeId(). */
18036
46709
  const char *NodeName () const { return NodeId (); }
18037
46710
};
18038
46711
 
 
46712
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
46713
 *  Tree node representing a list of enumerator constants. */
18039
46714
 
18040
 
#line 18041 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46715
#line 46716 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
18041
46716
} // closed Puma
 
46717
class CCExprResolve;
 
46718
class CExprResolve;
18042
46719
class WinIfExists;
18043
46720
class WinImportHandler;
18044
46721
class WinMacros;
18045
 
class CMatchSyntax;
18046
 
class ExtGnu;
 
46722
class WinAsm;
 
46723
class WinDeclSpecs;
 
46724
class WinMemberExplSpec;
 
46725
class WinTypeKeywords;
 
46726
class WinFriend;
18047
46727
class ExtAC;
18048
46728
class ExtACBuilderCoupling;
18049
46729
class ExtACSyntaxCoupling;
18050
46730
class ExtACTree;
18051
46731
class ExtACKeywords;
18052
 
class WinAsm;
18053
 
class WinDeclSpecs;
18054
 
class WinMemberExplSpec;
18055
 
class WinTypeKeywords;
 
46732
class ExtGnu;
18056
46733
class PragmaOnceUnitState;
18057
46734
class PragmaOnce;
18058
 
class CCExprResolve;
18059
 
class CExprResolve;
 
46735
class CMatchSyntax;
18060
46736
namespace Puma {
18061
46737
 
18062
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46738
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18063
46739
class CT_EnumeratorList : public CT_List {
18064
 
#line 18065 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46740
#line 46741 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46741
  friend class ::CCExprResolve;
 
46742
  friend class ::CExprResolve;
18065
46743
  friend class ::WinIfExists;
18066
46744
  friend class ::WinImportHandler;
18067
46745
  friend class ::WinMacros;
18068
 
  friend class ::CMatchSyntax;
18069
 
  friend class ::ExtGnu;
 
46746
  friend class ::WinAsm;
 
46747
  friend class ::WinDeclSpecs;
 
46748
  friend class ::WinMemberExplSpec;
 
46749
  friend class ::WinTypeKeywords;
 
46750
  friend class ::WinFriend;
18070
46751
  friend class ::ExtAC;
18071
46752
  friend class ::ExtACBuilderCoupling;
18072
46753
  friend class ::ExtACSyntaxCoupling;
18073
46754
  friend class ::ExtACTree;
18074
46755
  friend class ::ExtACKeywords;
18075
 
  friend class ::WinAsm;
18076
 
  friend class ::WinDeclSpecs;
18077
 
  friend class ::WinMemberExplSpec;
18078
 
  friend class ::WinTypeKeywords;
 
46756
  friend class ::ExtGnu;
18079
46757
  friend class ::PragmaOnceUnitState;
18080
46758
  friend class ::PragmaOnce;
18081
 
  friend class ::CCExprResolve;
18082
 
  friend class ::CExprResolve;
 
46759
  friend class ::CMatchSyntax;
18083
46760
 
18084
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46761
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18085
46762
 
18086
46763
public:
 
46764
  /** Constructor. */
18087
46765
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
46766
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18088
46767
  static const char *NodeId ();
 
46768
  /** Get the name of the node. Can be compared with NodeId(). */
18089
46769
  const char *NodeName () const { return NodeId (); }
18090
46770
};
18091
46771
   
 
46772
/** \class CT_DeclList CTree.h Puma/CTree.h
 
46773
 *  Tree node representing a list of declarations. */
18092
46774
 
18093
 
#line 18094 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46775
#line 46776 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
18094
46776
} // closed Puma
 
46777
class CCExprResolve;
 
46778
class CExprResolve;
18095
46779
class WinIfExists;
18096
46780
class WinImportHandler;
18097
46781
class WinMacros;
18098
 
class CMatchSyntax;
18099
 
class ExtGnu;
 
46782
class WinAsm;
 
46783
class WinDeclSpecs;
 
46784
class WinMemberExplSpec;
 
46785
class WinTypeKeywords;
 
46786
class WinFriend;
18100
46787
class ExtAC;
18101
46788
class ExtACBuilderCoupling;
18102
46789
class ExtACSyntaxCoupling;
18103
46790
class ExtACTree;
18104
46791
class ExtACKeywords;
18105
 
class WinAsm;
18106
 
class WinDeclSpecs;
18107
 
class WinMemberExplSpec;
18108
 
class WinTypeKeywords;
 
46792
class ExtGnu;
18109
46793
class PragmaOnceUnitState;
18110
46794
class PragmaOnce;
18111
 
class CCExprResolve;
18112
 
class CExprResolve;
 
46795
class CMatchSyntax;
18113
46796
namespace Puma {
18114
46797
 
18115
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46798
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18116
46799
class CT_DeclList : public CT_List {
18117
 
#line 18118 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46800
#line 46801 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46801
  friend class ::CCExprResolve;
 
46802
  friend class ::CExprResolve;
18118
46803
  friend class ::WinIfExists;
18119
46804
  friend class ::WinImportHandler;
18120
46805
  friend class ::WinMacros;
18121
 
  friend class ::CMatchSyntax;
18122
 
  friend class ::ExtGnu;
 
46806
  friend class ::WinAsm;
 
46807
  friend class ::WinDeclSpecs;
 
46808
  friend class ::WinMemberExplSpec;
 
46809
  friend class ::WinTypeKeywords;
 
46810
  friend class ::WinFriend;
18123
46811
  friend class ::ExtAC;
18124
46812
  friend class ::ExtACBuilderCoupling;
18125
46813
  friend class ::ExtACSyntaxCoupling;
18126
46814
  friend class ::ExtACTree;
18127
46815
  friend class ::ExtACKeywords;
18128
 
  friend class ::WinAsm;
18129
 
  friend class ::WinDeclSpecs;
18130
 
  friend class ::WinMemberExplSpec;
18131
 
  friend class ::WinTypeKeywords;
 
46816
  friend class ::ExtGnu;
18132
46817
  friend class ::PragmaOnceUnitState;
18133
46818
  friend class ::PragmaOnce;
18134
 
  friend class ::CCExprResolve;
18135
 
  friend class ::CExprResolve;
 
46819
  friend class ::CMatchSyntax;
18136
46820
 
18137
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46821
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18138
46822
 
18139
46823
public:
 
46824
  /** Constructor. 
 
46825
   *  \param size The initial size of the list.
 
46826
   *  \param incr The initial increment count of the list. */
18140
46827
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
46828
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18141
46829
  static const char *NodeId ();
 
46830
  /** Get the name of the node. Can be compared with NodeId(). */
18142
46831
  const char *NodeName () const { return NodeId (); }
 
46832
  /** Set the linkage specifiers to each declaration in the list.
 
46833
   *  \param l The linkage specifiers node. */
18143
46834
  void Linkage (CT_LinkageSpec *l);
18144
46835
};
18145
46836
 
 
46837
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
46838
 *  Tree node representing a sequence of declaration specifiers. */
18146
46839
 
18147
 
#line 18148 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46840
#line 46841 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
18148
46841
} // closed Puma
 
46842
class CCExprResolve;
 
46843
class CExprResolve;
18149
46844
class WinIfExists;
18150
46845
class WinImportHandler;
18151
46846
class WinMacros;
18152
 
class CMatchSyntax;
18153
 
class ExtGnu;
 
46847
class WinAsm;
 
46848
class WinDeclSpecs;
 
46849
class WinMemberExplSpec;
 
46850
class WinTypeKeywords;
 
46851
class WinFriend;
18154
46852
class ExtAC;
18155
46853
class ExtACBuilderCoupling;
18156
46854
class ExtACSyntaxCoupling;
18157
46855
class ExtACTree;
18158
46856
class ExtACKeywords;
18159
 
class WinAsm;
18160
 
class WinDeclSpecs;
18161
 
class WinMemberExplSpec;
18162
 
class WinTypeKeywords;
 
46857
class ExtGnu;
18163
46858
class PragmaOnceUnitState;
18164
46859
class PragmaOnce;
18165
 
class CCExprResolve;
18166
 
class CExprResolve;
 
46860
class CMatchSyntax;
18167
46861
namespace Puma {
18168
46862
 
18169
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46863
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18170
46864
class CT_DeclSpecSeq : public CT_List {
18171
 
#line 18172 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46865
#line 46866 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46866
  friend class ::CCExprResolve;
 
46867
  friend class ::CExprResolve;
18172
46868
  friend class ::WinIfExists;
18173
46869
  friend class ::WinImportHandler;
18174
46870
  friend class ::WinMacros;
18175
 
  friend class ::CMatchSyntax;
18176
 
  friend class ::ExtGnu;
 
46871
  friend class ::WinAsm;
 
46872
  friend class ::WinDeclSpecs;
 
46873
  friend class ::WinMemberExplSpec;
 
46874
  friend class ::WinTypeKeywords;
 
46875
  friend class ::WinFriend;
18177
46876
  friend class ::ExtAC;
18178
46877
  friend class ::ExtACBuilderCoupling;
18179
46878
  friend class ::ExtACSyntaxCoupling;
18180
46879
  friend class ::ExtACTree;
18181
46880
  friend class ::ExtACKeywords;
18182
 
  friend class ::WinAsm;
18183
 
  friend class ::WinDeclSpecs;
18184
 
  friend class ::WinMemberExplSpec;
18185
 
  friend class ::WinTypeKeywords;
 
46881
  friend class ::ExtGnu;
18186
46882
  friend class ::PragmaOnceUnitState;
18187
46883
  friend class ::PragmaOnce;
18188
 
  friend class ::CCExprResolve;
18189
 
  friend class ::CExprResolve;
 
46884
  friend class ::CMatchSyntax;
18190
46885
 
18191
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46886
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18192
46887
 
18193
46888
public:
 
46889
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18194
46890
  static const char *NodeId ();
 
46891
  /** Get the name of the node. Can be compared with NodeId(). */
18195
46892
  const char *NodeName () const { return NodeId (); }
18196
46893
};
18197
46894
 
 
46895
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
46896
 *  Tree node representing a compound statement. */
18198
46897
 
18199
 
#line 18200 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46898
#line 46899 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
18200
46899
} // closed Puma
 
46900
class CCExprResolve;
 
46901
class CExprResolve;
18201
46902
class WinIfExists;
18202
46903
class WinImportHandler;
18203
46904
class WinMacros;
18204
 
class CMatchSyntax;
18205
 
class ExtGnu;
 
46905
class WinAsm;
 
46906
class WinDeclSpecs;
 
46907
class WinMemberExplSpec;
 
46908
class WinTypeKeywords;
 
46909
class WinFriend;
18206
46910
class ExtAC;
18207
46911
class ExtACBuilderCoupling;
18208
46912
class ExtACSyntaxCoupling;
18209
46913
class ExtACTree;
18210
46914
class ExtACKeywords;
18211
 
class WinAsm;
18212
 
class WinDeclSpecs;
18213
 
class WinMemberExplSpec;
18214
 
class WinTypeKeywords;
 
46915
class ExtGnu;
18215
46916
class PragmaOnceUnitState;
18216
46917
class PragmaOnce;
18217
 
class CCExprResolve;
18218
 
class CExprResolve;
 
46918
class CMatchSyntax;
18219
46919
namespace Puma {
18220
46920
 
18221
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46921
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18222
46922
class CT_CmpdStmt : public CT_List, public CSemScope {
18223
 
#line 18224 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46923
#line 46924 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46924
  friend class ::CCExprResolve;
 
46925
  friend class ::CExprResolve;
18224
46926
  friend class ::WinIfExists;
18225
46927
  friend class ::WinImportHandler;
18226
46928
  friend class ::WinMacros;
18227
 
  friend class ::CMatchSyntax;
18228
 
  friend class ::ExtGnu;
 
46929
  friend class ::WinAsm;
 
46930
  friend class ::WinDeclSpecs;
 
46931
  friend class ::WinMemberExplSpec;
 
46932
  friend class ::WinTypeKeywords;
 
46933
  friend class ::WinFriend;
18229
46934
  friend class ::ExtAC;
18230
46935
  friend class ::ExtACBuilderCoupling;
18231
46936
  friend class ::ExtACSyntaxCoupling;
18232
46937
  friend class ::ExtACTree;
18233
46938
  friend class ::ExtACKeywords;
18234
 
  friend class ::WinAsm;
18235
 
  friend class ::WinDeclSpecs;
18236
 
  friend class ::WinMemberExplSpec;
18237
 
  friend class ::WinTypeKeywords;
 
46939
  friend class ::ExtGnu;
18238
46940
  friend class ::PragmaOnceUnitState;
18239
46941
  friend class ::PragmaOnce;
18240
 
  friend class ::CCExprResolve;
18241
 
  friend class ::CExprResolve;
 
46942
  friend class ::CMatchSyntax;
18242
46943
 
18243
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46944
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18244
46945
 
18245
46946
public:
 
46947
  /* Constructor. */
18246
46948
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
46949
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18247
46950
  static const char *NodeId ();
 
46951
  /** Get the name of the node. Can be compared with NodeId(). */
18248
46952
  const char *NodeName () const { return NodeId (); }
 
46953
  /** Get the local scope of the compound statement. */
 
46954
  CSemScope *SemScope () const { return (CSemScope*)this; }
18249
46955
};
18250
46956
 
 
46957
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
46958
 *  Tree node representing an exception handler sequence. */
18251
46959
 
18252
 
#line 18253 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46960
#line 46961 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
18253
46961
} // closed Puma
 
46962
class CCExprResolve;
 
46963
class CExprResolve;
18254
46964
class WinIfExists;
18255
46965
class WinImportHandler;
18256
46966
class WinMacros;
18257
 
class CMatchSyntax;
18258
 
class ExtGnu;
 
46967
class WinAsm;
 
46968
class WinDeclSpecs;
 
46969
class WinMemberExplSpec;
 
46970
class WinTypeKeywords;
 
46971
class WinFriend;
18259
46972
class ExtAC;
18260
46973
class ExtACBuilderCoupling;
18261
46974
class ExtACSyntaxCoupling;
18262
46975
class ExtACTree;
18263
46976
class ExtACKeywords;
18264
 
class WinAsm;
18265
 
class WinDeclSpecs;
18266
 
class WinMemberExplSpec;
18267
 
class WinTypeKeywords;
 
46977
class ExtGnu;
18268
46978
class PragmaOnceUnitState;
18269
46979
class PragmaOnce;
18270
 
class CCExprResolve;
18271
 
class CExprResolve;
 
46980
class CMatchSyntax;
18272
46981
namespace Puma {
18273
46982
 
18274
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46983
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18275
46984
class CT_HandlerSeq : public CT_List {
18276
 
#line 18277 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46985
#line 46986 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
46986
  friend class ::CCExprResolve;
 
46987
  friend class ::CExprResolve;
18277
46988
  friend class ::WinIfExists;
18278
46989
  friend class ::WinImportHandler;
18279
46990
  friend class ::WinMacros;
18280
 
  friend class ::CMatchSyntax;
18281
 
  friend class ::ExtGnu;
 
46991
  friend class ::WinAsm;
 
46992
  friend class ::WinDeclSpecs;
 
46993
  friend class ::WinMemberExplSpec;
 
46994
  friend class ::WinTypeKeywords;
 
46995
  friend class ::WinFriend;
18282
46996
  friend class ::ExtAC;
18283
46997
  friend class ::ExtACBuilderCoupling;
18284
46998
  friend class ::ExtACSyntaxCoupling;
18285
46999
  friend class ::ExtACTree;
18286
47000
  friend class ::ExtACKeywords;
18287
 
  friend class ::WinAsm;
18288
 
  friend class ::WinDeclSpecs;
18289
 
  friend class ::WinMemberExplSpec;
18290
 
  friend class ::WinTypeKeywords;
 
47001
  friend class ::ExtGnu;
18291
47002
  friend class ::PragmaOnceUnitState;
18292
47003
  friend class ::PragmaOnce;
18293
 
  friend class ::CCExprResolve;
18294
 
  friend class ::CExprResolve;
 
47004
  friend class ::CMatchSyntax;
18295
47005
 
18296
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47006
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18297
47007
 
18298
47008
public:
 
47009
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18299
47010
  static const char *NodeId ();
 
47011
  /** Get the name of the node. Can be compared with NodeId(). */
18300
47012
  const char *NodeName () const { return NodeId (); }
18301
47013
};
18302
47014
 
 
47015
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
47016
 *  Tree node representing a template parameter list. */
18303
47017
 
18304
 
#line 18305 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47018
#line 47019 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
18305
47019
} // closed Puma
 
47020
class CCExprResolve;
 
47021
class CExprResolve;
18306
47022
class WinIfExists;
18307
47023
class WinImportHandler;
18308
47024
class WinMacros;
18309
 
class CMatchSyntax;
18310
 
class ExtGnu;
 
47025
class WinAsm;
 
47026
class WinDeclSpecs;
 
47027
class WinMemberExplSpec;
 
47028
class WinTypeKeywords;
 
47029
class WinFriend;
18311
47030
class ExtAC;
18312
47031
class ExtACBuilderCoupling;
18313
47032
class ExtACSyntaxCoupling;
18314
47033
class ExtACTree;
18315
47034
class ExtACKeywords;
18316
 
class WinAsm;
18317
 
class WinDeclSpecs;
18318
 
class WinMemberExplSpec;
18319
 
class WinTypeKeywords;
 
47035
class ExtGnu;
18320
47036
class PragmaOnceUnitState;
18321
47037
class PragmaOnce;
18322
 
class CCExprResolve;
18323
 
class CExprResolve;
 
47038
class CMatchSyntax;
18324
47039
namespace Puma {
18325
47040
 
18326
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47041
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18327
47042
class CT_TemplateParamList : public CT_List, public CSemScope {
18328
 
#line 18329 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47043
#line 47044 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47044
  friend class ::CCExprResolve;
 
47045
  friend class ::CExprResolve;
18329
47046
  friend class ::WinIfExists;
18330
47047
  friend class ::WinImportHandler;
18331
47048
  friend class ::WinMacros;
18332
 
  friend class ::CMatchSyntax;
18333
 
  friend class ::ExtGnu;
 
47049
  friend class ::WinAsm;
 
47050
  friend class ::WinDeclSpecs;
 
47051
  friend class ::WinMemberExplSpec;
 
47052
  friend class ::WinTypeKeywords;
 
47053
  friend class ::WinFriend;
18334
47054
  friend class ::ExtAC;
18335
47055
  friend class ::ExtACBuilderCoupling;
18336
47056
  friend class ::ExtACSyntaxCoupling;
18337
47057
  friend class ::ExtACTree;
18338
47058
  friend class ::ExtACKeywords;
18339
 
  friend class ::WinAsm;
18340
 
  friend class ::WinDeclSpecs;
18341
 
  friend class ::WinMemberExplSpec;
18342
 
  friend class ::WinTypeKeywords;
 
47059
  friend class ::ExtGnu;
18343
47060
  friend class ::PragmaOnceUnitState;
18344
47061
  friend class ::PragmaOnce;
18345
 
  friend class ::CCExprResolve;
18346
 
  friend class ::CExprResolve;
 
47062
  friend class ::CMatchSyntax;
18347
47063
 
18348
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47064
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18349
47065
 
18350
47066
public:
18351
47067
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
47068
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18352
47069
  static const char *NodeId ();
 
47070
  /** Get the name of the node. Can be compared with NodeId(). */
18353
47071
  const char *NodeName () const { return NodeId (); }
 
47072
  /** Get the scope of the template parameter list. */
 
47073
  CSemScope *SemScope () const { return (CSemScope*)this; }
18354
47074
};
18355
47075
 
 
47076
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
47077
 *  Tree node representing a template argument list. */
18356
47078
 
18357
 
#line 18358 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47079
#line 47080 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
18358
47080
} // closed Puma
 
47081
class CCExprResolve;
 
47082
class CExprResolve;
18359
47083
class WinIfExists;
18360
47084
class WinImportHandler;
18361
47085
class WinMacros;
18362
 
class CMatchSyntax;
18363
 
class ExtGnu;
 
47086
class WinAsm;
 
47087
class WinDeclSpecs;
 
47088
class WinMemberExplSpec;
 
47089
class WinTypeKeywords;
 
47090
class WinFriend;
18364
47091
class ExtAC;
18365
47092
class ExtACBuilderCoupling;
18366
47093
class ExtACSyntaxCoupling;
18367
47094
class ExtACTree;
18368
47095
class ExtACKeywords;
18369
 
class WinAsm;
18370
 
class WinDeclSpecs;
18371
 
class WinMemberExplSpec;
18372
 
class WinTypeKeywords;
 
47096
class ExtGnu;
18373
47097
class PragmaOnceUnitState;
18374
47098
class PragmaOnce;
18375
 
class CCExprResolve;
18376
 
class CExprResolve;
 
47099
class CMatchSyntax;
18377
47100
namespace Puma {
18378
47101
 
18379
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47102
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18380
47103
class CT_TemplateArgList : public CT_List {
18381
 
#line 18382 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47104
#line 47105 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47105
  friend class ::CCExprResolve;
 
47106
  friend class ::CExprResolve;
18382
47107
  friend class ::WinIfExists;
18383
47108
  friend class ::WinImportHandler;
18384
47109
  friend class ::WinMacros;
18385
 
  friend class ::CMatchSyntax;
18386
 
  friend class ::ExtGnu;
 
47110
  friend class ::WinAsm;
 
47111
  friend class ::WinDeclSpecs;
 
47112
  friend class ::WinMemberExplSpec;
 
47113
  friend class ::WinTypeKeywords;
 
47114
  friend class ::WinFriend;
18387
47115
  friend class ::ExtAC;
18388
47116
  friend class ::ExtACBuilderCoupling;
18389
47117
  friend class ::ExtACSyntaxCoupling;
18390
47118
  friend class ::ExtACTree;
18391
47119
  friend class ::ExtACKeywords;
18392
 
  friend class ::WinAsm;
18393
 
  friend class ::WinDeclSpecs;
18394
 
  friend class ::WinMemberExplSpec;
18395
 
  friend class ::WinTypeKeywords;
 
47120
  friend class ::ExtGnu;
18396
47121
  friend class ::PragmaOnceUnitState;
18397
47122
  friend class ::PragmaOnce;
18398
 
  friend class ::CCExprResolve;
18399
 
  friend class ::CExprResolve;
 
47123
  friend class ::CMatchSyntax;
18400
47124
 
18401
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47125
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18402
47126
 
18403
47127
public:
 
47128
  /** Constructor. */
18404
47129
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
47130
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18405
47131
  static const char *NodeId ();
 
47132
  /** Get the name of the node. Can be compared with NodeId(). */
18406
47133
  const char *NodeName () const { return NodeId (); }
18407
47134
};
18408
47135
 
18412
47139
/*                                                                           */
18413
47140
/*****************************************************************************/
18414
47141
 
 
47142
/** \class CT_Expression CTree.h Puma/CTree.h
 
47143
 *  Base class for all expression tree nodes. */
18415
47144
 
18416
 
#line 18417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47145
#line 47146 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
18417
47146
} // closed Puma
 
47147
class CCExprResolve;
 
47148
class CExprResolve;
18418
47149
class WinIfExists;
18419
47150
class WinImportHandler;
18420
47151
class WinMacros;
18421
 
class CMatchSyntax;
18422
 
class ExtGnu;
 
47152
class WinAsm;
 
47153
class WinDeclSpecs;
 
47154
class WinMemberExplSpec;
 
47155
class WinTypeKeywords;
 
47156
class WinFriend;
18423
47157
class ExtAC;
18424
47158
class ExtACBuilderCoupling;
18425
47159
class ExtACSyntaxCoupling;
18426
47160
class ExtACTree;
18427
47161
class ExtACKeywords;
18428
 
class WinAsm;
18429
 
class WinDeclSpecs;
18430
 
class WinMemberExplSpec;
18431
 
class WinTypeKeywords;
 
47162
class ExtGnu;
18432
47163
class PragmaOnceUnitState;
18433
47164
class PragmaOnce;
18434
 
class CCExprResolve;
18435
 
class CExprResolve;
18436
 
namespace Puma {
18437
 
 
18438
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47165
class CMatchSyntax;
 
47166
namespace Puma {
 
47167
 
 
47168
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47169
 
 
47170
#line 47171 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47171
} // closed Puma
 
47172
 
 
47173
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47174
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47175
#include "CCExprResolveH.ah"
 
47176
#endif
 
47177
namespace Puma {
 
47178
 
 
47179
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47180
 
 
47181
#line 47182 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47182
} // closed Puma
 
47183
 
 
47184
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47185
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47186
#include "CExprResolveH.ah"
 
47187
#endif
 
47188
namespace Puma {
 
47189
 
 
47190
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18439
47191
class CT_Expression : public CTree, public CSemValue {
18440
 
#line 18441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47192
#line 47193 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47193
  friend class ::CCExprResolve;
 
47194
  friend class ::CExprResolve;
18441
47195
  friend class ::WinIfExists;
18442
47196
  friend class ::WinImportHandler;
18443
47197
  friend class ::WinMacros;
18444
 
  friend class ::CMatchSyntax;
18445
 
  friend class ::ExtGnu;
 
47198
  friend class ::WinAsm;
 
47199
  friend class ::WinDeclSpecs;
 
47200
  friend class ::WinMemberExplSpec;
 
47201
  friend class ::WinTypeKeywords;
 
47202
  friend class ::WinFriend;
18446
47203
  friend class ::ExtAC;
18447
47204
  friend class ::ExtACBuilderCoupling;
18448
47205
  friend class ::ExtACSyntaxCoupling;
18449
47206
  friend class ::ExtACTree;
18450
47207
  friend class ::ExtACKeywords;
18451
 
  friend class ::WinAsm;
18452
 
  friend class ::WinDeclSpecs;
18453
 
  friend class ::WinMemberExplSpec;
18454
 
  friend class ::WinTypeKeywords;
 
47208
  friend class ::ExtGnu;
18455
47209
  friend class ::PragmaOnceUnitState;
18456
47210
  friend class ::PragmaOnce;
18457
 
  friend class ::CCExprResolve;
18458
 
  friend class ::CExprResolve;
 
47211
  friend class ::CMatchSyntax;
18459
47212
 
18460
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47213
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18461
47214
 
18462
47215
protected:
 
47216
  /** Constructor. */
18463
47217
  CT_Expression () {}
18464
47218
 
18465
47219
public:
 
47220
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18466
47221
  static const char *NodeId ();
 
47222
  /** Get the name of the node. Can be compared with NodeId(). */
18467
47223
  const char *NodeName () const { return NodeId (); }
 
47224
  /** Get the type of the expression.
 
47225
   *  \return The type information object or NULL. */
18468
47226
  CTypeInfo *Type () const { return type; }
 
47227
  /** Get the value of the expression.
 
47228
   *  \return The value object or NULL. */
18469
47229
  CExprValue *Value () const { return value; }
 
47230
  /** Get the semantic value information of the expression.
 
47231
   *  \return The value object or NULL. */
18470
47232
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
47233
  /** Get this. */
 
47234
  virtual CT_Expression *IsExpression () { return this; }
18471
47235
   private:
18472
47236
  typedef CT_Expression CCExprResolveExpr;
18473
47237
 
18474
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47238
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18475
47239
 public :
18476
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
47240
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
18477
47241
  typedef CT_Expression CExprResolveExpr;
18478
47242
 
18479
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18480
 
 public :
18481
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18482
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18483
 
};
18484
 
 
18485
 
 
18486
 
#line 18487 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
18487
 
} // closed Puma
18488
 
class WinIfExists;
18489
 
class WinImportHandler;
18490
 
class WinMacros;
18491
 
class CMatchSyntax;
18492
 
class ExtGnu;
18493
 
class ExtAC;
18494
 
class ExtACBuilderCoupling;
18495
 
class ExtACSyntaxCoupling;
18496
 
class ExtACTree;
18497
 
class ExtACKeywords;
18498
 
class WinAsm;
18499
 
class WinDeclSpecs;
18500
 
class WinMemberExplSpec;
18501
 
class WinTypeKeywords;
18502
 
class PragmaOnceUnitState;
18503
 
class PragmaOnce;
18504
 
class CCExprResolve;
18505
 
class CExprResolve;
18506
 
namespace Puma {
18507
 
 
18508
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47243
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47244
 public :
 
47245
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47246
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47247
};
 
47248
 
 
47249
/** \class CT_Call CTree.h Puma/CTree.h
 
47250
 *  Tree node representing explicit or implicit function calls 
 
47251
 *  including built-in or user-defined functions and overloaded
 
47252
 *  operators. */
 
47253
 
 
47254
#line 47255 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47255
} // closed Puma
 
47256
class CCExprResolve;
 
47257
class CExprResolve;
 
47258
class WinIfExists;
 
47259
class WinImportHandler;
 
47260
class WinMacros;
 
47261
class WinAsm;
 
47262
class WinDeclSpecs;
 
47263
class WinMemberExplSpec;
 
47264
class WinTypeKeywords;
 
47265
class WinFriend;
 
47266
class ExtAC;
 
47267
class ExtACBuilderCoupling;
 
47268
class ExtACSyntaxCoupling;
 
47269
class ExtACTree;
 
47270
class ExtACKeywords;
 
47271
class ExtGnu;
 
47272
class PragmaOnceUnitState;
 
47273
class PragmaOnce;
 
47274
class CMatchSyntax;
 
47275
namespace Puma {
 
47276
 
 
47277
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47278
 
 
47279
#line 47280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47280
} // closed Puma
 
47281
 
 
47282
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47283
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47284
#include "CCExprResolveH.ah"
 
47285
#endif
 
47286
namespace Puma {
 
47287
 
 
47288
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47289
 
 
47290
#line 47291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47291
} // closed Puma
 
47292
 
 
47293
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47294
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47295
#include "CExprResolveH.ah"
 
47296
#endif
 
47297
namespace Puma {
 
47298
 
 
47299
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47300
class CT_Call : public CT_Expression, public CSemObject {
 
47301
#line 47302 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47302
  friend class ::CCExprResolve;
 
47303
  friend class ::CExprResolve;
 
47304
  friend class ::WinIfExists;
 
47305
  friend class ::WinImportHandler;
 
47306
  friend class ::WinMacros;
 
47307
  friend class ::WinAsm;
 
47308
  friend class ::WinDeclSpecs;
 
47309
  friend class ::WinMemberExplSpec;
 
47310
  friend class ::WinTypeKeywords;
 
47311
  friend class ::WinFriend;
 
47312
  friend class ::ExtAC;
 
47313
  friend class ::ExtACBuilderCoupling;
 
47314
  friend class ::ExtACSyntaxCoupling;
 
47315
  friend class ::ExtACTree;
 
47316
  friend class ::ExtACKeywords;
 
47317
  friend class ::ExtGnu;
 
47318
  friend class ::PragmaOnceUnitState;
 
47319
  friend class ::PragmaOnce;
 
47320
  friend class ::CMatchSyntax;
 
47321
 
 
47322
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47323
 
 
47324
protected:
 
47325
  /** Constructor. */
 
47326
  CT_Call () {}
 
47327
  
 
47328
public:
 
47329
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
47330
  static const char *NodeId ();
 
47331
  /** Get the name of the node. Can be compared with NodeId(). */
 
47332
  const char *NodeName () const { return NodeId (); }
 
47333
  /** Get the semantic information of the call.
 
47334
   *  \return The semantic information or NULL. */
 
47335
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
47336
  /** Get this. */
 
47337
  CT_Call *IsCall () { return this; }
 
47338
   private:
 
47339
  typedef CT_Call CCExprResolveExpr;
 
47340
 
 
47341
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47342
 public :
 
47343
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
47344
  typedef CT_Call CExprResolveExpr;
 
47345
 
 
47346
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47347
 public :
 
47348
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47349
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47350
};
 
47351
 
 
47352
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
47353
 *  Tree node representing implicit function calls detected by
 
47354
 *  the semantic analysis. */
 
47355
 
 
47356
#line 47357 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47357
} // closed Puma
 
47358
class CCExprResolve;
 
47359
class CExprResolve;
 
47360
class WinIfExists;
 
47361
class WinImportHandler;
 
47362
class WinMacros;
 
47363
class WinAsm;
 
47364
class WinDeclSpecs;
 
47365
class WinMemberExplSpec;
 
47366
class WinTypeKeywords;
 
47367
class WinFriend;
 
47368
class ExtAC;
 
47369
class ExtACBuilderCoupling;
 
47370
class ExtACSyntaxCoupling;
 
47371
class ExtACTree;
 
47372
class ExtACKeywords;
 
47373
class ExtGnu;
 
47374
class PragmaOnceUnitState;
 
47375
class PragmaOnce;
 
47376
class CMatchSyntax;
 
47377
namespace Puma {
 
47378
 
 
47379
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47380
 
 
47381
#line 47382 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47382
} // closed Puma
 
47383
 
 
47384
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47385
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47386
#include "CCExprResolveH.ah"
 
47387
#endif
 
47388
namespace Puma {
 
47389
 
 
47390
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47391
 
 
47392
#line 47393 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47393
} // closed Puma
 
47394
 
 
47395
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47396
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47397
#include "CExprResolveH.ah"
 
47398
#endif
 
47399
namespace Puma {
 
47400
 
 
47401
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47402
class CT_ImplicitCall : public CT_Call {
 
47403
#line 47404 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47404
  friend class ::CCExprResolve;
 
47405
  friend class ::CExprResolve;
 
47406
  friend class ::WinIfExists;
 
47407
  friend class ::WinImportHandler;
 
47408
  friend class ::WinMacros;
 
47409
  friend class ::WinAsm;
 
47410
  friend class ::WinDeclSpecs;
 
47411
  friend class ::WinMemberExplSpec;
 
47412
  friend class ::WinTypeKeywords;
 
47413
  friend class ::WinFriend;
 
47414
  friend class ::ExtAC;
 
47415
  friend class ::ExtACBuilderCoupling;
 
47416
  friend class ::ExtACSyntaxCoupling;
 
47417
  friend class ::ExtACTree;
 
47418
  friend class ::ExtACKeywords;
 
47419
  friend class ::ExtGnu;
 
47420
  friend class ::PragmaOnceUnitState;
 
47421
  friend class ::PragmaOnce;
 
47422
  friend class ::CMatchSyntax;
 
47423
 
 
47424
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47425
 
 
47426
  CTree *_arg;
 
47427
 
 
47428
public:
 
47429
  /** Constructor.
 
47430
   *  \param arg The call argument. */
 
47431
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
47432
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
47433
  static const char *NodeId ();
 
47434
  /** Get the name of the node. Can be compared with NodeId(). */
 
47435
  const char *NodeName () const { return NodeId (); }
 
47436
  /** Get the number of sons. */
 
47437
  int Sons () const { return 1; }
 
47438
  /** Get the n-th son.
 
47439
   *  \param n The index of the son.
 
47440
   *  \return The n-th son or NULL. */
 
47441
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
47442
  /** Replace a son.
 
47443
   *  \param old_son The son to replace.
 
47444
   *  \param new_son The new son. */
 
47445
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
47446
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
47447
   private:
 
47448
  typedef CT_ImplicitCall CCExprResolveExpr;
 
47449
 
 
47450
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47451
 public :
 
47452
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
47453
  typedef CT_ImplicitCall CExprResolveExpr;
 
47454
 
 
47455
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47456
 public :
 
47457
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47458
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47459
};
 
47460
 
 
47461
/** \class CT_String CTree.h Puma/CTree.h
 
47462
 *  Tree node representing a string literal. */
 
47463
 
 
47464
#line 47465 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47465
} // closed Puma
 
47466
class CCExprResolve;
 
47467
class CExprResolve;
 
47468
class WinIfExists;
 
47469
class WinImportHandler;
 
47470
class WinMacros;
 
47471
class WinAsm;
 
47472
class WinDeclSpecs;
 
47473
class WinMemberExplSpec;
 
47474
class WinTypeKeywords;
 
47475
class WinFriend;
 
47476
class ExtAC;
 
47477
class ExtACBuilderCoupling;
 
47478
class ExtACSyntaxCoupling;
 
47479
class ExtACTree;
 
47480
class ExtACKeywords;
 
47481
class ExtGnu;
 
47482
class PragmaOnceUnitState;
 
47483
class PragmaOnce;
 
47484
class CMatchSyntax;
 
47485
namespace Puma {
 
47486
 
 
47487
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47488
 
 
47489
#line 47490 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47490
} // closed Puma
 
47491
 
 
47492
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47493
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47494
#include "CCExprResolveH.ah"
 
47495
#endif
 
47496
namespace Puma {
 
47497
 
 
47498
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47499
 
 
47500
#line 47501 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47501
} // closed Puma
 
47502
 
 
47503
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47504
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47505
#include "CExprResolveH.ah"
 
47506
#endif
 
47507
namespace Puma {
 
47508
 
 
47509
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18509
47510
class CT_String : public CT_List, public CSemValue {
18510
 
#line 18511 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47511
#line 47512 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47512
  friend class ::CCExprResolve;
 
47513
  friend class ::CExprResolve;
18511
47514
  friend class ::WinIfExists;
18512
47515
  friend class ::WinImportHandler;
18513
47516
  friend class ::WinMacros;
18514
 
  friend class ::CMatchSyntax;
18515
 
  friend class ::ExtGnu;
 
47517
  friend class ::WinAsm;
 
47518
  friend class ::WinDeclSpecs;
 
47519
  friend class ::WinMemberExplSpec;
 
47520
  friend class ::WinTypeKeywords;
 
47521
  friend class ::WinFriend;
18516
47522
  friend class ::ExtAC;
18517
47523
  friend class ::ExtACBuilderCoupling;
18518
47524
  friend class ::ExtACSyntaxCoupling;
18519
47525
  friend class ::ExtACTree;
18520
47526
  friend class ::ExtACKeywords;
18521
 
  friend class ::WinAsm;
18522
 
  friend class ::WinDeclSpecs;
18523
 
  friend class ::WinMemberExplSpec;
18524
 
  friend class ::WinTypeKeywords;
 
47527
  friend class ::ExtGnu;
18525
47528
  friend class ::PragmaOnceUnitState;
18526
47529
  friend class ::PragmaOnce;
18527
 
  friend class ::CCExprResolve;
18528
 
  friend class ::CExprResolve;
 
47530
  friend class ::CMatchSyntax;
18529
47531
 
18530
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47532
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18531
47533
 
18532
47534
public:
 
47535
  /** Constructor. 
 
47536
   *  \param size The number of sub-strings. */
18533
47537
  CT_String (int size) : CT_List (size, 1) {}
 
47538
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18534
47539
  static const char *NodeId ();
 
47540
  /** Get the name of the node. Can be compared with NodeId(). */
18535
47541
  const char *NodeName () const { return NodeId (); }
18536
47542
 
 
47543
  /** Get the type of the string. 
 
47544
   *  \return The type or NULL. */
18537
47545
  CTypeInfo *Type () const { return type; }
 
47546
  /** Get the string value.
 
47547
   *  \return The value or NULL. */
18538
47548
  CExprValue *Value () const { return value; }
 
47549
  /** Get the semantic value info object.
 
47550
   *  \return The semantic value object or NULL. */
18539
47551
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
47552
  /** Get this. */
 
47553
  virtual CT_String *IsString () { return this; }
18540
47554
   private:
18541
47555
  typedef CT_String CCExprResolveExpr;
18542
47556
 
18543
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47557
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18544
47558
 public :
18545
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
47559
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
18546
47560
  typedef CT_String CExprResolveExpr;
18547
47561
 
18548
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47562
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18549
47563
 public :
18550
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18551
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47564
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47565
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18552
47566
};
18553
47567
 
 
47568
/** \class CT_WideString CTree.h Puma/CTree.h
 
47569
 *  Tree node representing a wide string literal. */
18554
47570
 
18555
 
#line 18556 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47571
#line 47572 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
18556
47572
} // closed Puma
 
47573
class CCExprResolve;
 
47574
class CExprResolve;
18557
47575
class WinIfExists;
18558
47576
class WinImportHandler;
18559
47577
class WinMacros;
18560
 
class CMatchSyntax;
18561
 
class ExtGnu;
 
47578
class WinAsm;
 
47579
class WinDeclSpecs;
 
47580
class WinMemberExplSpec;
 
47581
class WinTypeKeywords;
 
47582
class WinFriend;
18562
47583
class ExtAC;
18563
47584
class ExtACBuilderCoupling;
18564
47585
class ExtACSyntaxCoupling;
18565
47586
class ExtACTree;
18566
47587
class ExtACKeywords;
18567
 
class WinAsm;
18568
 
class WinDeclSpecs;
18569
 
class WinMemberExplSpec;
18570
 
class WinTypeKeywords;
 
47588
class ExtGnu;
18571
47589
class PragmaOnceUnitState;
18572
47590
class PragmaOnce;
18573
 
class CCExprResolve;
18574
 
class CExprResolve;
18575
 
namespace Puma {
18576
 
 
18577
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47591
class CMatchSyntax;
 
47592
namespace Puma {
 
47593
 
 
47594
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47595
 
 
47596
#line 47597 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47597
} // closed Puma
 
47598
 
 
47599
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47600
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47601
#include "CCExprResolveH.ah"
 
47602
#endif
 
47603
namespace Puma {
 
47604
 
 
47605
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47606
 
 
47607
#line 47608 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47608
} // closed Puma
 
47609
 
 
47610
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47611
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47612
#include "CExprResolveH.ah"
 
47613
#endif
 
47614
namespace Puma {
 
47615
 
 
47616
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18578
47617
class CT_WideString : public CT_String {
18579
 
#line 18580 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47618
#line 47619 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47619
  friend class ::CCExprResolve;
 
47620
  friend class ::CExprResolve;
18580
47621
  friend class ::WinIfExists;
18581
47622
  friend class ::WinImportHandler;
18582
47623
  friend class ::WinMacros;
18583
 
  friend class ::CMatchSyntax;
18584
 
  friend class ::ExtGnu;
 
47624
  friend class ::WinAsm;
 
47625
  friend class ::WinDeclSpecs;
 
47626
  friend class ::WinMemberExplSpec;
 
47627
  friend class ::WinTypeKeywords;
 
47628
  friend class ::WinFriend;
18585
47629
  friend class ::ExtAC;
18586
47630
  friend class ::ExtACBuilderCoupling;
18587
47631
  friend class ::ExtACSyntaxCoupling;
18588
47632
  friend class ::ExtACTree;
18589
47633
  friend class ::ExtACKeywords;
18590
 
  friend class ::WinAsm;
18591
 
  friend class ::WinDeclSpecs;
18592
 
  friend class ::WinMemberExplSpec;
18593
 
  friend class ::WinTypeKeywords;
 
47634
  friend class ::ExtGnu;
18594
47635
  friend class ::PragmaOnceUnitState;
18595
47636
  friend class ::PragmaOnce;
18596
 
  friend class ::CCExprResolve;
18597
 
  friend class ::CExprResolve;
 
47637
  friend class ::CMatchSyntax;
18598
47638
 
18599
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47639
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18600
47640
 
18601
47641
public:
 
47642
  /** Constructor.
 
47643
   *  \param size The number of sub-strings. */
18602
47644
  CT_WideString (int size) : CT_String (size) {}
 
47645
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18603
47646
  static const char *NodeId ();
 
47647
  /** Get the name of the node. Can be compared with NodeId(). */
18604
47648
  const char *NodeName () const { return NodeId (); }
18605
47649
   private:
18606
47650
  typedef CT_WideString CCExprResolveExpr;
18607
47651
 
18608
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47652
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18609
47653
 public :
18610
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
47654
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
18611
47655
  typedef CT_WideString CExprResolveExpr;
18612
47656
 
18613
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47657
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18614
47658
 public :
18615
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18616
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47659
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47660
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18617
47661
};
18618
47662
 
 
47663
/** \class CT_Integer CTree.h Puma/CTree.h
 
47664
 *  Tree node representing an integer constant. */
18619
47665
 
18620
 
#line 18621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47666
#line 47667 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
18621
47667
} // closed Puma
 
47668
class CCExprResolve;
 
47669
class CExprResolve;
18622
47670
class WinIfExists;
18623
47671
class WinImportHandler;
18624
47672
class WinMacros;
18625
 
class CMatchSyntax;
18626
 
class ExtGnu;
 
47673
class WinAsm;
 
47674
class WinDeclSpecs;
 
47675
class WinMemberExplSpec;
 
47676
class WinTypeKeywords;
 
47677
class WinFriend;
18627
47678
class ExtAC;
18628
47679
class ExtACBuilderCoupling;
18629
47680
class ExtACSyntaxCoupling;
18630
47681
class ExtACTree;
18631
47682
class ExtACKeywords;
18632
 
class WinAsm;
18633
 
class WinDeclSpecs;
18634
 
class WinMemberExplSpec;
18635
 
class WinTypeKeywords;
 
47683
class ExtGnu;
18636
47684
class PragmaOnceUnitState;
18637
47685
class PragmaOnce;
18638
 
class CCExprResolve;
18639
 
class CExprResolve;
18640
 
namespace Puma {
18641
 
 
18642
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47686
class CMatchSyntax;
 
47687
namespace Puma {
 
47688
 
 
47689
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47690
 
 
47691
#line 47692 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47692
} // closed Puma
 
47693
 
 
47694
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47695
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47696
#include "CCExprResolveH.ah"
 
47697
#endif
 
47698
namespace Puma {
 
47699
 
 
47700
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47701
 
 
47702
#line 47703 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47703
} // closed Puma
 
47704
 
 
47705
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47706
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47707
#include "CExprResolveH.ah"
 
47708
#endif
 
47709
namespace Puma {
 
47710
 
 
47711
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18643
47712
class CT_Integer : public CT_Expression {
18644
 
#line 18645 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47713
#line 47714 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47714
  friend class ::CCExprResolve;
 
47715
  friend class ::CExprResolve;
18645
47716
  friend class ::WinIfExists;
18646
47717
  friend class ::WinImportHandler;
18647
47718
  friend class ::WinMacros;
18648
 
  friend class ::CMatchSyntax;
18649
 
  friend class ::ExtGnu;
 
47719
  friend class ::WinAsm;
 
47720
  friend class ::WinDeclSpecs;
 
47721
  friend class ::WinMemberExplSpec;
 
47722
  friend class ::WinTypeKeywords;
 
47723
  friend class ::WinFriend;
18650
47724
  friend class ::ExtAC;
18651
47725
  friend class ::ExtACBuilderCoupling;
18652
47726
  friend class ::ExtACSyntaxCoupling;
18653
47727
  friend class ::ExtACTree;
18654
47728
  friend class ::ExtACKeywords;
18655
 
  friend class ::WinAsm;
18656
 
  friend class ::WinDeclSpecs;
18657
 
  friend class ::WinMemberExplSpec;
18658
 
  friend class ::WinTypeKeywords;
 
47729
  friend class ::ExtGnu;
18659
47730
  friend class ::PragmaOnceUnitState;
18660
47731
  friend class ::PragmaOnce;
18661
 
  friend class ::CCExprResolve;
18662
 
  friend class ::CExprResolve;
 
47732
  friend class ::CMatchSyntax;
18663
47733
 
18664
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47734
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18665
47735
 
18666
47736
  CTree *_value;  // CT_Token
18667
47737
 
18668
47738
public:
18669
 
  CT_Integer (CTree *t) : _value (t) {}
 
47739
  /** Constructor.
 
47740
   *  \param token The token containing the integer value. */
 
47741
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
47742
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18670
47743
  static const char *NodeId ();
 
47744
  /** Get the name of the node. Can be compared with NodeId(). */
18671
47745
  const char *NodeName () const { return NodeId (); }
 
47746
  /** Get the number of sons. */
18672
47747
  int Sons () const { return _value ? 1 : 0; }
 
47748
  /** Get the n-th son.
 
47749
   *  \param n The index of the son.
 
47750
   *  \return The n-th son or NULL. */
18673
47751
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
47752
  /** Replace a son.
 
47753
   *  \param old_son The son to replace.
 
47754
   *  \param new_son The new son. */
18674
47755
  void ReplaceSon (CTree *old_son, CTree *new_son) 
18675
 
   { if (old_son == _value) _value = new_son; }
 
47756
   { CTree::ReplaceSon (_value, old_son, new_son); }
18676
47757
   private:
18677
47758
  typedef CT_Integer CCExprResolveExpr;
18678
47759
 
18679
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47760
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18680
47761
 public :
18681
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
47762
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
18682
47763
  typedef CT_Integer CExprResolveExpr;
18683
47764
 
18684
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47765
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18685
47766
 public :
18686
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18687
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47767
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47768
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18688
47769
};
18689
47770
 
 
47771
/** \class CT_Character CTree.h Puma/CTree.h
 
47772
 *  Tree node representing a single character constant. */
18690
47773
 
18691
 
#line 18692 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47774
#line 47775 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
18692
47775
} // closed Puma
 
47776
class CCExprResolve;
 
47777
class CExprResolve;
18693
47778
class WinIfExists;
18694
47779
class WinImportHandler;
18695
47780
class WinMacros;
18696
 
class CMatchSyntax;
18697
 
class ExtGnu;
 
47781
class WinAsm;
 
47782
class WinDeclSpecs;
 
47783
class WinMemberExplSpec;
 
47784
class WinTypeKeywords;
 
47785
class WinFriend;
18698
47786
class ExtAC;
18699
47787
class ExtACBuilderCoupling;
18700
47788
class ExtACSyntaxCoupling;
18701
47789
class ExtACTree;
18702
47790
class ExtACKeywords;
18703
 
class WinAsm;
18704
 
class WinDeclSpecs;
18705
 
class WinMemberExplSpec;
18706
 
class WinTypeKeywords;
 
47791
class ExtGnu;
18707
47792
class PragmaOnceUnitState;
18708
47793
class PragmaOnce;
18709
 
class CCExprResolve;
18710
 
class CExprResolve;
18711
 
namespace Puma {
18712
 
 
18713
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47794
class CMatchSyntax;
 
47795
namespace Puma {
 
47796
 
 
47797
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47798
 
 
47799
#line 47800 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47800
} // closed Puma
 
47801
 
 
47802
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47803
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47804
#include "CCExprResolveH.ah"
 
47805
#endif
 
47806
namespace Puma {
 
47807
 
 
47808
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47809
 
 
47810
#line 47811 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47811
} // closed Puma
 
47812
 
 
47813
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47814
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47815
#include "CExprResolveH.ah"
 
47816
#endif
 
47817
namespace Puma {
 
47818
 
 
47819
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18714
47820
class CT_Character : public CT_Expression {
18715
 
#line 18716 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47821
#line 47822 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47822
  friend class ::CCExprResolve;
 
47823
  friend class ::CExprResolve;
18716
47824
  friend class ::WinIfExists;
18717
47825
  friend class ::WinImportHandler;
18718
47826
  friend class ::WinMacros;
18719
 
  friend class ::CMatchSyntax;
18720
 
  friend class ::ExtGnu;
 
47827
  friend class ::WinAsm;
 
47828
  friend class ::WinDeclSpecs;
 
47829
  friend class ::WinMemberExplSpec;
 
47830
  friend class ::WinTypeKeywords;
 
47831
  friend class ::WinFriend;
18721
47832
  friend class ::ExtAC;
18722
47833
  friend class ::ExtACBuilderCoupling;
18723
47834
  friend class ::ExtACSyntaxCoupling;
18724
47835
  friend class ::ExtACTree;
18725
47836
  friend class ::ExtACKeywords;
18726
 
  friend class ::WinAsm;
18727
 
  friend class ::WinDeclSpecs;
18728
 
  friend class ::WinMemberExplSpec;
18729
 
  friend class ::WinTypeKeywords;
 
47837
  friend class ::ExtGnu;
18730
47838
  friend class ::PragmaOnceUnitState;
18731
47839
  friend class ::PragmaOnce;
18732
 
  friend class ::CCExprResolve;
18733
 
  friend class ::CExprResolve;
 
47840
  friend class ::CMatchSyntax;
18734
47841
 
18735
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47842
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18736
47843
 
18737
47844
  CTree *_value;  // CT_Token
18738
47845
 
18739
47846
public:
18740
 
  CT_Character (CTree *t) : _value (t) {}
 
47847
  /** Constructor.
 
47848
   *  \param token The token containing the character value. */
 
47849
  CT_Character (CTree *token) { AddSon (_value, token); }
 
47850
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18741
47851
  static const char *NodeId ();
 
47852
  /** Get the name of the node. Can be compared with NodeId(). */
18742
47853
  const char *NodeName () const { return NodeId (); }
 
47854
  /** Get the number of sons. */
18743
47855
  int Sons () const { return 1; }
 
47856
  /** Get the n-th son.
 
47857
   *  \param n The index of the son.
 
47858
   *  \return The n-th son or NULL. */
18744
47859
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
47860
  /** Replace a son.
 
47861
   *  \param old_son The son to replace.
 
47862
   *  \param new_son The new son. */
18745
47863
  void ReplaceSon (CTree *old_son, CTree *new_son) 
18746
 
   { if (old_son == _value) _value = new_son; }
 
47864
   { CTree::ReplaceSon (_value, old_son, new_son); }
18747
47865
   private:
18748
47866
  typedef CT_Character CCExprResolveExpr;
18749
47867
 
18750
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47868
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18751
47869
 public :
18752
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
47870
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
18753
47871
  typedef CT_Character CExprResolveExpr;
18754
47872
 
18755
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47873
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18756
47874
 public :
18757
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18758
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47875
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47876
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18759
47877
};
18760
47878
 
 
47879
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
47880
 *  Tree node representing a wide character constant. */
18761
47881
 
18762
 
#line 18763 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47882
#line 47883 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
18763
47883
} // closed Puma
 
47884
class CCExprResolve;
 
47885
class CExprResolve;
18764
47886
class WinIfExists;
18765
47887
class WinImportHandler;
18766
47888
class WinMacros;
18767
 
class CMatchSyntax;
18768
 
class ExtGnu;
 
47889
class WinAsm;
 
47890
class WinDeclSpecs;
 
47891
class WinMemberExplSpec;
 
47892
class WinTypeKeywords;
 
47893
class WinFriend;
18769
47894
class ExtAC;
18770
47895
class ExtACBuilderCoupling;
18771
47896
class ExtACSyntaxCoupling;
18772
47897
class ExtACTree;
18773
47898
class ExtACKeywords;
18774
 
class WinAsm;
18775
 
class WinDeclSpecs;
18776
 
class WinMemberExplSpec;
18777
 
class WinTypeKeywords;
 
47899
class ExtGnu;
18778
47900
class PragmaOnceUnitState;
18779
47901
class PragmaOnce;
18780
 
class CCExprResolve;
18781
 
class CExprResolve;
18782
 
namespace Puma {
18783
 
 
18784
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47902
class CMatchSyntax;
 
47903
namespace Puma {
 
47904
 
 
47905
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47906
 
 
47907
#line 47908 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47908
} // closed Puma
 
47909
 
 
47910
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47911
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47912
#include "CCExprResolveH.ah"
 
47913
#endif
 
47914
namespace Puma {
 
47915
 
 
47916
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47917
 
 
47918
#line 47919 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47919
} // closed Puma
 
47920
 
 
47921
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47922
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47923
#include "CExprResolveH.ah"
 
47924
#endif
 
47925
namespace Puma {
 
47926
 
 
47927
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18785
47928
class CT_WideCharacter : public CT_Character {
18786
 
#line 18787 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47929
#line 47930 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47930
  friend class ::CCExprResolve;
 
47931
  friend class ::CExprResolve;
18787
47932
  friend class ::WinIfExists;
18788
47933
  friend class ::WinImportHandler;
18789
47934
  friend class ::WinMacros;
18790
 
  friend class ::CMatchSyntax;
18791
 
  friend class ::ExtGnu;
 
47935
  friend class ::WinAsm;
 
47936
  friend class ::WinDeclSpecs;
 
47937
  friend class ::WinMemberExplSpec;
 
47938
  friend class ::WinTypeKeywords;
 
47939
  friend class ::WinFriend;
18792
47940
  friend class ::ExtAC;
18793
47941
  friend class ::ExtACBuilderCoupling;
18794
47942
  friend class ::ExtACSyntaxCoupling;
18795
47943
  friend class ::ExtACTree;
18796
47944
  friend class ::ExtACKeywords;
18797
 
  friend class ::WinAsm;
18798
 
  friend class ::WinDeclSpecs;
18799
 
  friend class ::WinMemberExplSpec;
18800
 
  friend class ::WinTypeKeywords;
 
47945
  friend class ::ExtGnu;
18801
47946
  friend class ::PragmaOnceUnitState;
18802
47947
  friend class ::PragmaOnce;
18803
 
  friend class ::CCExprResolve;
18804
 
  friend class ::CExprResolve;
18805
 
 
18806
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18807
 
 
18808
 
  CTree *_value;  // CT_Token
 
47948
  friend class ::CMatchSyntax;
 
47949
 
 
47950
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18809
47951
 
18810
47952
public:
18811
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
 
47953
  /** Constructor.
 
47954
   *  \param token The token containing the wide character value. */
 
47955
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
47956
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18812
47957
  static const char *NodeId ();
 
47958
  /** Get the name of the node. Can be compared with NodeId(). */
18813
47959
  const char *NodeName () const { return NodeId (); }
18814
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
18815
 
   { if (old_son == _value) _value = new_son; }
18816
47960
   private:
18817
47961
  typedef CT_WideCharacter CCExprResolveExpr;
18818
47962
 
18819
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47963
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18820
47964
 public :
18821
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
47965
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
18822
47966
  typedef CT_WideCharacter CExprResolveExpr;
18823
47967
 
18824
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47968
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18825
47969
 public :
18826
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18827
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47970
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47971
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18828
47972
};
18829
47973
 
 
47974
/** \class CT_Float CTree.h Puma/CTree.h
 
47975
 *  Tree node representing a floating point constant. */
18830
47976
 
18831
 
#line 18832 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
47977
#line 47978 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
18832
47978
} // closed Puma
 
47979
class CCExprResolve;
 
47980
class CExprResolve;
18833
47981
class WinIfExists;
18834
47982
class WinImportHandler;
18835
47983
class WinMacros;
18836
 
class CMatchSyntax;
18837
 
class ExtGnu;
 
47984
class WinAsm;
 
47985
class WinDeclSpecs;
 
47986
class WinMemberExplSpec;
 
47987
class WinTypeKeywords;
 
47988
class WinFriend;
18838
47989
class ExtAC;
18839
47990
class ExtACBuilderCoupling;
18840
47991
class ExtACSyntaxCoupling;
18841
47992
class ExtACTree;
18842
47993
class ExtACKeywords;
18843
 
class WinAsm;
18844
 
class WinDeclSpecs;
18845
 
class WinMemberExplSpec;
18846
 
class WinTypeKeywords;
 
47994
class ExtGnu;
18847
47995
class PragmaOnceUnitState;
18848
47996
class PragmaOnce;
18849
 
class CCExprResolve;
18850
 
class CExprResolve;
18851
 
namespace Puma {
18852
 
 
18853
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47997
class CMatchSyntax;
 
47998
namespace Puma {
 
47999
 
 
48000
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48001
 
 
48002
#line 48003 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48003
} // closed Puma
 
48004
 
 
48005
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48006
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48007
#include "CCExprResolveH.ah"
 
48008
#endif
 
48009
namespace Puma {
 
48010
 
 
48011
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48012
 
 
48013
#line 48014 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48014
} // closed Puma
 
48015
 
 
48016
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48017
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48018
#include "CExprResolveH.ah"
 
48019
#endif
 
48020
namespace Puma {
 
48021
 
 
48022
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18854
48023
class CT_Float : public CT_Expression {
18855
 
#line 18856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48024
#line 48025 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48025
  friend class ::CCExprResolve;
 
48026
  friend class ::CExprResolve;
18856
48027
  friend class ::WinIfExists;
18857
48028
  friend class ::WinImportHandler;
18858
48029
  friend class ::WinMacros;
18859
 
  friend class ::CMatchSyntax;
18860
 
  friend class ::ExtGnu;
 
48030
  friend class ::WinAsm;
 
48031
  friend class ::WinDeclSpecs;
 
48032
  friend class ::WinMemberExplSpec;
 
48033
  friend class ::WinTypeKeywords;
 
48034
  friend class ::WinFriend;
18861
48035
  friend class ::ExtAC;
18862
48036
  friend class ::ExtACBuilderCoupling;
18863
48037
  friend class ::ExtACSyntaxCoupling;
18864
48038
  friend class ::ExtACTree;
18865
48039
  friend class ::ExtACKeywords;
18866
 
  friend class ::WinAsm;
18867
 
  friend class ::WinDeclSpecs;
18868
 
  friend class ::WinMemberExplSpec;
18869
 
  friend class ::WinTypeKeywords;
 
48040
  friend class ::ExtGnu;
18870
48041
  friend class ::PragmaOnceUnitState;
18871
48042
  friend class ::PragmaOnce;
18872
 
  friend class ::CCExprResolve;
18873
 
  friend class ::CExprResolve;
 
48043
  friend class ::CMatchSyntax;
18874
48044
 
18875
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48045
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18876
48046
 
18877
48047
  CTree *_value;  // CT_Token
18878
48048
 
18879
48049
public:
18880
 
  CT_Float (CTree *t) : _value (t) {}
 
48050
  /** Constructor.
 
48051
   *  \param token The token containing the floating point value. */
 
48052
  CT_Float (CTree *token) { AddSon (_value, token); }
 
48053
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18881
48054
  static const char *NodeId ();
 
48055
  /** Get the name of the node. Can be compared with NodeId(). */
18882
48056
  const char *NodeName () const { return NodeId (); }
 
48057
  /** Get the number of sons. */
18883
48058
  int Sons () const { return 1; }
 
48059
  /** Get the n-th son.
 
48060
   *  \param n The index of the son.
 
48061
   *  \return The n-th son or NULL. */
18884
48062
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
48063
  /** Replace a son.
 
48064
   *  \param old_son The son to replace.
 
48065
   *  \param new_son The new son. */
18885
48066
  void ReplaceSon (CTree *old_son, CTree *new_son) 
18886
 
   { if (old_son == _value) _value = new_son; }
 
48067
   { CTree::ReplaceSon (_value, old_son, new_son); }
18887
48068
   private:
18888
48069
  typedef CT_Float CCExprResolveExpr;
18889
48070
 
18890
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48071
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18891
48072
 public :
18892
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
48073
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
18893
48074
  typedef CT_Float CExprResolveExpr;
18894
48075
 
18895
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48076
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18896
48077
 public :
18897
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18898
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48078
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48079
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18899
48080
};
18900
48081
 
 
48082
/** \class CT_Bool CTree.h Puma/CTree.h
 
48083
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
18901
48084
 
18902
 
#line 18903 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48085
#line 48086 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
18903
48086
} // closed Puma
 
48087
class CCExprResolve;
 
48088
class CExprResolve;
18904
48089
class WinIfExists;
18905
48090
class WinImportHandler;
18906
48091
class WinMacros;
18907
 
class CMatchSyntax;
18908
 
class ExtGnu;
 
48092
class WinAsm;
 
48093
class WinDeclSpecs;
 
48094
class WinMemberExplSpec;
 
48095
class WinTypeKeywords;
 
48096
class WinFriend;
18909
48097
class ExtAC;
18910
48098
class ExtACBuilderCoupling;
18911
48099
class ExtACSyntaxCoupling;
18912
48100
class ExtACTree;
18913
48101
class ExtACKeywords;
18914
 
class WinAsm;
18915
 
class WinDeclSpecs;
18916
 
class WinMemberExplSpec;
18917
 
class WinTypeKeywords;
 
48102
class ExtGnu;
18918
48103
class PragmaOnceUnitState;
18919
48104
class PragmaOnce;
18920
 
class CCExprResolve;
18921
 
class CExprResolve;
18922
 
namespace Puma {
18923
 
 
18924
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48105
class CMatchSyntax;
 
48106
namespace Puma {
 
48107
 
 
48108
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48109
 
 
48110
#line 48111 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48111
} // closed Puma
 
48112
 
 
48113
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48114
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48115
#include "CCExprResolveH.ah"
 
48116
#endif
 
48117
namespace Puma {
 
48118
 
 
48119
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48120
 
 
48121
#line 48122 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48122
} // closed Puma
 
48123
 
 
48124
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48125
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48126
#include "CExprResolveH.ah"
 
48127
#endif
 
48128
namespace Puma {
 
48129
 
 
48130
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18925
48131
class CT_Bool : public CT_Expression {
18926
 
#line 18927 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48132
#line 48133 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48133
  friend class ::CCExprResolve;
 
48134
  friend class ::CExprResolve;
18927
48135
  friend class ::WinIfExists;
18928
48136
  friend class ::WinImportHandler;
18929
48137
  friend class ::WinMacros;
18930
 
  friend class ::CMatchSyntax;
18931
 
  friend class ::ExtGnu;
 
48138
  friend class ::WinAsm;
 
48139
  friend class ::WinDeclSpecs;
 
48140
  friend class ::WinMemberExplSpec;
 
48141
  friend class ::WinTypeKeywords;
 
48142
  friend class ::WinFriend;
18932
48143
  friend class ::ExtAC;
18933
48144
  friend class ::ExtACBuilderCoupling;
18934
48145
  friend class ::ExtACSyntaxCoupling;
18935
48146
  friend class ::ExtACTree;
18936
48147
  friend class ::ExtACKeywords;
18937
 
  friend class ::WinAsm;
18938
 
  friend class ::WinDeclSpecs;
18939
 
  friend class ::WinMemberExplSpec;
18940
 
  friend class ::WinTypeKeywords;
 
48148
  friend class ::ExtGnu;
18941
48149
  friend class ::PragmaOnceUnitState;
18942
48150
  friend class ::PragmaOnce;
18943
 
  friend class ::CCExprResolve;
18944
 
  friend class ::CExprResolve;
 
48151
  friend class ::CMatchSyntax;
18945
48152
 
18946
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48153
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18947
48154
 
18948
48155
  CTree *_value;  // CT_Token
18949
48156
 
18950
48157
public:
18951
 
  CT_Bool (CTree *t) : _value (t) {}
 
48158
  /** Constructor.
 
48159
   *  \param token The token containing the boolean value. */
 
48160
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
48161
  /** Get the identifier for this node type. Can be compared with NodeName(). */
18952
48162
  static const char *NodeId ();
 
48163
  /** Get the name of the node. Can be compared with NodeId(). */
18953
48164
  const char *NodeName () const { return NodeId (); }
 
48165
  /** Get the number of sons. */
18954
48166
  int Sons () const { return 1; }
 
48167
  /** Get the n-th son.
 
48168
   *  \param n The index of the son.
 
48169
   *  \return The n-th son or NULL. */
18955
48170
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
48171
  /** Replace a son.
 
48172
   *  \param old_son The son to replace.
 
48173
   *  \param new_son The new son. */
18956
48174
  void ReplaceSon (CTree *old_son, CTree *new_son) 
18957
 
   { if (old_son == _value) _value = new_son; }
 
48175
   { CTree::ReplaceSon (_value, old_son, new_son); }
18958
48176
   private:
18959
48177
  typedef CT_Bool CCExprResolveExpr;
18960
48178
 
18961
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48179
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18962
48180
 public :
18963
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
48181
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
18964
48182
  typedef CT_Bool CExprResolveExpr;
18965
48183
 
18966
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48184
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18967
48185
 public :
18968
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18969
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48186
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48187
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18970
48188
};
18971
48189
 
 
48190
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
48191
 *  Tree node representing a braced expression, e.g. (a+b). */
18972
48192
 
18973
 
#line 18974 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48193
#line 48194 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
18974
48194
} // closed Puma
 
48195
class CCExprResolve;
 
48196
class CExprResolve;
18975
48197
class WinIfExists;
18976
48198
class WinImportHandler;
18977
48199
class WinMacros;
18978
 
class CMatchSyntax;
18979
 
class ExtGnu;
 
48200
class WinAsm;
 
48201
class WinDeclSpecs;
 
48202
class WinMemberExplSpec;
 
48203
class WinTypeKeywords;
 
48204
class WinFriend;
18980
48205
class ExtAC;
18981
48206
class ExtACBuilderCoupling;
18982
48207
class ExtACSyntaxCoupling;
18983
48208
class ExtACTree;
18984
48209
class ExtACKeywords;
18985
 
class WinAsm;
18986
 
class WinDeclSpecs;
18987
 
class WinMemberExplSpec;
18988
 
class WinTypeKeywords;
 
48210
class ExtGnu;
18989
48211
class PragmaOnceUnitState;
18990
48212
class PragmaOnce;
18991
 
class CCExprResolve;
18992
 
class CExprResolve;
18993
 
namespace Puma {
18994
 
 
18995
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48213
class CMatchSyntax;
 
48214
namespace Puma {
 
48215
 
 
48216
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48217
 
 
48218
#line 48219 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48219
} // closed Puma
 
48220
 
 
48221
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48222
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48223
#include "CCExprResolveH.ah"
 
48224
#endif
 
48225
namespace Puma {
 
48226
 
 
48227
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48228
 
 
48229
#line 48230 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48230
} // closed Puma
 
48231
 
 
48232
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48233
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48234
#include "CExprResolveH.ah"
 
48235
#endif
 
48236
namespace Puma {
 
48237
 
 
48238
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
18996
48239
class CT_BracedExpr : public CT_Expression {
18997
 
#line 18998 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48240
#line 48241 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48241
  friend class ::CCExprResolve;
 
48242
  friend class ::CExprResolve;
18998
48243
  friend class ::WinIfExists;
18999
48244
  friend class ::WinImportHandler;
19000
48245
  friend class ::WinMacros;
19001
 
  friend class ::CMatchSyntax;
19002
 
  friend class ::ExtGnu;
 
48246
  friend class ::WinAsm;
 
48247
  friend class ::WinDeclSpecs;
 
48248
  friend class ::WinMemberExplSpec;
 
48249
  friend class ::WinTypeKeywords;
 
48250
  friend class ::WinFriend;
19003
48251
  friend class ::ExtAC;
19004
48252
  friend class ::ExtACBuilderCoupling;
19005
48253
  friend class ::ExtACSyntaxCoupling;
19006
48254
  friend class ::ExtACTree;
19007
48255
  friend class ::ExtACKeywords;
19008
 
  friend class ::WinAsm;
19009
 
  friend class ::WinDeclSpecs;
19010
 
  friend class ::WinMemberExplSpec;
19011
 
  friend class ::WinTypeKeywords;
 
48256
  friend class ::ExtGnu;
19012
48257
  friend class ::PragmaOnceUnitState;
19013
48258
  friend class ::PragmaOnce;
19014
 
  friend class ::CCExprResolve;
19015
 
  friend class ::CExprResolve;
 
48259
  friend class ::CMatchSyntax;
19016
48260
 
19017
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48261
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19018
48262
 
19019
48263
  CTree *sons[3]; // open, expr, close
19020
48264
 
19021
48265
public:
 
48266
  /** Constructor.
 
48267
   *  \param o The opening brace.
 
48268
   *  \param e The enclosed expression.
 
48269
   *  \param c The closing brace. */
19022
48270
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
19023
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
 
48271
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
19024
48272
  }
 
48273
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19025
48274
  static const char *NodeId ();
 
48275
  /** Get the name of the node. Can be compared with NodeId(). */
19026
48276
  const char *NodeName () const { return NodeId (); }
 
48277
  /** Get the number of sons. */
19027
48278
  int Sons () const { return 3; }
 
48279
  /** Get the n-th son.
 
48280
   *  \param n The index of the son.
 
48281
   *  \return The n-th son or NULL. */
19028
48282
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
48283
  /** Get the enclosed expression. */
19029
48284
  CTree *Expr () const { return sons[1]; }
 
48285
  /** Get the type of the enclosed expression. */
19030
48286
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
48287
  /** Get the value of the enclosed expression. */
19031
48288
  CExprValue *Value () const { return Expr ()->Value (); }
 
48289
  /** Get the semantic value object. */
19032
48290
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
48291
  /** Replace a son.
 
48292
   *  \param old_son The son to replace.
 
48293
   *  \param new_son The new son. */
19033
48294
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
19034
48295
    CTree::ReplaceSon (sons, 3, old_son, new_son);
19035
48296
  }
19036
48297
   private:
19037
48298
  typedef CT_BracedExpr CCExprResolveExpr;
19038
48299
 
19039
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48300
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19040
48301
 public :
19041
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
48302
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19042
48303
  typedef CT_BracedExpr CExprResolveExpr;
19043
48304
 
19044
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48305
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19045
48306
 public :
19046
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19047
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48307
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48308
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19048
48309
};
19049
48310
 
 
48311
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
48312
 *  Base class for all tree nodes representing a name. */
19050
48313
 
19051
 
#line 19052 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48314
#line 48315 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
19052
48315
} // closed Puma
 
48316
class CCExprResolve;
 
48317
class CExprResolve;
19053
48318
class WinIfExists;
19054
48319
class WinImportHandler;
19055
48320
class WinMacros;
19056
 
class CMatchSyntax;
19057
 
class ExtGnu;
 
48321
class WinAsm;
 
48322
class WinDeclSpecs;
 
48323
class WinMemberExplSpec;
 
48324
class WinTypeKeywords;
 
48325
class WinFriend;
19058
48326
class ExtAC;
19059
48327
class ExtACBuilderCoupling;
19060
48328
class ExtACSyntaxCoupling;
19061
48329
class ExtACTree;
19062
48330
class ExtACKeywords;
19063
 
class WinAsm;
19064
 
class WinDeclSpecs;
19065
 
class WinMemberExplSpec;
19066
 
class WinTypeKeywords;
 
48331
class ExtGnu;
19067
48332
class PragmaOnceUnitState;
19068
48333
class PragmaOnce;
19069
 
class CCExprResolve;
19070
 
class CExprResolve;
19071
 
namespace Puma {
19072
 
 
19073
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48334
class CMatchSyntax;
 
48335
namespace Puma {
 
48336
 
 
48337
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48338
 
 
48339
#line 48340 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48340
} // closed Puma
 
48341
 
 
48342
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48343
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48344
#include "CCExprResolveH.ah"
 
48345
#endif
 
48346
namespace Puma {
 
48347
 
 
48348
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48349
 
 
48350
#line 48351 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48351
} // closed Puma
 
48352
 
 
48353
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48354
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48355
#include "CExprResolveH.ah"
 
48356
#endif
 
48357
namespace Puma {
 
48358
 
 
48359
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19074
48360
class CT_SimpleName : public CT_List, public Printable, 
19075
48361
                      public CSemValue, public CSemObject {
19076
 
#line 19077 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48362
#line 48363 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48363
  friend class ::CCExprResolve;
 
48364
  friend class ::CExprResolve;
19077
48365
  friend class ::WinIfExists;
19078
48366
  friend class ::WinImportHandler;
19079
48367
  friend class ::WinMacros;
19080
 
  friend class ::CMatchSyntax;
19081
 
  friend class ::ExtGnu;
 
48368
  friend class ::WinAsm;
 
48369
  friend class ::WinDeclSpecs;
 
48370
  friend class ::WinMemberExplSpec;
 
48371
  friend class ::WinTypeKeywords;
 
48372
  friend class ::WinFriend;
19082
48373
  friend class ::ExtAC;
19083
48374
  friend class ::ExtACBuilderCoupling;
19084
48375
  friend class ::ExtACSyntaxCoupling;
19085
48376
  friend class ::ExtACTree;
19086
48377
  friend class ::ExtACKeywords;
19087
 
  friend class ::WinAsm;
19088
 
  friend class ::WinDeclSpecs;
19089
 
  friend class ::WinMemberExplSpec;
19090
 
  friend class ::WinTypeKeywords;
 
48378
  friend class ::ExtGnu;
19091
48379
  friend class ::PragmaOnceUnitState;
19092
48380
  friend class ::PragmaOnce;
19093
 
  friend class ::CCExprResolve;
19094
 
  friend class ::CExprResolve;
 
48381
  friend class ::CMatchSyntax;
19095
48382
 
19096
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48383
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19097
48384
 
19098
48385
protected:
 
48386
  /** Constructor.
 
48387
   *  \param size The number of sub-names (for qualified names). */
19099
48388
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
48389
  /** Constructor.
 
48390
   *  \param size The number of sub-names (for qualified names). 
 
48391
   *  \param properties Additional name list properties (for root qualified names). */
19100
48392
  CT_SimpleName (int size, int properties) : 
19101
48393
    CT_List (size, 2, properties) {}
19102
48394
  
19103
48395
public:
 
48396
  /** Constructor.
 
48397
   *  \param n The sub-tree containing the name. */
19104
48398
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
48399
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19105
48400
  static const char *NodeId ();
 
48401
  /** Get the name of the node. Can be compared with NodeId(). */
19106
48402
  const char *NodeName () const { return NodeId (); }
 
48403
  /** Get the string containing the name. */
19107
48404
  virtual const char *Text () const 
19108
48405
   { return Son (Sons ()-1)->token ()->text (); }
 
48406
  /** Print the name on the given stream. 
 
48407
   *  \param os The output stream. */
19109
48408
  virtual void print (ostream &os) const { os << Text (); }
 
48409
  /** Get this. */
19110
48410
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
48411
  /** Get the type of the entity represented by the name. */
19111
48412
  CTypeInfo *Type () const { return type; }
 
48413
  /** Get the value of the entity represented by the name. */ 
19112
48414
  CExprValue *Value () const { return value; }
 
48415
  /** Get the sematic value information object. */
19113
48416
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
48417
  /** Get the sematic information object. */
19114
48418
  CSemObject *SemObject () const { return (CSemObject*)this; }
19115
 
  // special new / delete with reusing memory
19116
 
  void *operator new (size_t);
19117
 
  void  operator delete (void *);
19118
 
  // classification function
 
48419
  /** Get this. */
19119
48420
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
48421
 
 
48422
public:
 
48423
  /** Own new operator reusing memory. */
 
48424
  void *operator new (size_t);
 
48425
  /** Own delete operator. */
 
48426
  void operator delete (void *);
19120
48427
   private:
19121
48428
  typedef CT_SimpleName CCExprResolveExpr;
19122
48429
 
19123
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48430
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19124
48431
 public :
19125
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
48432
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19126
48433
  typedef CT_SimpleName CExprResolveExpr;
19127
48434
 
19128
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48435
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19129
48436
 public :
19130
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19131
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48437
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48438
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19132
48439
};
19133
48440
 
 
48441
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
48442
 *  Base class for tree nodes representing a special name, like destructor names. */
19134
48443
 
19135
 
#line 19136 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48444
#line 48445 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
19136
48445
} // closed Puma
 
48446
class CCExprResolve;
 
48447
class CExprResolve;
19137
48448
class WinIfExists;
19138
48449
class WinImportHandler;
19139
48450
class WinMacros;
19140
 
class CMatchSyntax;
19141
 
class ExtGnu;
 
48451
class WinAsm;
 
48452
class WinDeclSpecs;
 
48453
class WinMemberExplSpec;
 
48454
class WinTypeKeywords;
 
48455
class WinFriend;
19142
48456
class ExtAC;
19143
48457
class ExtACBuilderCoupling;
19144
48458
class ExtACSyntaxCoupling;
19145
48459
class ExtACTree;
19146
48460
class ExtACKeywords;
19147
 
class WinAsm;
19148
 
class WinDeclSpecs;
19149
 
class WinMemberExplSpec;
19150
 
class WinTypeKeywords;
 
48461
class ExtGnu;
19151
48462
class PragmaOnceUnitState;
19152
48463
class PragmaOnce;
19153
 
class CCExprResolve;
19154
 
class CExprResolve;
19155
 
namespace Puma {
19156
 
 
19157
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48464
class CMatchSyntax;
 
48465
namespace Puma {
 
48466
 
 
48467
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48468
 
 
48469
#line 48470 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48470
} // closed Puma
 
48471
 
 
48472
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48473
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48474
#include "CCExprResolveH.ah"
 
48475
#endif
 
48476
namespace Puma {
 
48477
 
 
48478
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48479
 
 
48480
#line 48481 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48481
} // closed Puma
 
48482
 
 
48483
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48484
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48485
#include "CExprResolveH.ah"
 
48486
#endif
 
48487
namespace Puma {
 
48488
 
 
48489
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19158
48490
class CT_SpecialName : public CT_SimpleName {
19159
 
#line 19160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48491
#line 48492 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48492
  friend class ::CCExprResolve;
 
48493
  friend class ::CExprResolve;
19160
48494
  friend class ::WinIfExists;
19161
48495
  friend class ::WinImportHandler;
19162
48496
  friend class ::WinMacros;
19163
 
  friend class ::CMatchSyntax;
19164
 
  friend class ::ExtGnu;
 
48497
  friend class ::WinAsm;
 
48498
  friend class ::WinDeclSpecs;
 
48499
  friend class ::WinMemberExplSpec;
 
48500
  friend class ::WinTypeKeywords;
 
48501
  friend class ::WinFriend;
19165
48502
  friend class ::ExtAC;
19166
48503
  friend class ::ExtACBuilderCoupling;
19167
48504
  friend class ::ExtACSyntaxCoupling;
19168
48505
  friend class ::ExtACTree;
19169
48506
  friend class ::ExtACKeywords;
19170
 
  friend class ::WinAsm;
19171
 
  friend class ::WinDeclSpecs;
19172
 
  friend class ::WinMemberExplSpec;
19173
 
  friend class ::WinTypeKeywords;
 
48507
  friend class ::ExtGnu;
19174
48508
  friend class ::PragmaOnceUnitState;
19175
48509
  friend class ::PragmaOnce;
19176
 
  friend class ::CCExprResolve;
19177
 
  friend class ::CExprResolve;
 
48510
  friend class ::CMatchSyntax;
19178
48511
 
19179
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48512
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19180
48513
 
19181
48514
  char *_name;
19182
48515
  
19183
48516
protected:
 
48517
  /** Constructor.
 
48518
   *  \param size The number of sub-names (for qualified names). */
19184
48519
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
19185
48520
  
19186
48521
public:
 
48522
  /** Destructor. Deletes the name string. */
19187
48523
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
48524
  /** Get the string containing the name. */
19188
48525
  const char *Text () const { return _name; }
 
48526
  /** Set the name. The name is copied.
 
48527
   *  \param n The name. */
19189
48528
  void Name (const char *n) { 
19190
48529
    if (n) { 
19191
48530
      _name = new char[strlen(n) + 1];
19192
48531
      strcpy (_name,n);
19193
48532
    }
19194
48533
  }
19195
 
  // special new / delete with reusing memory
 
48534
 
 
48535
public:
 
48536
  /** Own new operator reusing memory. */
19196
48537
  void *operator new (size_t);
19197
 
  void  operator delete (void *);
 
48538
  /** Own delete operator. */
 
48539
  void operator delete (void *);
19198
48540
   private:
19199
48541
  typedef CT_SpecialName CCExprResolveExpr;
19200
48542
 
19201
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48543
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19202
48544
 public :
19203
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
48545
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19204
48546
  typedef CT_SpecialName CExprResolveExpr;
19205
48547
 
19206
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48548
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19207
48549
 public :
19208
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19209
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48550
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48551
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19210
48552
};
19211
48553
 
 
48554
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
48555
 *  Tree node representing a private name. Private names 
 
48556
 *  are generated names for abstract declarators etc. */
19212
48557
 
19213
 
#line 19214 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48558
#line 48559 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
19214
48559
} // closed Puma
 
48560
class CCExprResolve;
 
48561
class CExprResolve;
19215
48562
class WinIfExists;
19216
48563
class WinImportHandler;
19217
48564
class WinMacros;
19218
 
class CMatchSyntax;
19219
 
class ExtGnu;
 
48565
class WinAsm;
 
48566
class WinDeclSpecs;
 
48567
class WinMemberExplSpec;
 
48568
class WinTypeKeywords;
 
48569
class WinFriend;
19220
48570
class ExtAC;
19221
48571
class ExtACBuilderCoupling;
19222
48572
class ExtACSyntaxCoupling;
19223
48573
class ExtACTree;
19224
48574
class ExtACKeywords;
19225
 
class WinAsm;
19226
 
class WinDeclSpecs;
19227
 
class WinMemberExplSpec;
19228
 
class WinTypeKeywords;
 
48575
class ExtGnu;
19229
48576
class PragmaOnceUnitState;
19230
48577
class PragmaOnce;
19231
 
class CCExprResolve;
19232
 
class CExprResolve;
19233
 
namespace Puma {
19234
 
 
19235
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48578
class CMatchSyntax;
 
48579
namespace Puma {
 
48580
 
 
48581
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48582
 
 
48583
#line 48584 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48584
} // closed Puma
 
48585
 
 
48586
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48587
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48588
#include "CCExprResolveH.ah"
 
48589
#endif
 
48590
namespace Puma {
 
48591
 
 
48592
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48593
 
 
48594
#line 48595 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48595
} // closed Puma
 
48596
 
 
48597
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48598
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48599
#include "CExprResolveH.ah"
 
48600
#endif
 
48601
namespace Puma {
 
48602
 
 
48603
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19236
48604
class CT_PrivateName : public CT_SpecialName {
19237
 
#line 19238 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48605
#line 48606 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48606
  friend class ::CCExprResolve;
 
48607
  friend class ::CExprResolve;
19238
48608
  friend class ::WinIfExists;
19239
48609
  friend class ::WinImportHandler;
19240
48610
  friend class ::WinMacros;
19241
 
  friend class ::CMatchSyntax;
19242
 
  friend class ::ExtGnu;
 
48611
  friend class ::WinAsm;
 
48612
  friend class ::WinDeclSpecs;
 
48613
  friend class ::WinMemberExplSpec;
 
48614
  friend class ::WinTypeKeywords;
 
48615
  friend class ::WinFriend;
19243
48616
  friend class ::ExtAC;
19244
48617
  friend class ::ExtACBuilderCoupling;
19245
48618
  friend class ::ExtACSyntaxCoupling;
19246
48619
  friend class ::ExtACTree;
19247
48620
  friend class ::ExtACKeywords;
19248
 
  friend class ::WinAsm;
19249
 
  friend class ::WinDeclSpecs;
19250
 
  friend class ::WinMemberExplSpec;
19251
 
  friend class ::WinTypeKeywords;
 
48621
  friend class ::ExtGnu;
19252
48622
  friend class ::PragmaOnceUnitState;
19253
48623
  friend class ::PragmaOnce;
19254
 
  friend class ::CCExprResolve;
19255
 
  friend class ::CExprResolve;
 
48624
  friend class ::CMatchSyntax;
19256
48625
 
19257
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48626
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19258
48627
 
19259
48628
public:
 
48629
  /** Constructor.
 
48630
   *  \param n The private (generated) name. */
19260
48631
  CT_PrivateName (const char *n) { Name (n); }
 
48632
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19261
48633
  static const char *NodeId ();
 
48634
  /** Get the name of the node. Can be compared with NodeId(). */
19262
48635
  const char *NodeName () const { return NodeId (); }
 
48636
  /** Get the number of sons. */
19263
48637
  int Sons () const { return 0; }
 
48638
  /** Get the n-th son.
 
48639
   *  \param n The index of the son.
 
48640
   *  \return The n-th son or NULL. */
19264
48641
  CTree *Son (int n) const { return (CTree*)0; }
19265
 
  // special new / delete with reusing memory
 
48642
 
 
48643
public:
 
48644
  /** Own new operator reusing memory. */
19266
48645
  void *operator new (size_t);
19267
 
  void  operator delete (void *);
 
48646
  /** Own delete operator. */
 
48647
  void operator delete (void *);
19268
48648
   private:
19269
48649
  typedef CT_PrivateName CCExprResolveExpr;
19270
48650
 
19271
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48651
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19272
48652
 public :
19273
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
48653
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19274
48654
  typedef CT_PrivateName CExprResolveExpr;
19275
48655
 
19276
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48656
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19277
48657
 public :
19278
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19279
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48658
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48659
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19280
48660
};
19281
48661
 
 
48662
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
48663
 *  Tree node representing a destructor name. */
19282
48664
 
19283
 
#line 19284 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48665
#line 48666 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
19284
48666
} // closed Puma
 
48667
class CCExprResolve;
 
48668
class CExprResolve;
19285
48669
class WinIfExists;
19286
48670
class WinImportHandler;
19287
48671
class WinMacros;
19288
 
class CMatchSyntax;
19289
 
class ExtGnu;
 
48672
class WinAsm;
 
48673
class WinDeclSpecs;
 
48674
class WinMemberExplSpec;
 
48675
class WinTypeKeywords;
 
48676
class WinFriend;
19290
48677
class ExtAC;
19291
48678
class ExtACBuilderCoupling;
19292
48679
class ExtACSyntaxCoupling;
19293
48680
class ExtACTree;
19294
48681
class ExtACKeywords;
19295
 
class WinAsm;
19296
 
class WinDeclSpecs;
19297
 
class WinMemberExplSpec;
19298
 
class WinTypeKeywords;
 
48682
class ExtGnu;
19299
48683
class PragmaOnceUnitState;
19300
48684
class PragmaOnce;
19301
 
class CCExprResolve;
19302
 
class CExprResolve;
19303
 
namespace Puma {
19304
 
 
19305
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48685
class CMatchSyntax;
 
48686
namespace Puma {
 
48687
 
 
48688
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48689
 
 
48690
#line 48691 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48691
} // closed Puma
 
48692
 
 
48693
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48694
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48695
#include "CCExprResolveH.ah"
 
48696
#endif
 
48697
namespace Puma {
 
48698
 
 
48699
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48700
 
 
48701
#line 48702 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48702
} // closed Puma
 
48703
 
 
48704
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48705
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48706
#include "CExprResolveH.ah"
 
48707
#endif
 
48708
namespace Puma {
 
48709
 
 
48710
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19306
48711
class CT_DestructorName : public CT_SpecialName {
19307
 
#line 19308 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48712
#line 48713 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48713
  friend class ::CCExprResolve;
 
48714
  friend class ::CExprResolve;
19308
48715
  friend class ::WinIfExists;
19309
48716
  friend class ::WinImportHandler;
19310
48717
  friend class ::WinMacros;
19311
 
  friend class ::CMatchSyntax;
19312
 
  friend class ::ExtGnu;
 
48718
  friend class ::WinAsm;
 
48719
  friend class ::WinDeclSpecs;
 
48720
  friend class ::WinMemberExplSpec;
 
48721
  friend class ::WinTypeKeywords;
 
48722
  friend class ::WinFriend;
19313
48723
  friend class ::ExtAC;
19314
48724
  friend class ::ExtACBuilderCoupling;
19315
48725
  friend class ::ExtACSyntaxCoupling;
19316
48726
  friend class ::ExtACTree;
19317
48727
  friend class ::ExtACKeywords;
19318
 
  friend class ::WinAsm;
19319
 
  friend class ::WinDeclSpecs;
19320
 
  friend class ::WinMemberExplSpec;
19321
 
  friend class ::WinTypeKeywords;
 
48728
  friend class ::ExtGnu;
19322
48729
  friend class ::PragmaOnceUnitState;
19323
48730
  friend class ::PragmaOnce;
19324
 
  friend class ::CCExprResolve;
19325
 
  friend class ::CExprResolve;
 
48731
  friend class ::CMatchSyntax;
19326
48732
 
19327
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48733
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19328
48734
 
19329
48735
public:
19330
 
  CT_DestructorName (CTree *, CTree *);
 
48736
  /** Constructor.
 
48737
   *  \param t The tilde operator.
 
48738
   *  \param n The class name. */
 
48739
  CT_DestructorName (CTree *t, CTree *n);
 
48740
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19331
48741
  static const char *NodeId ();
 
48742
  /** Get the name of the node. Can be compared with NodeId(). */
19332
48743
  const char *NodeName () const { return NodeId (); }
19333
 
  // special new / delete with reusing memory
 
48744
 
 
48745
public:
 
48746
  /** Own new operator reusing memory. */
19334
48747
  void *operator new (size_t);
19335
 
  void  operator delete (void *);
 
48748
  /** Own delete operator. */
 
48749
  void operator delete (void *);
19336
48750
   private:
19337
48751
  typedef CT_DestructorName CCExprResolveExpr;
19338
48752
 
19339
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48753
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19340
48754
 public :
19341
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
48755
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19342
48756
  typedef CT_DestructorName CExprResolveExpr;
19343
48757
 
19344
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48758
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19345
48759
 public :
19346
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19347
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48760
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48761
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19348
48762
};
19349
48763
 
 
48764
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
48765
 *  Tree node representing a template name. */
19350
48766
 
19351
 
#line 19352 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48767
#line 48768 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
19352
48768
} // closed Puma
 
48769
class CCExprResolve;
 
48770
class CExprResolve;
19353
48771
class WinIfExists;
19354
48772
class WinImportHandler;
19355
48773
class WinMacros;
19356
 
class CMatchSyntax;
19357
 
class ExtGnu;
 
48774
class WinAsm;
 
48775
class WinDeclSpecs;
 
48776
class WinMemberExplSpec;
 
48777
class WinTypeKeywords;
 
48778
class WinFriend;
19358
48779
class ExtAC;
19359
48780
class ExtACBuilderCoupling;
19360
48781
class ExtACSyntaxCoupling;
19361
48782
class ExtACTree;
19362
48783
class ExtACKeywords;
19363
 
class WinAsm;
19364
 
class WinDeclSpecs;
19365
 
class WinMemberExplSpec;
19366
 
class WinTypeKeywords;
 
48784
class ExtGnu;
19367
48785
class PragmaOnceUnitState;
19368
48786
class PragmaOnce;
19369
 
class CCExprResolve;
19370
 
class CExprResolve;
19371
 
namespace Puma {
19372
 
 
19373
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48787
class CMatchSyntax;
 
48788
namespace Puma {
 
48789
 
 
48790
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48791
 
 
48792
#line 48793 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48793
} // closed Puma
 
48794
 
 
48795
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48796
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48797
#include "CCExprResolveH.ah"
 
48798
#endif
 
48799
namespace Puma {
 
48800
 
 
48801
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48802
 
 
48803
#line 48804 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48804
} // closed Puma
 
48805
 
 
48806
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48807
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48808
#include "CExprResolveH.ah"
 
48809
#endif
 
48810
namespace Puma {
 
48811
 
 
48812
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19374
48813
class CT_TemplateName : public CT_SpecialName {
19375
 
#line 19376 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48814
#line 48815 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48815
  friend class ::CCExprResolve;
 
48816
  friend class ::CExprResolve;
19376
48817
  friend class ::WinIfExists;
19377
48818
  friend class ::WinImportHandler;
19378
48819
  friend class ::WinMacros;
19379
 
  friend class ::CMatchSyntax;
19380
 
  friend class ::ExtGnu;
 
48820
  friend class ::WinAsm;
 
48821
  friend class ::WinDeclSpecs;
 
48822
  friend class ::WinMemberExplSpec;
 
48823
  friend class ::WinTypeKeywords;
 
48824
  friend class ::WinFriend;
19381
48825
  friend class ::ExtAC;
19382
48826
  friend class ::ExtACBuilderCoupling;
19383
48827
  friend class ::ExtACSyntaxCoupling;
19384
48828
  friend class ::ExtACTree;
19385
48829
  friend class ::ExtACKeywords;
19386
 
  friend class ::WinAsm;
19387
 
  friend class ::WinDeclSpecs;
19388
 
  friend class ::WinMemberExplSpec;
19389
 
  friend class ::WinTypeKeywords;
 
48830
  friend class ::ExtGnu;
19390
48831
  friend class ::PragmaOnceUnitState;
19391
48832
  friend class ::PragmaOnce;
19392
 
  friend class ::CCExprResolve;
19393
 
  friend class ::CExprResolve;
 
48833
  friend class ::CMatchSyntax;
19394
48834
 
19395
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48835
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19396
48836
 
19397
48837
public:
 
48838
  /** Constructor.
 
48839
   *  \param n The template class or function name.
 
48840
   *  \param a The template argument list. */
19398
48841
  CT_TemplateName (CTree *n, CTree *a) 
19399
48842
   { AddSon (n); AddSon (a); }
 
48843
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19400
48844
  static const char *NodeId ();
 
48845
  /** Get the name of the node. Can be compared with NodeId(). */
19401
48846
  const char *NodeName () const { return NodeId (); }
 
48847
  /** Get the template argument list. */
19402
48848
  CT_TemplateArgList *Arguments () const 
19403
48849
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
48850
  /** Get the template class or function name. */
19404
48851
  CT_SimpleName *TemplateName () const 
19405
48852
   { return (CT_SimpleName*)Son (Sons ()-2); }
19406
48853
  // may change in the future
19407
48854
  const char *Text () const { return TemplateName ()->Text (); }
19408
 
  // special new / delete with reusing memory
 
48855
 
 
48856
public:
 
48857
  /** Own new operator reusing memory. */
19409
48858
  void *operator new (size_t);
19410
 
  void  operator delete (void *);
 
48859
  /** Own delete operator. */
 
48860
  void operator delete (void *);
19411
48861
   private:
19412
48862
  typedef CT_TemplateName CCExprResolveExpr;
19413
48863
 
19414
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48864
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19415
48865
 public :
19416
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
48866
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19417
48867
  typedef CT_TemplateName CExprResolveExpr;
19418
48868
 
19419
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48869
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19420
48870
 public :
19421
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19422
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48871
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48872
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19423
48873
};
19424
48874
 
 
48875
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
48876
 *  Tree node representing the name of an overloaded operator. */
19425
48877
 
19426
 
#line 19427 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48878
#line 48879 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
19427
48879
} // closed Puma
 
48880
class CCExprResolve;
 
48881
class CExprResolve;
19428
48882
class WinIfExists;
19429
48883
class WinImportHandler;
19430
48884
class WinMacros;
19431
 
class CMatchSyntax;
19432
 
class ExtGnu;
 
48885
class WinAsm;
 
48886
class WinDeclSpecs;
 
48887
class WinMemberExplSpec;
 
48888
class WinTypeKeywords;
 
48889
class WinFriend;
19433
48890
class ExtAC;
19434
48891
class ExtACBuilderCoupling;
19435
48892
class ExtACSyntaxCoupling;
19436
48893
class ExtACTree;
19437
48894
class ExtACKeywords;
19438
 
class WinAsm;
19439
 
class WinDeclSpecs;
19440
 
class WinMemberExplSpec;
19441
 
class WinTypeKeywords;
 
48895
class ExtGnu;
19442
48896
class PragmaOnceUnitState;
19443
48897
class PragmaOnce;
19444
 
class CCExprResolve;
19445
 
class CExprResolve;
19446
 
namespace Puma {
19447
 
 
19448
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48898
class CMatchSyntax;
 
48899
namespace Puma {
 
48900
 
 
48901
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48902
 
 
48903
#line 48904 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48904
} // closed Puma
 
48905
 
 
48906
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48907
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48908
#include "CCExprResolveH.ah"
 
48909
#endif
 
48910
namespace Puma {
 
48911
 
 
48912
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48913
 
 
48914
#line 48915 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48915
} // closed Puma
 
48916
 
 
48917
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48918
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48919
#include "CExprResolveH.ah"
 
48920
#endif
 
48921
namespace Puma {
 
48922
 
 
48923
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19449
48924
class CT_OperatorName : public CT_SpecialName {
19450
 
#line 19451 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48925
#line 48926 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48926
  friend class ::CCExprResolve;
 
48927
  friend class ::CExprResolve;
19451
48928
  friend class ::WinIfExists;
19452
48929
  friend class ::WinImportHandler;
19453
48930
  friend class ::WinMacros;
19454
 
  friend class ::CMatchSyntax;
19455
 
  friend class ::ExtGnu;
 
48931
  friend class ::WinAsm;
 
48932
  friend class ::WinDeclSpecs;
 
48933
  friend class ::WinMemberExplSpec;
 
48934
  friend class ::WinTypeKeywords;
 
48935
  friend class ::WinFriend;
19456
48936
  friend class ::ExtAC;
19457
48937
  friend class ::ExtACBuilderCoupling;
19458
48938
  friend class ::ExtACSyntaxCoupling;
19459
48939
  friend class ::ExtACTree;
19460
48940
  friend class ::ExtACKeywords;
19461
 
  friend class ::WinAsm;
19462
 
  friend class ::WinDeclSpecs;
19463
 
  friend class ::WinMemberExplSpec;
19464
 
  friend class ::WinTypeKeywords;
 
48941
  friend class ::ExtGnu;
19465
48942
  friend class ::PragmaOnceUnitState;
19466
48943
  friend class ::PragmaOnce;
19467
 
  friend class ::CCExprResolve;
19468
 
  friend class ::CExprResolve;
 
48944
  friend class ::CMatchSyntax;
19469
48945
 
19470
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48946
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19471
48947
 
19472
48948
  int _oper;
19473
48949
 
19474
48950
public:
19475
 
  enum { // complex operators
19476
 
    FCT_CALL = -100,
19477
 
    SUBSCRIPT,
19478
 
    NEW_ARRAY,
19479
 
    DEL_ARRAY
 
48951
  /** Complex operator types. */
 
48952
  enum { 
 
48953
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
48954
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
48955
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
48956
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
19480
48957
  };
19481
48958
 
19482
48959
public:
19483
 
  CT_OperatorName (CTree *);
19484
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
 
48960
  /** Constructor.
 
48961
   *  \param op The token containing the operator. */
 
48962
  CT_OperatorName (CTree *op);
 
48963
  /** Constructor.
 
48964
   *  \param f The operator function keyword 'operator'.
 
48965
   *  \param op The token containing the operator. 
 
48966
   *  \param o The token of '[' or '('.
 
48967
   *  \param c The token of ']' or ')'. */
 
48968
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
48969
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19485
48970
  static const char *NodeId ();
 
48971
  /** Get the name of the node. Can be compared with NodeId(). */
19486
48972
  const char *NodeName () const { return NodeId (); }
 
48973
  /** Get the operator type (either the token type or one of 
 
48974
   *  the complex operator types). */
19487
48975
  int Operator () const { return _oper; }
19488
 
  // special new / delete with reusing memory
 
48976
 
 
48977
public:
 
48978
  /** Own new operator reusing memory. */
19489
48979
  void *operator new (size_t);
19490
 
  void  operator delete (void *);
 
48980
  /** Own delete operator. */
 
48981
  void operator delete (void *);
19491
48982
   private:
19492
48983
  typedef CT_OperatorName CCExprResolveExpr;
19493
48984
 
19494
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48985
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19495
48986
 public :
19496
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
48987
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19497
48988
  typedef CT_OperatorName CExprResolveExpr;
19498
48989
 
19499
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48990
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19500
48991
 public :
19501
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19502
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48992
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48993
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19503
48994
};
19504
48995
 
 
48996
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
48997
 *  Tree node representing the name of a conversion function. */
19505
48998
 
19506
 
#line 19507 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
48999
#line 49000 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
19507
49000
} // closed Puma
 
49001
class CCExprResolve;
 
49002
class CExprResolve;
19508
49003
class WinIfExists;
19509
49004
class WinImportHandler;
19510
49005
class WinMacros;
19511
 
class CMatchSyntax;
19512
 
class ExtGnu;
 
49006
class WinAsm;
 
49007
class WinDeclSpecs;
 
49008
class WinMemberExplSpec;
 
49009
class WinTypeKeywords;
 
49010
class WinFriend;
19513
49011
class ExtAC;
19514
49012
class ExtACBuilderCoupling;
19515
49013
class ExtACSyntaxCoupling;
19516
49014
class ExtACTree;
19517
49015
class ExtACKeywords;
19518
 
class WinAsm;
19519
 
class WinDeclSpecs;
19520
 
class WinMemberExplSpec;
19521
 
class WinTypeKeywords;
 
49016
class ExtGnu;
19522
49017
class PragmaOnceUnitState;
19523
49018
class PragmaOnce;
19524
 
class CCExprResolve;
19525
 
class CExprResolve;
19526
 
namespace Puma {
19527
 
 
19528
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49019
class CMatchSyntax;
 
49020
namespace Puma {
 
49021
 
 
49022
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49023
 
 
49024
#line 49025 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49025
} // closed Puma
 
49026
 
 
49027
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49028
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49029
#include "CCExprResolveH.ah"
 
49030
#endif
 
49031
namespace Puma {
 
49032
 
 
49033
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49034
 
 
49035
#line 49036 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49036
} // closed Puma
 
49037
 
 
49038
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49039
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49040
#include "CExprResolveH.ah"
 
49041
#endif
 
49042
namespace Puma {
 
49043
 
 
49044
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19529
49045
class CT_ConversionName : public CT_SpecialName {
19530
 
#line 19531 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49046
#line 49047 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49047
  friend class ::CCExprResolve;
 
49048
  friend class ::CExprResolve;
19531
49049
  friend class ::WinIfExists;
19532
49050
  friend class ::WinImportHandler;
19533
49051
  friend class ::WinMacros;
19534
 
  friend class ::CMatchSyntax;
19535
 
  friend class ::ExtGnu;
 
49052
  friend class ::WinAsm;
 
49053
  friend class ::WinDeclSpecs;
 
49054
  friend class ::WinMemberExplSpec;
 
49055
  friend class ::WinTypeKeywords;
 
49056
  friend class ::WinFriend;
19536
49057
  friend class ::ExtAC;
19537
49058
  friend class ::ExtACBuilderCoupling;
19538
49059
  friend class ::ExtACSyntaxCoupling;
19539
49060
  friend class ::ExtACTree;
19540
49061
  friend class ::ExtACKeywords;
19541
 
  friend class ::WinAsm;
19542
 
  friend class ::WinDeclSpecs;
19543
 
  friend class ::WinMemberExplSpec;
19544
 
  friend class ::WinTypeKeywords;
 
49062
  friend class ::ExtGnu;
19545
49063
  friend class ::PragmaOnceUnitState;
19546
49064
  friend class ::PragmaOnce;
19547
 
  friend class ::CCExprResolve;
19548
 
  friend class ::CExprResolve;
 
49065
  friend class ::CMatchSyntax;
19549
49066
 
19550
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49067
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19551
49068
 
19552
49069
public:
19553
 
  CT_ConversionName (CTree *, CTree *);
 
49070
  /** Constructor.
 
49071
   *  \param f The operator function keyword 'operator'.
 
49072
   *  \param t The sub-tree containing the conversion type. */
 
49073
  CT_ConversionName (CTree *f, CTree *t);
 
49074
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19554
49075
  static const char *NodeId ();
 
49076
  /** Get the name of the node. Can be compared with NodeId(). */
19555
49077
  const char *NodeName () const { return NodeId (); }
 
49078
  /** Get the conversion type. */
19556
49079
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
19557
 
  // special new / delete with reusing memory
 
49080
 
 
49081
public:
 
49082
  /** Own new operator reusing memory. */
19558
49083
  void *operator new (size_t);
19559
 
  void  operator delete (void *);
 
49084
  /** Own delete operator. */
 
49085
  void operator delete (void *);
19560
49086
   private:
19561
49087
  typedef CT_ConversionName CCExprResolveExpr;
19562
49088
 
19563
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49089
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19564
49090
 public :
19565
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
49091
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19566
49092
  typedef CT_ConversionName CExprResolveExpr;
19567
49093
 
19568
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49094
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19569
49095
 public :
19570
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19571
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49096
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49097
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19572
49098
};
19573
49099
 
 
49100
/** \class CT_QualName CTree.h Puma/CTree.h
 
49101
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
19574
49102
 
19575
 
#line 19576 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49103
#line 49104 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
19576
49104
} // closed Puma
 
49105
class CCExprResolve;
 
49106
class CExprResolve;
19577
49107
class WinIfExists;
19578
49108
class WinImportHandler;
19579
49109
class WinMacros;
19580
 
class CMatchSyntax;
19581
 
class ExtGnu;
 
49110
class WinAsm;
 
49111
class WinDeclSpecs;
 
49112
class WinMemberExplSpec;
 
49113
class WinTypeKeywords;
 
49114
class WinFriend;
19582
49115
class ExtAC;
19583
49116
class ExtACBuilderCoupling;
19584
49117
class ExtACSyntaxCoupling;
19585
49118
class ExtACTree;
19586
49119
class ExtACKeywords;
19587
 
class WinAsm;
19588
 
class WinDeclSpecs;
19589
 
class WinMemberExplSpec;
19590
 
class WinTypeKeywords;
 
49120
class ExtGnu;
19591
49121
class PragmaOnceUnitState;
19592
49122
class PragmaOnce;
19593
 
class CCExprResolve;
19594
 
class CExprResolve;
19595
 
namespace Puma {
19596
 
 
19597
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49123
class CMatchSyntax;
 
49124
namespace Puma {
 
49125
 
 
49126
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49127
 
 
49128
#line 49129 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49129
} // closed Puma
 
49130
 
 
49131
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49132
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49133
#include "CCExprResolveH.ah"
 
49134
#endif
 
49135
namespace Puma {
 
49136
 
 
49137
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49138
 
 
49139
#line 49140 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49140
} // closed Puma
 
49141
 
 
49142
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49143
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49144
#include "CExprResolveH.ah"
 
49145
#endif
 
49146
namespace Puma {
 
49147
 
 
49148
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19598
49149
class CT_QualName : public CT_SimpleName {
19599
 
#line 19600 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49150
#line 49151 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49151
  friend class ::CCExprResolve;
 
49152
  friend class ::CExprResolve;
19600
49153
  friend class ::WinIfExists;
19601
49154
  friend class ::WinImportHandler;
19602
49155
  friend class ::WinMacros;
19603
 
  friend class ::CMatchSyntax;
19604
 
  friend class ::ExtGnu;
 
49156
  friend class ::WinAsm;
 
49157
  friend class ::WinDeclSpecs;
 
49158
  friend class ::WinMemberExplSpec;
 
49159
  friend class ::WinTypeKeywords;
 
49160
  friend class ::WinFriend;
19605
49161
  friend class ::ExtAC;
19606
49162
  friend class ::ExtACBuilderCoupling;
19607
49163
  friend class ::ExtACSyntaxCoupling;
19608
49164
  friend class ::ExtACTree;
19609
49165
  friend class ::ExtACKeywords;
19610
 
  friend class ::WinAsm;
19611
 
  friend class ::WinDeclSpecs;
19612
 
  friend class ::WinMemberExplSpec;
19613
 
  friend class ::WinTypeKeywords;
 
49166
  friend class ::ExtGnu;
19614
49167
  friend class ::PragmaOnceUnitState;
19615
49168
  friend class ::PragmaOnce;
19616
 
  friend class ::CCExprResolve;
19617
 
  friend class ::CExprResolve;
 
49169
  friend class ::CMatchSyntax;
19618
49170
 
19619
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49171
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19620
49172
 
19621
49173
public:
 
49174
  /** Constructor.
 
49175
   *  \param size The initial number sub-names plus separators. */
19622
49176
  CT_QualName (int size = 3) : 
19623
49177
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
49178
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19624
49179
  static const char *NodeId ();
 
49180
  /** Get the name of the node. Can be compared with NodeId(). */
19625
49181
  const char *NodeName () const { return NodeId (); }
19626
 
  void print (ostream &) const;
 
49182
  /** Print the qualified name on the given stream. 
 
49183
   *  \param os The output stream. */
 
49184
  void print (ostream &os) const;
 
49185
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
19627
49186
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
49187
  /** Get the string containing the last name of the qualified name. */
19628
49188
  const char *Text () const { return Name ()->Text (); }
 
49189
  /** Get the type of the last name. */
19629
49190
  CTypeInfo *Type () const { return Name ()->Type (); }
 
49191
  /** Get the value of the last name. */
19630
49192
  CExprValue *Value () const { return Name ()->Value (); }
 
49193
  /** Get the semantic value object of the last name. */
19631
49194
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
49195
  /** Get the semantic information object of the last name. */
19632
49196
  CSemObject *SemObject () const { return Name ()->SemObject (); }
19633
 
  // special new / delete with reusing memory
 
49197
 
 
49198
public:
 
49199
  /** Own new operator reusing memory. */
19634
49200
  void *operator new (size_t);
19635
 
  void  operator delete (void *);
 
49201
  /** Own delete operator. */
 
49202
  void operator delete (void *);
19636
49203
   private:
19637
49204
  typedef CT_QualName CCExprResolveExpr;
19638
49205
 
19639
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49206
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19640
49207
 public :
19641
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
49208
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19642
49209
  typedef CT_QualName CExprResolveExpr;
19643
49210
 
19644
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49211
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19645
49212
 public :
19646
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19647
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49213
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49214
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19648
49215
};
19649
49216
 
 
49217
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
49218
 *  Tree node representing a qualified name with introducing name separator,
 
49219
 *  e.g. ::X::Y::Z. */
19650
49220
 
19651
 
#line 19652 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49221
#line 49222 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
19652
49222
} // closed Puma
 
49223
class CCExprResolve;
 
49224
class CExprResolve;
19653
49225
class WinIfExists;
19654
49226
class WinImportHandler;
19655
49227
class WinMacros;
19656
 
class CMatchSyntax;
19657
 
class ExtGnu;
 
49228
class WinAsm;
 
49229
class WinDeclSpecs;
 
49230
class WinMemberExplSpec;
 
49231
class WinTypeKeywords;
 
49232
class WinFriend;
19658
49233
class ExtAC;
19659
49234
class ExtACBuilderCoupling;
19660
49235
class ExtACSyntaxCoupling;
19661
49236
class ExtACTree;
19662
49237
class ExtACKeywords;
19663
 
class WinAsm;
19664
 
class WinDeclSpecs;
19665
 
class WinMemberExplSpec;
19666
 
class WinTypeKeywords;
 
49238
class ExtGnu;
19667
49239
class PragmaOnceUnitState;
19668
49240
class PragmaOnce;
19669
 
class CCExprResolve;
19670
 
class CExprResolve;
19671
 
namespace Puma {
19672
 
 
19673
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49241
class CMatchSyntax;
 
49242
namespace Puma {
 
49243
 
 
49244
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49245
 
 
49246
#line 49247 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49247
} // closed Puma
 
49248
 
 
49249
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49250
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49251
#include "CCExprResolveH.ah"
 
49252
#endif
 
49253
namespace Puma {
 
49254
 
 
49255
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49256
 
 
49257
#line 49258 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49258
} // closed Puma
 
49259
 
 
49260
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49261
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49262
#include "CExprResolveH.ah"
 
49263
#endif
 
49264
namespace Puma {
 
49265
 
 
49266
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19674
49267
class CT_RootQualName : public CT_QualName {
19675
 
#line 19676 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49268
#line 49269 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49269
  friend class ::CCExprResolve;
 
49270
  friend class ::CExprResolve;
19676
49271
  friend class ::WinIfExists;
19677
49272
  friend class ::WinImportHandler;
19678
49273
  friend class ::WinMacros;
19679
 
  friend class ::CMatchSyntax;
19680
 
  friend class ::ExtGnu;
 
49274
  friend class ::WinAsm;
 
49275
  friend class ::WinDeclSpecs;
 
49276
  friend class ::WinMemberExplSpec;
 
49277
  friend class ::WinTypeKeywords;
 
49278
  friend class ::WinFriend;
19681
49279
  friend class ::ExtAC;
19682
49280
  friend class ::ExtACBuilderCoupling;
19683
49281
  friend class ::ExtACSyntaxCoupling;
19684
49282
  friend class ::ExtACTree;
19685
49283
  friend class ::ExtACKeywords;
19686
 
  friend class ::WinAsm;
19687
 
  friend class ::WinDeclSpecs;
19688
 
  friend class ::WinMemberExplSpec;
19689
 
  friend class ::WinTypeKeywords;
 
49284
  friend class ::ExtGnu;
19690
49285
  friend class ::PragmaOnceUnitState;
19691
49286
  friend class ::PragmaOnce;
19692
 
  friend class ::CCExprResolve;
19693
 
  friend class ::CExprResolve;
 
49287
  friend class ::CMatchSyntax;
19694
49288
 
19695
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49289
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19696
49290
 
19697
49291
public:
 
49292
  /** Constructor.
 
49293
   *  \param size Initial number of sub-name plus separator. */
19698
49294
  CT_RootQualName (int size = 2) : 
19699
49295
    CT_QualName (size) { AddProperties (INTRO); }
 
49296
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19700
49297
  static const char *NodeId ();
 
49298
  /** Get the name of the node. Can be compared with NodeId(). */
19701
49299
  const char *NodeName () const { return NodeId (); }
19702
 
  // special new / delete with reusing memory
 
49300
 
 
49301
public:
 
49302
  /** Own new operator reusing memory. */
19703
49303
  void *operator new (size_t);
19704
 
  void  operator delete (void *);
 
49304
  /** Own delete operator. */
 
49305
  void operator delete (void *);
19705
49306
   private:
19706
49307
  typedef CT_RootQualName CCExprResolveExpr;
19707
49308
 
19708
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49309
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19709
49310
 public :
19710
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
49311
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19711
49312
  typedef CT_RootQualName CExprResolveExpr;
19712
49313
 
19713
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49314
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19714
49315
 public :
19715
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19716
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49316
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49317
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19717
49318
};
19718
49319
 
 
49320
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
49321
 *  Tree node representing a binary expression, e.g. a+b. */
19719
49322
 
19720
 
#line 19721 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49323
#line 49324 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
19721
49324
} // closed Puma
 
49325
class CCExprResolve;
 
49326
class CExprResolve;
19722
49327
class WinIfExists;
19723
49328
class WinImportHandler;
19724
49329
class WinMacros;
19725
 
class CMatchSyntax;
19726
 
class ExtGnu;
 
49330
class WinAsm;
 
49331
class WinDeclSpecs;
 
49332
class WinMemberExplSpec;
 
49333
class WinTypeKeywords;
 
49334
class WinFriend;
19727
49335
class ExtAC;
19728
49336
class ExtACBuilderCoupling;
19729
49337
class ExtACSyntaxCoupling;
19730
49338
class ExtACTree;
19731
49339
class ExtACKeywords;
19732
 
class WinAsm;
19733
 
class WinDeclSpecs;
19734
 
class WinMemberExplSpec;
19735
 
class WinTypeKeywords;
 
49340
class ExtGnu;
19736
49341
class PragmaOnceUnitState;
19737
49342
class PragmaOnce;
19738
 
class CCExprResolve;
19739
 
class CExprResolve;
19740
 
namespace Puma {
19741
 
 
19742
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19743
 
class CT_BinaryExpr : public CT_Expression {
19744
 
#line 19745 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49343
class CMatchSyntax;
 
49344
namespace Puma {
 
49345
 
 
49346
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49347
 
 
49348
#line 49349 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49349
} // closed Puma
 
49350
 
 
49351
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49352
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49353
#include "CCExprResolveH.ah"
 
49354
#endif
 
49355
namespace Puma {
 
49356
 
 
49357
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49358
 
 
49359
#line 49360 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49360
} // closed Puma
 
49361
 
 
49362
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49363
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49364
#include "CExprResolveH.ah"
 
49365
#endif
 
49366
namespace Puma {
 
49367
 
 
49368
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49369
class CT_BinaryExpr : public CT_Call {
 
49370
#line 49371 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49371
  friend class ::CCExprResolve;
 
49372
  friend class ::CExprResolve;
19745
49373
  friend class ::WinIfExists;
19746
49374
  friend class ::WinImportHandler;
19747
49375
  friend class ::WinMacros;
19748
 
  friend class ::CMatchSyntax;
19749
 
  friend class ::ExtGnu;
 
49376
  friend class ::WinAsm;
 
49377
  friend class ::WinDeclSpecs;
 
49378
  friend class ::WinMemberExplSpec;
 
49379
  friend class ::WinTypeKeywords;
 
49380
  friend class ::WinFriend;
19750
49381
  friend class ::ExtAC;
19751
49382
  friend class ::ExtACBuilderCoupling;
19752
49383
  friend class ::ExtACSyntaxCoupling;
19753
49384
  friend class ::ExtACTree;
19754
49385
  friend class ::ExtACKeywords;
19755
 
  friend class ::WinAsm;
19756
 
  friend class ::WinDeclSpecs;
19757
 
  friend class ::WinMemberExplSpec;
19758
 
  friend class ::WinTypeKeywords;
 
49386
  friend class ::ExtGnu;
19759
49387
  friend class ::PragmaOnceUnitState;
19760
49388
  friend class ::PragmaOnce;
19761
 
  friend class ::CCExprResolve;
19762
 
  friend class ::CExprResolve;
 
49389
  friend class ::CMatchSyntax;
19763
49390
 
19764
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49391
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19765
49392
 
19766
49393
  CTree *sons[3]; // expr, oper, expr
19767
49394
 
19768
49395
public:
 
49396
  /** Constructor. 
 
49397
   *  \param l Left hand side of the expression. 
 
49398
   *  \param o The operator token. 
 
49399
   *  \param r Right hand side of the expression. */
19769
49400
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
19770
 
    sons[0] = l; sons[1] = o; sons[2] = r;
 
49401
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
19771
49402
  }
 
49403
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19772
49404
  static const char *NodeId ();
 
49405
  /** Get the name of the node. Can be compared with NodeId(). */
19773
49406
  const char *NodeName () const { return NodeId (); }
 
49407
  /** Get the number of sons. */
19774
49408
  int Sons () const { return 3; }
 
49409
  /** Get the n-th son.
 
49410
   *  \param n The index of the son.
 
49411
   *  \return The n-th son or NULL. */
19775
49412
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
49413
  /** Replace a son.
 
49414
   *  \param old_son The son to replace.
 
49415
   *  \param new_son The new son. */
19776
49416
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
19777
49417
    CTree::ReplaceSon (sons, 3, old_son, new_son);
19778
49418
  }
19779
49419
   private:
19780
49420
  typedef CT_BinaryExpr CCExprResolveExpr;
19781
49421
 
19782
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49422
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19783
49423
 public :
19784
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
49424
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19785
49425
  typedef CT_BinaryExpr CExprResolveExpr;
19786
49426
 
19787
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49427
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19788
49428
 public :
19789
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19790
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49429
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49430
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19791
49431
};
19792
49432
 
 
49433
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
49434
 *  Tree node representing a member pointer expression, e.g. a->b. */
19793
49435
 
19794
 
#line 19795 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49436
#line 49437 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
19795
49437
} // closed Puma
 
49438
class CCExprResolve;
 
49439
class CExprResolve;
19796
49440
class WinIfExists;
19797
49441
class WinImportHandler;
19798
49442
class WinMacros;
19799
 
class CMatchSyntax;
19800
 
class ExtGnu;
 
49443
class WinAsm;
 
49444
class WinDeclSpecs;
 
49445
class WinMemberExplSpec;
 
49446
class WinTypeKeywords;
 
49447
class WinFriend;
19801
49448
class ExtAC;
19802
49449
class ExtACBuilderCoupling;
19803
49450
class ExtACSyntaxCoupling;
19804
49451
class ExtACTree;
19805
49452
class ExtACKeywords;
19806
 
class WinAsm;
19807
 
class WinDeclSpecs;
19808
 
class WinMemberExplSpec;
19809
 
class WinTypeKeywords;
 
49453
class ExtGnu;
19810
49454
class PragmaOnceUnitState;
19811
49455
class PragmaOnce;
19812
 
class CCExprResolve;
19813
 
class CExprResolve;
19814
 
namespace Puma {
19815
 
 
19816
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19817
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
19818
 
#line 19819 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49456
class CMatchSyntax;
 
49457
namespace Puma {
 
49458
 
 
49459
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49460
 
 
49461
#line 49462 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49462
} // closed Puma
 
49463
 
 
49464
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49465
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49466
#include "CCExprResolveH.ah"
 
49467
#endif
 
49468
namespace Puma {
 
49469
 
 
49470
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49471
 
 
49472
#line 49473 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49473
} // closed Puma
 
49474
 
 
49475
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49476
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49477
#include "CExprResolveH.ah"
 
49478
#endif
 
49479
namespace Puma {
 
49480
 
 
49481
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49482
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
49483
#line 49484 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49484
  friend class ::CCExprResolve;
 
49485
  friend class ::CExprResolve;
19819
49486
  friend class ::WinIfExists;
19820
49487
  friend class ::WinImportHandler;
19821
49488
  friend class ::WinMacros;
19822
 
  friend class ::CMatchSyntax;
19823
 
  friend class ::ExtGnu;
 
49489
  friend class ::WinAsm;
 
49490
  friend class ::WinDeclSpecs;
 
49491
  friend class ::WinMemberExplSpec;
 
49492
  friend class ::WinTypeKeywords;
 
49493
  friend class ::WinFriend;
19824
49494
  friend class ::ExtAC;
19825
49495
  friend class ::ExtACBuilderCoupling;
19826
49496
  friend class ::ExtACSyntaxCoupling;
19827
49497
  friend class ::ExtACTree;
19828
49498
  friend class ::ExtACKeywords;
19829
 
  friend class ::WinAsm;
19830
 
  friend class ::WinDeclSpecs;
19831
 
  friend class ::WinMemberExplSpec;
19832
 
  friend class ::WinTypeKeywords;
 
49499
  friend class ::ExtGnu;
19833
49500
  friend class ::PragmaOnceUnitState;
19834
49501
  friend class ::PragmaOnce;
19835
 
  friend class ::CCExprResolve;
19836
 
  friend class ::CExprResolve;
19837
 
 
19838
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19839
 
 
 
49502
  friend class ::CMatchSyntax;
 
49503
 
 
49504
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49505
 
 
49506
  CTree *sons[3]; // expr, oper, expr
 
49507
  
19840
49508
public:
19841
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
19842
 
    CT_BinaryExpr (e, o, i) {}
 
49509
  /** Constructor.
 
49510
   *  \param e Expression on which to call the member.
 
49511
   *  \param o The arrow operator token.
 
49512
   *  \param i The member name. */
 
49513
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
49514
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
49515
  }
 
49516
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19843
49517
  static const char *NodeId ();
 
49518
  /** Get the name of the node. Can be compared with NodeId(). */
19844
49519
  const char *NodeName () const { return NodeId (); }
19845
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
49520
  /** Get the number of sons. */
 
49521
  int Sons () const { return 3; }
 
49522
  /** Get the n-th son.
 
49523
   *  \param n The index of the son.
 
49524
   *  \return The n-th son or NULL. */
 
49525
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
49526
  /** Replace a son.
 
49527
   *  \param old_son The son to replace.
 
49528
   *  \param new_son The new son. */
 
49529
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
49530
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
49531
  }
19846
49532
   private:
19847
49533
  typedef CT_MembPtrExpr CCExprResolveExpr;
19848
49534
 
19849
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49535
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19850
49536
 public :
19851
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
49537
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19852
49538
  typedef CT_MembPtrExpr CExprResolveExpr;
19853
49539
 
19854
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49540
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19855
49541
 public :
19856
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19857
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49542
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49543
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19858
49544
};
19859
49545
 
 
49546
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
49547
 *  Tree node representing a member reference expression, e.g. a.b. */
19860
49548
 
19861
 
#line 19862 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49549
#line 49550 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
19862
49550
} // closed Puma
 
49551
class CCExprResolve;
 
49552
class CExprResolve;
19863
49553
class WinIfExists;
19864
49554
class WinImportHandler;
19865
49555
class WinMacros;
19866
 
class CMatchSyntax;
19867
 
class ExtGnu;
 
49556
class WinAsm;
 
49557
class WinDeclSpecs;
 
49558
class WinMemberExplSpec;
 
49559
class WinTypeKeywords;
 
49560
class WinFriend;
19868
49561
class ExtAC;
19869
49562
class ExtACBuilderCoupling;
19870
49563
class ExtACSyntaxCoupling;
19871
49564
class ExtACTree;
19872
49565
class ExtACKeywords;
19873
 
class WinAsm;
19874
 
class WinDeclSpecs;
19875
 
class WinMemberExplSpec;
19876
 
class WinTypeKeywords;
 
49566
class ExtGnu;
19877
49567
class PragmaOnceUnitState;
19878
49568
class PragmaOnce;
19879
 
class CCExprResolve;
19880
 
class CExprResolve;
19881
 
namespace Puma {
19882
 
 
19883
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49569
class CMatchSyntax;
 
49570
namespace Puma {
 
49571
 
 
49572
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49573
 
 
49574
#line 49575 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49575
} // closed Puma
 
49576
 
 
49577
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49578
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49579
#include "CCExprResolveH.ah"
 
49580
#endif
 
49581
namespace Puma {
 
49582
 
 
49583
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49584
 
 
49585
#line 49586 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49586
} // closed Puma
 
49587
 
 
49588
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49589
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49590
#include "CExprResolveH.ah"
 
49591
#endif
 
49592
namespace Puma {
 
49593
 
 
49594
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19884
49595
class CT_MembRefExpr : public CT_MembPtrExpr {
19885
 
#line 19886 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49596
#line 49597 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49597
  friend class ::CCExprResolve;
 
49598
  friend class ::CExprResolve;
19886
49599
  friend class ::WinIfExists;
19887
49600
  friend class ::WinImportHandler;
19888
49601
  friend class ::WinMacros;
19889
 
  friend class ::CMatchSyntax;
19890
 
  friend class ::ExtGnu;
 
49602
  friend class ::WinAsm;
 
49603
  friend class ::WinDeclSpecs;
 
49604
  friend class ::WinMemberExplSpec;
 
49605
  friend class ::WinTypeKeywords;
 
49606
  friend class ::WinFriend;
19891
49607
  friend class ::ExtAC;
19892
49608
  friend class ::ExtACBuilderCoupling;
19893
49609
  friend class ::ExtACSyntaxCoupling;
19894
49610
  friend class ::ExtACTree;
19895
49611
  friend class ::ExtACKeywords;
19896
 
  friend class ::WinAsm;
19897
 
  friend class ::WinDeclSpecs;
19898
 
  friend class ::WinMemberExplSpec;
19899
 
  friend class ::WinTypeKeywords;
 
49612
  friend class ::ExtGnu;
19900
49613
  friend class ::PragmaOnceUnitState;
19901
49614
  friend class ::PragmaOnce;
19902
 
  friend class ::CCExprResolve;
19903
 
  friend class ::CExprResolve;
 
49615
  friend class ::CMatchSyntax;
19904
49616
 
19905
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49617
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19906
49618
 
19907
49619
public:
 
49620
  /** Constructor.
 
49621
   *  \param e Expression on which to call the member.
 
49622
   *  \param o The dot operator.
 
49623
   *  \param i The member name. */
19908
49624
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
19909
49625
    CT_MembPtrExpr (e, o, i) {}
 
49626
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19910
49627
  static const char *NodeId ();
 
49628
  /** Get the name of the node. Can be compared with NodeId(). */
19911
49629
  const char *NodeName () const { return NodeId (); }
19912
49630
   private:
19913
49631
  typedef CT_MembRefExpr CCExprResolveExpr;
19914
49632
 
19915
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49633
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19916
49634
 public :
19917
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
49635
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19918
49636
  typedef CT_MembRefExpr CExprResolveExpr;
19919
49637
 
19920
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49638
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19921
49639
 public :
19922
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19923
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49640
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49641
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19924
49642
};
19925
49643
 
 
49644
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
49645
 *  Base class for tree nodes representing unary expressions. */
19926
49646
 
19927
 
#line 19928 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49647
#line 49648 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
19928
49648
} // closed Puma
 
49649
class CCExprResolve;
 
49650
class CExprResolve;
19929
49651
class WinIfExists;
19930
49652
class WinImportHandler;
19931
49653
class WinMacros;
19932
 
class CMatchSyntax;
19933
 
class ExtGnu;
 
49654
class WinAsm;
 
49655
class WinDeclSpecs;
 
49656
class WinMemberExplSpec;
 
49657
class WinTypeKeywords;
 
49658
class WinFriend;
19934
49659
class ExtAC;
19935
49660
class ExtACBuilderCoupling;
19936
49661
class ExtACSyntaxCoupling;
19937
49662
class ExtACTree;
19938
49663
class ExtACKeywords;
19939
 
class WinAsm;
19940
 
class WinDeclSpecs;
19941
 
class WinMemberExplSpec;
19942
 
class WinTypeKeywords;
 
49664
class ExtGnu;
19943
49665
class PragmaOnceUnitState;
19944
49666
class PragmaOnce;
19945
 
class CCExprResolve;
19946
 
class CExprResolve;
19947
 
namespace Puma {
19948
 
 
19949
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19950
 
class CT_UnaryExpr : public CT_Expression {
19951
 
#line 19952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49667
class CMatchSyntax;
 
49668
namespace Puma {
 
49669
 
 
49670
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49671
 
 
49672
#line 49673 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49673
} // closed Puma
 
49674
 
 
49675
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49676
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49677
#include "CCExprResolveH.ah"
 
49678
#endif
 
49679
namespace Puma {
 
49680
 
 
49681
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49682
 
 
49683
#line 49684 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49684
} // closed Puma
 
49685
 
 
49686
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49687
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49688
#include "CExprResolveH.ah"
 
49689
#endif
 
49690
namespace Puma {
 
49691
 
 
49692
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49693
class CT_UnaryExpr : public CT_Call {
 
49694
#line 49695 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49695
  friend class ::CCExprResolve;
 
49696
  friend class ::CExprResolve;
19952
49697
  friend class ::WinIfExists;
19953
49698
  friend class ::WinImportHandler;
19954
49699
  friend class ::WinMacros;
19955
 
  friend class ::CMatchSyntax;
19956
 
  friend class ::ExtGnu;
 
49700
  friend class ::WinAsm;
 
49701
  friend class ::WinDeclSpecs;
 
49702
  friend class ::WinMemberExplSpec;
 
49703
  friend class ::WinTypeKeywords;
 
49704
  friend class ::WinFriend;
19957
49705
  friend class ::ExtAC;
19958
49706
  friend class ::ExtACBuilderCoupling;
19959
49707
  friend class ::ExtACSyntaxCoupling;
19960
49708
  friend class ::ExtACTree;
19961
49709
  friend class ::ExtACKeywords;
19962
 
  friend class ::WinAsm;
19963
 
  friend class ::WinDeclSpecs;
19964
 
  friend class ::WinMemberExplSpec;
19965
 
  friend class ::WinTypeKeywords;
 
49710
  friend class ::ExtGnu;
19966
49711
  friend class ::PragmaOnceUnitState;
19967
49712
  friend class ::PragmaOnce;
19968
 
  friend class ::CCExprResolve;
19969
 
  friend class ::CExprResolve;
 
49713
  friend class ::CMatchSyntax;
19970
49714
 
19971
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49715
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19972
49716
 
19973
49717
  CTree *sons[2]; // oper, expr
19974
49718
 
19975
49719
public:
19976
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
 
49720
  /** Constructor.
 
49721
   *  \param o The unary operator.
 
49722
   *  \param e The expression on which the operator is invoked. */
 
49723
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
49724
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19977
49725
  static const char *NodeId ();
 
49726
  /** Get the name of the node. Can be compared with NodeId(). */
19978
49727
  const char *NodeName () const { return NodeId (); }
 
49728
  /** Get the number of sons. */
19979
49729
  int Sons () const { return 2; }
 
49730
  /** Get the n-th son.
 
49731
   *  \param n The index of the son.
 
49732
   *  \return The n-th son or NULL. */
19980
49733
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
49734
  /** Replace a son.
 
49735
   *  \param old_son The son to replace.
 
49736
   *  \param new_son The new son. */
19981
49737
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
19982
49738
    CTree::ReplaceSon (sons, 2, old_son, new_son);
19983
49739
  }
 
49740
  /** Get the expression node. */
19984
49741
  CTree *Expr () const { return sons[1]; }
19985
49742
   private:
19986
49743
  typedef CT_UnaryExpr CCExprResolveExpr;
19987
49744
 
19988
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49745
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19989
49746
 public :
19990
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
49747
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19991
49748
  typedef CT_UnaryExpr CExprResolveExpr;
19992
49749
 
19993
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49750
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19994
49751
 public :
19995
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19996
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49752
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49753
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19997
49754
};
19998
49755
 
 
49756
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
49757
 *  Tree node representing a postfix expression, e.g. a++. */
19999
49758
 
20000
 
#line 20001 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49759
#line 49760 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
20001
49760
} // closed Puma
 
49761
class CCExprResolve;
 
49762
class CExprResolve;
20002
49763
class WinIfExists;
20003
49764
class WinImportHandler;
20004
49765
class WinMacros;
20005
 
class CMatchSyntax;
20006
 
class ExtGnu;
 
49766
class WinAsm;
 
49767
class WinDeclSpecs;
 
49768
class WinMemberExplSpec;
 
49769
class WinTypeKeywords;
 
49770
class WinFriend;
20007
49771
class ExtAC;
20008
49772
class ExtACBuilderCoupling;
20009
49773
class ExtACSyntaxCoupling;
20010
49774
class ExtACTree;
20011
49775
class ExtACKeywords;
20012
 
class WinAsm;
20013
 
class WinDeclSpecs;
20014
 
class WinMemberExplSpec;
20015
 
class WinTypeKeywords;
 
49776
class ExtGnu;
20016
49777
class PragmaOnceUnitState;
20017
49778
class PragmaOnce;
20018
 
class CCExprResolve;
20019
 
class CExprResolve;
20020
 
namespace Puma {
20021
 
 
20022
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49779
class CMatchSyntax;
 
49780
namespace Puma {
 
49781
 
 
49782
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49783
 
 
49784
#line 49785 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49785
} // closed Puma
 
49786
 
 
49787
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49788
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49789
#include "CCExprResolveH.ah"
 
49790
#endif
 
49791
namespace Puma {
 
49792
 
 
49793
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49794
 
 
49795
#line 49796 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49796
} // closed Puma
 
49797
 
 
49798
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49799
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49800
#include "CExprResolveH.ah"
 
49801
#endif
 
49802
namespace Puma {
 
49803
 
 
49804
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20023
49805
class CT_PostfixExpr : public CT_UnaryExpr {
20024
 
#line 20025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49806
#line 49807 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49807
  friend class ::CCExprResolve;
 
49808
  friend class ::CExprResolve;
20025
49809
  friend class ::WinIfExists;
20026
49810
  friend class ::WinImportHandler;
20027
49811
  friend class ::WinMacros;
20028
 
  friend class ::CMatchSyntax;
20029
 
  friend class ::ExtGnu;
 
49812
  friend class ::WinAsm;
 
49813
  friend class ::WinDeclSpecs;
 
49814
  friend class ::WinMemberExplSpec;
 
49815
  friend class ::WinTypeKeywords;
 
49816
  friend class ::WinFriend;
20030
49817
  friend class ::ExtAC;
20031
49818
  friend class ::ExtACBuilderCoupling;
20032
49819
  friend class ::ExtACSyntaxCoupling;
20033
49820
  friend class ::ExtACTree;
20034
49821
  friend class ::ExtACKeywords;
20035
 
  friend class ::WinAsm;
20036
 
  friend class ::WinDeclSpecs;
20037
 
  friend class ::WinMemberExplSpec;
20038
 
  friend class ::WinTypeKeywords;
 
49822
  friend class ::ExtGnu;
20039
49823
  friend class ::PragmaOnceUnitState;
20040
49824
  friend class ::PragmaOnce;
20041
 
  friend class ::CCExprResolve;
20042
 
  friend class ::CExprResolve;
 
49825
  friend class ::CMatchSyntax;
20043
49826
 
20044
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49827
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20045
49828
 
20046
49829
public:
 
49830
  /** Constructor.
 
49831
   *  \param e The expression on which to invoke the operator. 
 
49832
   *  \param o The postfix operator. */
20047
49833
  CT_PostfixExpr (CTree *e, CTree *o) :
20048
49834
    CT_UnaryExpr (e, o) {}
 
49835
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20049
49836
  static const char *NodeId ();
 
49837
  /** Get the name of the node. Can be compared with NodeId(). */
20050
49838
  const char *NodeName () const { return NodeId (); }
20051
49839
   private:
20052
49840
  typedef CT_PostfixExpr CCExprResolveExpr;
20053
49841
 
20054
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49842
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20055
49843
 public :
20056
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
49844
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20057
49845
  typedef CT_PostfixExpr CExprResolveExpr;
20058
49846
 
20059
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49847
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20060
49848
 public :
20061
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20062
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49849
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49850
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20063
49851
};
20064
49852
 
 
49853
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
49854
 *  Tree node representing an address expression, e.g. &a. */
20065
49855
 
20066
 
#line 20067 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49856
#line 49857 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
20067
49857
} // closed Puma
 
49858
class CCExprResolve;
 
49859
class CExprResolve;
20068
49860
class WinIfExists;
20069
49861
class WinImportHandler;
20070
49862
class WinMacros;
20071
 
class CMatchSyntax;
20072
 
class ExtGnu;
 
49863
class WinAsm;
 
49864
class WinDeclSpecs;
 
49865
class WinMemberExplSpec;
 
49866
class WinTypeKeywords;
 
49867
class WinFriend;
20073
49868
class ExtAC;
20074
49869
class ExtACBuilderCoupling;
20075
49870
class ExtACSyntaxCoupling;
20076
49871
class ExtACTree;
20077
49872
class ExtACKeywords;
20078
 
class WinAsm;
20079
 
class WinDeclSpecs;
20080
 
class WinMemberExplSpec;
20081
 
class WinTypeKeywords;
 
49873
class ExtGnu;
20082
49874
class PragmaOnceUnitState;
20083
49875
class PragmaOnce;
20084
 
class CCExprResolve;
20085
 
class CExprResolve;
20086
 
namespace Puma {
20087
 
 
20088
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49876
class CMatchSyntax;
 
49877
namespace Puma {
 
49878
 
 
49879
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49880
 
 
49881
#line 49882 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49882
} // closed Puma
 
49883
 
 
49884
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49885
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49886
#include "CCExprResolveH.ah"
 
49887
#endif
 
49888
namespace Puma {
 
49889
 
 
49890
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49891
 
 
49892
#line 49893 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49893
} // closed Puma
 
49894
 
 
49895
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49896
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49897
#include "CExprResolveH.ah"
 
49898
#endif
 
49899
namespace Puma {
 
49900
 
 
49901
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20089
49902
class CT_AddrExpr : public CT_UnaryExpr {
20090
 
#line 20091 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49903
#line 49904 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49904
  friend class ::CCExprResolve;
 
49905
  friend class ::CExprResolve;
20091
49906
  friend class ::WinIfExists;
20092
49907
  friend class ::WinImportHandler;
20093
49908
  friend class ::WinMacros;
20094
 
  friend class ::CMatchSyntax;
20095
 
  friend class ::ExtGnu;
 
49909
  friend class ::WinAsm;
 
49910
  friend class ::WinDeclSpecs;
 
49911
  friend class ::WinMemberExplSpec;
 
49912
  friend class ::WinTypeKeywords;
 
49913
  friend class ::WinFriend;
20096
49914
  friend class ::ExtAC;
20097
49915
  friend class ::ExtACBuilderCoupling;
20098
49916
  friend class ::ExtACSyntaxCoupling;
20099
49917
  friend class ::ExtACTree;
20100
49918
  friend class ::ExtACKeywords;
20101
 
  friend class ::WinAsm;
20102
 
  friend class ::WinDeclSpecs;
20103
 
  friend class ::WinMemberExplSpec;
20104
 
  friend class ::WinTypeKeywords;
 
49919
  friend class ::ExtGnu;
20105
49920
  friend class ::PragmaOnceUnitState;
20106
49921
  friend class ::PragmaOnce;
20107
 
  friend class ::CCExprResolve;
20108
 
  friend class ::CExprResolve;
 
49922
  friend class ::CMatchSyntax;
20109
49923
 
20110
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49924
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20111
49925
 
20112
49926
public:
 
49927
  /** Constructor.
 
49928
   *  \param o The address operator, i.e. '&'.
 
49929
   *  \param e The expression from which to take the address. */
20113
49930
  CT_AddrExpr (CTree *o, CTree *e) :
20114
49931
    CT_UnaryExpr (o, e) {}
 
49932
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20115
49933
  static const char *NodeId ();
 
49934
  /** Get the name of the node. Can be compared with NodeId(). */
20116
49935
  const char *NodeName () const { return NodeId (); }
20117
49936
   private:
20118
49937
  typedef CT_AddrExpr CCExprResolveExpr;
20119
49938
 
20120
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49939
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20121
49940
 public :
20122
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
49941
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20123
49942
  typedef CT_AddrExpr CExprResolveExpr;
20124
49943
 
20125
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49944
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20126
49945
 public :
20127
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20128
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49946
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49947
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20129
49948
};
20130
49949
 
 
49950
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
49951
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
20131
49952
 
20132
 
#line 20133 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49953
#line 49954 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
20133
49954
} // closed Puma
 
49955
class CCExprResolve;
 
49956
class CExprResolve;
20134
49957
class WinIfExists;
20135
49958
class WinImportHandler;
20136
49959
class WinMacros;
20137
 
class CMatchSyntax;
20138
 
class ExtGnu;
 
49960
class WinAsm;
 
49961
class WinDeclSpecs;
 
49962
class WinMemberExplSpec;
 
49963
class WinTypeKeywords;
 
49964
class WinFriend;
20139
49965
class ExtAC;
20140
49966
class ExtACBuilderCoupling;
20141
49967
class ExtACSyntaxCoupling;
20142
49968
class ExtACTree;
20143
49969
class ExtACKeywords;
20144
 
class WinAsm;
20145
 
class WinDeclSpecs;
20146
 
class WinMemberExplSpec;
20147
 
class WinTypeKeywords;
 
49970
class ExtGnu;
20148
49971
class PragmaOnceUnitState;
20149
49972
class PragmaOnce;
20150
 
class CCExprResolve;
20151
 
class CExprResolve;
20152
 
namespace Puma {
20153
 
 
20154
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49973
class CMatchSyntax;
 
49974
namespace Puma {
 
49975
 
 
49976
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49977
 
 
49978
#line 49979 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49979
} // closed Puma
 
49980
 
 
49981
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49982
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49983
#include "CCExprResolveH.ah"
 
49984
#endif
 
49985
namespace Puma {
 
49986
 
 
49987
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49988
 
 
49989
#line 49990 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
49990
} // closed Puma
 
49991
 
 
49992
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49993
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49994
#include "CExprResolveH.ah"
 
49995
#endif
 
49996
namespace Puma {
 
49997
 
 
49998
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20155
49999
class CT_DerefExpr : public CT_UnaryExpr {
20156
 
#line 20157 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50000
#line 50001 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50001
  friend class ::CCExprResolve;
 
50002
  friend class ::CExprResolve;
20157
50003
  friend class ::WinIfExists;
20158
50004
  friend class ::WinImportHandler;
20159
50005
  friend class ::WinMacros;
20160
 
  friend class ::CMatchSyntax;
20161
 
  friend class ::ExtGnu;
 
50006
  friend class ::WinAsm;
 
50007
  friend class ::WinDeclSpecs;
 
50008
  friend class ::WinMemberExplSpec;
 
50009
  friend class ::WinTypeKeywords;
 
50010
  friend class ::WinFriend;
20162
50011
  friend class ::ExtAC;
20163
50012
  friend class ::ExtACBuilderCoupling;
20164
50013
  friend class ::ExtACSyntaxCoupling;
20165
50014
  friend class ::ExtACTree;
20166
50015
  friend class ::ExtACKeywords;
20167
 
  friend class ::WinAsm;
20168
 
  friend class ::WinDeclSpecs;
20169
 
  friend class ::WinMemberExplSpec;
20170
 
  friend class ::WinTypeKeywords;
 
50016
  friend class ::ExtGnu;
20171
50017
  friend class ::PragmaOnceUnitState;
20172
50018
  friend class ::PragmaOnce;
20173
 
  friend class ::CCExprResolve;
20174
 
  friend class ::CExprResolve;
 
50019
  friend class ::CMatchSyntax;
20175
50020
 
20176
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50021
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20177
50022
 
20178
50023
public:
 
50024
  /** Constructor.
 
50025
   *  \param o The dereferencing operator, i.e. '*'.
 
50026
   *  \param e The expression to dereference. */
20179
50027
  CT_DerefExpr (CTree *o, CTree *e) :
20180
50028
    CT_UnaryExpr (o, e) {}
 
50029
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20181
50030
  static const char *NodeId ();
 
50031
  /** Get the name of the node. Can be compared with NodeId(). */
20182
50032
  const char *NodeName () const { return NodeId (); }
20183
50033
   private:
20184
50034
  typedef CT_DerefExpr CCExprResolveExpr;
20185
50035
 
20186
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
50036
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20187
50037
 public :
20188
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
50038
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20189
50039
  typedef CT_DerefExpr CExprResolveExpr;
20190
50040
 
20191
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
50041
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20192
50042
 public :
20193
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20194
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50043
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
50044
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20195
50045
};
20196
50046
 
 
50047
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
50048
 *  Tree node representing a delete expression, e.g. delete a. */
20197
50049
 
20198
 
#line 20199 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50050
#line 50051 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
20199
50051
} // closed Puma
 
50052
class CCExprResolve;
 
50053
class CExprResolve;
20200
50054
class WinIfExists;
20201
50055
class WinImportHandler;
20202
50056
class WinMacros;
20203
 
class CMatchSyntax;
20204
 
class ExtGnu;
 
50057
class WinAsm;
 
50058
class WinDeclSpecs;
 
50059
class WinMemberExplSpec;
 
50060
class WinTypeKeywords;
 
50061
class WinFriend;
20205
50062
class ExtAC;
20206
50063
class ExtACBuilderCoupling;
20207
50064
class ExtACSyntaxCoupling;
20208
50065
class ExtACTree;
20209
50066
class ExtACKeywords;
20210
 
class WinAsm;
20211
 
class WinDeclSpecs;
20212
 
class WinMemberExplSpec;
20213
 
class WinTypeKeywords;
 
50067
class ExtGnu;
20214
50068
class PragmaOnceUnitState;
20215
50069
class PragmaOnce;
20216
 
class CCExprResolve;
20217
 
class CExprResolve;
20218
 
namespace Puma {
20219
 
 
20220
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50070
class CMatchSyntax;
 
50071
namespace Puma {
 
50072
 
 
50073
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50074
 
 
50075
#line 50076 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50076
} // closed Puma
 
50077
 
 
50078
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50079
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50080
#include "CCExprResolveH.ah"
 
50081
#endif
 
50082
namespace Puma {
 
50083
 
 
50084
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50085
 
 
50086
#line 50087 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50087
} // closed Puma
 
50088
 
 
50089
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50090
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50091
#include "CExprResolveH.ah"
 
50092
#endif
 
50093
namespace Puma {
 
50094
 
 
50095
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20221
50096
class CT_DeleteExpr : public CT_Expression, public CSemObject {
20222
 
#line 20223 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50097
#line 50098 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50098
  friend class ::CCExprResolve;
 
50099
  friend class ::CExprResolve;
20223
50100
  friend class ::WinIfExists;
20224
50101
  friend class ::WinImportHandler;
20225
50102
  friend class ::WinMacros;
20226
 
  friend class ::CMatchSyntax;
20227
 
  friend class ::ExtGnu;
 
50103
  friend class ::WinAsm;
 
50104
  friend class ::WinDeclSpecs;
 
50105
  friend class ::WinMemberExplSpec;
 
50106
  friend class ::WinTypeKeywords;
 
50107
  friend class ::WinFriend;
20228
50108
  friend class ::ExtAC;
20229
50109
  friend class ::ExtACBuilderCoupling;
20230
50110
  friend class ::ExtACSyntaxCoupling;
20231
50111
  friend class ::ExtACTree;
20232
50112
  friend class ::ExtACKeywords;
20233
 
  friend class ::WinAsm;
20234
 
  friend class ::WinDeclSpecs;
20235
 
  friend class ::WinMemberExplSpec;
20236
 
  friend class ::WinTypeKeywords;
 
50113
  friend class ::ExtGnu;
20237
50114
  friend class ::PragmaOnceUnitState;
20238
50115
  friend class ::PragmaOnce;
20239
 
  friend class ::CCExprResolve;
20240
 
  friend class ::CExprResolve;
 
50116
  friend class ::CMatchSyntax;
20241
50117
 
20242
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50118
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20243
50119
 
20244
50120
  CTree *sons[2]; // oper, expr
20245
50121
 
20246
50122
public:
20247
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
 
50123
  /** Constructor.
 
50124
   *  \param op The delete operator.
 
50125
   *  \param e The expression representing the object to delete. */
 
50126
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
50127
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20248
50128
  static const char *NodeId ();
 
50129
  /** Get the name of the node. Can be compared with NodeId(). */
20249
50130
  const char *NodeName () const { return NodeId (); }
 
50131
  /** Get the number of sons. */
20250
50132
  int Sons () const { return 2; }
 
50133
  /** Get the n-th son.
 
50134
   *  \param n The index of the son.
 
50135
   *  \return The n-th son or NULL. */
20251
50136
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
50137
  /** Replace a son.
 
50138
   *  \param old_son The son to replace.
 
50139
   *  \param new_son The new son. */
20252
50140
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20253
50141
    CTree::ReplaceSon (sons, 2, old_son, new_son);
20254
50142
  }
 
50143
  /** Get the expression. */
20255
50144
  CTree *Expr () const { return sons[1]; }
 
50145
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
20256
50146
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
50147
  /** Get the semantic information object. */
20257
50148
  CSemObject *SemObject () const { return (CSemObject*)this; }
20258
50149
   private:
20259
50150
  typedef CT_DeleteExpr CCExprResolveExpr;
20260
50151
 
20261
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
50152
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20262
50153
 public :
20263
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
50154
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20264
50155
  typedef CT_DeleteExpr CExprResolveExpr;
20265
50156
 
20266
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
50157
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20267
50158
 public :
20268
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20269
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50159
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
50160
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20270
50161
};
20271
50162
 
 
50163
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
50164
 *  Tree node representing a new expression, e.g. new A(). */
20272
50165
 
20273
 
#line 20274 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50166
#line 50167 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
20274
50167
} // closed Puma
 
50168
class CCExprResolve;
 
50169
class CExprResolve;
20275
50170
class WinIfExists;
20276
50171
class WinImportHandler;
20277
50172
class WinMacros;
20278
 
class CMatchSyntax;
20279
 
class ExtGnu;
 
50173
class WinAsm;
 
50174
class WinDeclSpecs;
 
50175
class WinMemberExplSpec;
 
50176
class WinTypeKeywords;
 
50177
class WinFriend;
20280
50178
class ExtAC;
20281
50179
class ExtACBuilderCoupling;
20282
50180
class ExtACSyntaxCoupling;
20283
50181
class ExtACTree;
20284
50182
class ExtACKeywords;
20285
 
class WinAsm;
20286
 
class WinDeclSpecs;
20287
 
class WinMemberExplSpec;
20288
 
class WinTypeKeywords;
 
50183
class ExtGnu;
20289
50184
class PragmaOnceUnitState;
20290
50185
class PragmaOnce;
20291
 
class CCExprResolve;
20292
 
class CExprResolve;
20293
 
namespace Puma {
20294
 
 
20295
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50186
class CMatchSyntax;
 
50187
namespace Puma {
 
50188
 
 
50189
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50190
 
 
50191
#line 50192 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50192
} // closed Puma
 
50193
 
 
50194
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50195
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50196
#include "CCExprResolveH.ah"
 
50197
#endif
 
50198
namespace Puma {
 
50199
 
 
50200
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50201
 
 
50202
#line 50203 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50203
} // closed Puma
 
50204
 
 
50205
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50206
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50207
#include "CExprResolveH.ah"
 
50208
#endif
 
50209
namespace Puma {
 
50210
 
 
50211
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20296
50212
class CT_NewExpr : public CT_Expression, public CSemObject {
20297
 
#line 20298 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50213
#line 50214 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50214
  friend class ::CCExprResolve;
 
50215
  friend class ::CExprResolve;
20298
50216
  friend class ::WinIfExists;
20299
50217
  friend class ::WinImportHandler;
20300
50218
  friend class ::WinMacros;
20301
 
  friend class ::CMatchSyntax;
20302
 
  friend class ::ExtGnu;
 
50219
  friend class ::WinAsm;
 
50220
  friend class ::WinDeclSpecs;
 
50221
  friend class ::WinMemberExplSpec;
 
50222
  friend class ::WinTypeKeywords;
 
50223
  friend class ::WinFriend;
20303
50224
  friend class ::ExtAC;
20304
50225
  friend class ::ExtACBuilderCoupling;
20305
50226
  friend class ::ExtACSyntaxCoupling;
20306
50227
  friend class ::ExtACTree;
20307
50228
  friend class ::ExtACKeywords;
20308
 
  friend class ::WinAsm;
20309
 
  friend class ::WinDeclSpecs;
20310
 
  friend class ::WinMemberExplSpec;
20311
 
  friend class ::WinTypeKeywords;
 
50229
  friend class ::ExtGnu;
20312
50230
  friend class ::PragmaOnceUnitState;
20313
50231
  friend class ::PragmaOnce;
20314
 
  friend class ::CCExprResolve;
20315
 
  friend class ::CExprResolve;
 
50232
  friend class ::CMatchSyntax;
20316
50233
 
20317
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50234
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20318
50235
 
20319
50236
  CTree *sons[6]; // oper, placement, open, type, close, init
20320
50237
 
20321
50238
public:
 
50239
  /** Constructor.
 
50240
   *  \param op The new operator.
 
50241
   *  \param p The optional placement expression.
 
50242
   *  \param o The optional left parenthesis around the type identifier.
 
50243
   *  \param t The type identifier specifying the type of the object to create.
 
50244
   *  \param c The optional right parenthesis around the type identifier.
 
50245
   *  \param i The optional initializer. */
20322
50246
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
20323
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
 
50247
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
50248
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
20324
50249
  }
 
50250
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20325
50251
  static const char *NodeId ();
 
50252
  /** Get the name of the node. Can be compared with NodeId(). */
20326
50253
  const char *NodeName () const { return NodeId (); }
 
50254
  /** Get the number of sons. */
20327
50255
  int Sons () const { return CTree::Sons (sons, 6); }
 
50256
  /** Get the n-th son.
 
50257
   *  \param n The index of the son.
 
50258
   *  \return The n-th son or NULL. */
20328
50259
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
50260
  /** Replace a son.
 
50261
   *  \param old_son The son to replace.
 
50262
   *  \param new_son The new son. */
20329
50263
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20330
50264
    CTree::ReplaceSon (sons, 6, old_son, new_son);
20331
50265
  }
 
50266
  /** Get the operator name. */
20332
50267
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
50268
  /** Get the placement expression. */
20333
50269
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
50270
  /** Get the initializer. */
20334
50271
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
50272
  /** Get the type of the object to create. */
20335
50273
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
50274
  /** Get the semantic information object. */
20336
50275
  CSemObject *SemObject () const { return (CSemObject*)this; }
20337
50276
   private:
20338
50277
  typedef CT_NewExpr CCExprResolveExpr;
20339
50278
 
20340
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
50279
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20341
50280
 public :
20342
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
50281
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20343
50282
  typedef CT_NewExpr CExprResolveExpr;
20344
50283
 
20345
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
50284
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20346
50285
 public :
20347
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20348
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50286
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
50287
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20349
50288
};
20350
50289
 
 
50290
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
50291
 *  Tree node representing an if-then expression, 
 
50292
 *  e.g. a>0?a:b or a?:b. */
20351
50293
 
20352
 
#line 20353 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50294
#line 50295 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
20353
50295
} // closed Puma
 
50296
class CCExprResolve;
 
50297
class CExprResolve;
20354
50298
class WinIfExists;
20355
50299
class WinImportHandler;
20356
50300
class WinMacros;
20357
 
class CMatchSyntax;
20358
 
class ExtGnu;
 
50301
class WinAsm;
 
50302
class WinDeclSpecs;
 
50303
class WinMemberExplSpec;
 
50304
class WinTypeKeywords;
 
50305
class WinFriend;
20359
50306
class ExtAC;
20360
50307
class ExtACBuilderCoupling;
20361
50308
class ExtACSyntaxCoupling;
20362
50309
class ExtACTree;
20363
50310
class ExtACKeywords;
20364
 
class WinAsm;
20365
 
class WinDeclSpecs;
20366
 
class WinMemberExplSpec;
20367
 
class WinTypeKeywords;
 
50311
class ExtGnu;
20368
50312
class PragmaOnceUnitState;
20369
50313
class PragmaOnce;
20370
 
class CCExprResolve;
20371
 
class CExprResolve;
20372
 
namespace Puma {
20373
 
 
20374
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50314
class CMatchSyntax;
 
50315
namespace Puma {
 
50316
 
 
50317
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50318
 
 
50319
#line 50320 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50320
} // closed Puma
 
50321
 
 
50322
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50323
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50324
#include "CCExprResolveH.ah"
 
50325
#endif
 
50326
namespace Puma {
 
50327
 
 
50328
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50329
 
 
50330
#line 50331 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50331
} // closed Puma
 
50332
 
 
50333
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50334
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50335
#include "CExprResolveH.ah"
 
50336
#endif
 
50337
namespace Puma {
 
50338
 
 
50339
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20375
50340
class CT_IfThenExpr : public CT_Expression {
20376
 
#line 20377 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50341
#line 50342 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50342
  friend class ::CCExprResolve;
 
50343
  friend class ::CExprResolve;
20377
50344
  friend class ::WinIfExists;
20378
50345
  friend class ::WinImportHandler;
20379
50346
  friend class ::WinMacros;
20380
 
  friend class ::CMatchSyntax;
20381
 
  friend class ::ExtGnu;
 
50347
  friend class ::WinAsm;
 
50348
  friend class ::WinDeclSpecs;
 
50349
  friend class ::WinMemberExplSpec;
 
50350
  friend class ::WinTypeKeywords;
 
50351
  friend class ::WinFriend;
20382
50352
  friend class ::ExtAC;
20383
50353
  friend class ::ExtACBuilderCoupling;
20384
50354
  friend class ::ExtACSyntaxCoupling;
20385
50355
  friend class ::ExtACTree;
20386
50356
  friend class ::ExtACKeywords;
20387
 
  friend class ::WinAsm;
20388
 
  friend class ::WinDeclSpecs;
20389
 
  friend class ::WinMemberExplSpec;
20390
 
  friend class ::WinTypeKeywords;
 
50357
  friend class ::ExtGnu;
20391
50358
  friend class ::PragmaOnceUnitState;
20392
50359
  friend class ::PragmaOnce;
20393
 
  friend class ::CCExprResolve;
20394
 
  friend class ::CExprResolve;
 
50360
  friend class ::CMatchSyntax;
20395
50361
 
20396
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50362
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20397
50363
 
20398
50364
  CTree *sons[5]; // cond, oper, left, colon, right
20399
50365
 
20400
50366
public:
 
50367
  /** Constructor.
 
50368
   *  \param c1 The condition expression.
 
50369
   *  \param o The question mark operator. 
 
50370
   *  \param l The expression to the left of the colon.
 
50371
   *  \param c2 The colon operator.
 
50372
   *  \param r The expression to the right of the colon. */ 
20401
50373
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
20402
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
 
50374
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
50375
    AddSon (sons[3], c2); AddSon (sons[4], r);
20403
50376
  }
 
50377
  /** Constructor.
 
50378
   *  \param c1 The condition expression.
 
50379
   *  \param o The question mark operator. 
 
50380
   *  \param c2 The colon operator.
 
50381
   *  \param r The expression to the right of the colon. */ 
20404
50382
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
20405
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
 
50383
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
50384
    AddSon (sons[3], c2); AddSon (sons[4], r);
20406
50385
  }
 
50386
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20407
50387
  static const char *NodeId ();
 
50388
  /** Get the name of the node. Can be compared with NodeId(). */
20408
50389
  const char *NodeName () const { return NodeId (); }
 
50390
  /** Get the number of sons. */
20409
50391
  int Sons () const { return CTree::Sons (sons, 5); }
 
50392
  /** Get the n-th son.
 
50393
   *  \param n The index of the son.
 
50394
   *  \return The n-th son or NULL. */
20410
50395
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
50396
  /** Get the condition expression. */
20411
50397
  CTree *Condition () const { return sons[0]; }
 
50398
  /** Get the left expression (condition=true). */
20412
50399
  CTree *LeftOperand () const { return sons[2]; }
 
50400
  /** Get the right expression (condition=false). */
20413
50401
  CTree *RightOperand () const { return sons[4]; }
 
50402
  /** Replace a son.
 
50403
   *  \param old_son The son to replace.
 
50404
   *  \param new_son The new son. */
20414
50405
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20415
50406
    CTree::ReplaceSon (sons, 5, old_son, new_son);
20416
50407
  }
20417
50408
   private:
20418
50409
  typedef CT_IfThenExpr CCExprResolveExpr;
20419
50410
 
20420
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
50411
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20421
50412
 public :
20422
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
50413
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20423
50414
  typedef CT_IfThenExpr CExprResolveExpr;
20424
50415
 
20425
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
50416
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20426
50417
 public :
20427
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20428
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50418
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
50419
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20429
50420
};
20430
50421
 
 
50422
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
50423
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
20431
50424
 
20432
 
#line 20433 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50425
#line 50426 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
20433
50426
} // closed Puma
 
50427
class CCExprResolve;
 
50428
class CExprResolve;
20434
50429
class WinIfExists;
20435
50430
class WinImportHandler;
20436
50431
class WinMacros;
20437
 
class CMatchSyntax;
20438
 
class ExtGnu;
 
50432
class WinAsm;
 
50433
class WinDeclSpecs;
 
50434
class WinMemberExplSpec;
 
50435
class WinTypeKeywords;
 
50436
class WinFriend;
20439
50437
class ExtAC;
20440
50438
class ExtACBuilderCoupling;
20441
50439
class ExtACSyntaxCoupling;
20442
50440
class ExtACTree;
20443
50441
class ExtACKeywords;
20444
 
class WinAsm;
20445
 
class WinDeclSpecs;
20446
 
class WinMemberExplSpec;
20447
 
class WinTypeKeywords;
 
50442
class ExtGnu;
20448
50443
class PragmaOnceUnitState;
20449
50444
class PragmaOnce;
20450
 
class CCExprResolve;
20451
 
class CExprResolve;
20452
 
namespace Puma {
20453
 
 
20454
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50445
class CMatchSyntax;
 
50446
namespace Puma {
 
50447
 
 
50448
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50449
 
 
50450
#line 50451 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50451
} // closed Puma
 
50452
 
 
50453
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50454
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50455
#include "CCExprResolveH.ah"
 
50456
#endif
 
50457
namespace Puma {
 
50458
 
 
50459
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50460
 
 
50461
#line 50462 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50462
} // closed Puma
 
50463
 
 
50464
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50465
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50466
#include "CExprResolveH.ah"
 
50467
#endif
 
50468
namespace Puma {
 
50469
 
 
50470
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20455
50471
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
20456
 
#line 20457 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50472
#line 50473 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50473
  friend class ::CCExprResolve;
 
50474
  friend class ::CExprResolve;
20457
50475
  friend class ::WinIfExists;
20458
50476
  friend class ::WinImportHandler;
20459
50477
  friend class ::WinMacros;
20460
 
  friend class ::CMatchSyntax;
20461
 
  friend class ::ExtGnu;
 
50478
  friend class ::WinAsm;
 
50479
  friend class ::WinDeclSpecs;
 
50480
  friend class ::WinMemberExplSpec;
 
50481
  friend class ::WinTypeKeywords;
 
50482
  friend class ::WinFriend;
20462
50483
  friend class ::ExtAC;
20463
50484
  friend class ::ExtACBuilderCoupling;
20464
50485
  friend class ::ExtACSyntaxCoupling;
20465
50486
  friend class ::ExtACTree;
20466
50487
  friend class ::ExtACKeywords;
20467
 
  friend class ::WinAsm;
20468
 
  friend class ::WinDeclSpecs;
20469
 
  friend class ::WinMemberExplSpec;
20470
 
  friend class ::WinTypeKeywords;
 
50488
  friend class ::ExtGnu;
20471
50489
  friend class ::PragmaOnceUnitState;
20472
50490
  friend class ::PragmaOnce;
20473
 
  friend class ::CCExprResolve;
20474
 
  friend class ::CExprResolve;
 
50491
  friend class ::CMatchSyntax;
20475
50492
 
20476
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50493
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20477
50494
 
20478
50495
  CTree *sons[4]; // open, type, close, init
20479
50496
 
20480
50497
public:
 
50498
  /** Constructor.
 
50499
   *  \param r Left parenthesis of the type name.
 
50500
   *  \param t The type name.
 
50501
   *  \param cr Right parenthesis of the type name.
 
50502
   *  \param i The initializer list. */
20481
50503
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
20482
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
 
50504
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
50505
    AddSon (sons[2], cr); AddSon (sons[3], i);
20483
50506
  }
 
50507
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20484
50508
  static const char *NodeId ();
 
50509
  /** Get the name of the node. Can be compared with NodeId(). */
20485
50510
  const char *NodeName () const { return NodeId (); }
 
50511
  /** Get the number of sons. */
20486
50512
  int Sons () const { return 4; }
 
50513
  /** Get the n-th son.
 
50514
   *  \param n The index of the son.
 
50515
   *  \return The n-th son or NULL. */
20487
50516
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
50517
  /** Replace a son.
 
50518
   *  \param old_son The son to replace.
 
50519
   *  \param new_son The new son. */
20488
50520
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20489
50521
    CTree::ReplaceSon (sons, 4, old_son, new_son);
20490
50522
  }
 
50523
  /** Get the type name. */
20491
50524
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
50525
  /** Get the initializer list. */
20492
50526
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
50527
  /** Get the semantic information object. */
20493
50528
  CSemObject *SemObject () const { return (CSemObject*)this; }
20494
50529
   private:
20495
50530
  typedef CT_CmpdLiteral CCExprResolveExpr;
20496
50531
 
20497
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
50532
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20498
50533
 public :
20499
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
50534
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20500
50535
  typedef CT_CmpdLiteral CExprResolveExpr;
20501
50536
 
20502
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
50537
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20503
50538
 public :
20504
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20505
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50539
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
50540
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20506
50541
};
20507
50542
 
 
50543
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
50544
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
20508
50545
 
20509
 
#line 20510 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50546
#line 50547 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
20510
50547
} // closed Puma
 
50548
class CCExprResolve;
 
50549
class CExprResolve;
20511
50550
class WinIfExists;
20512
50551
class WinImportHandler;
20513
50552
class WinMacros;
20514
 
class CMatchSyntax;
20515
 
class ExtGnu;
 
50553
class WinAsm;
 
50554
class WinDeclSpecs;
 
50555
class WinMemberExplSpec;
 
50556
class WinTypeKeywords;
 
50557
class WinFriend;
20516
50558
class ExtAC;
20517
50559
class ExtACBuilderCoupling;
20518
50560
class ExtACSyntaxCoupling;
20519
50561
class ExtACTree;
20520
50562
class ExtACKeywords;
20521
 
class WinAsm;
20522
 
class WinDeclSpecs;
20523
 
class WinMemberExplSpec;
20524
 
class WinTypeKeywords;
 
50563
class ExtGnu;
20525
50564
class PragmaOnceUnitState;
20526
50565
class PragmaOnce;
20527
 
class CCExprResolve;
20528
 
class CExprResolve;
20529
 
namespace Puma {
20530
 
 
20531
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50566
class CMatchSyntax;
 
50567
namespace Puma {
 
50568
 
 
50569
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50570
 
 
50571
#line 50572 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50572
} // closed Puma
 
50573
 
 
50574
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50575
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50576
#include "CCExprResolveH.ah"
 
50577
#endif
 
50578
namespace Puma {
 
50579
 
 
50580
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50581
 
 
50582
#line 50583 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50583
} // closed Puma
 
50584
 
 
50585
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50586
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50587
#include "CExprResolveH.ah"
 
50588
#endif
 
50589
namespace Puma {
 
50590
 
 
50591
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20532
50592
class CT_ConstructExpr : public CT_Expression, public CSemObject {
20533
 
#line 20534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50593
#line 50594 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50594
  friend class ::CCExprResolve;
 
50595
  friend class ::CExprResolve;
20534
50596
  friend class ::WinIfExists;
20535
50597
  friend class ::WinImportHandler;
20536
50598
  friend class ::WinMacros;
20537
 
  friend class ::CMatchSyntax;
20538
 
  friend class ::ExtGnu;
 
50599
  friend class ::WinAsm;
 
50600
  friend class ::WinDeclSpecs;
 
50601
  friend class ::WinMemberExplSpec;
 
50602
  friend class ::WinTypeKeywords;
 
50603
  friend class ::WinFriend;
20539
50604
  friend class ::ExtAC;
20540
50605
  friend class ::ExtACBuilderCoupling;
20541
50606
  friend class ::ExtACSyntaxCoupling;
20542
50607
  friend class ::ExtACTree;
20543
50608
  friend class ::ExtACKeywords;
20544
 
  friend class ::WinAsm;
20545
 
  friend class ::WinDeclSpecs;
20546
 
  friend class ::WinMemberExplSpec;
20547
 
  friend class ::WinTypeKeywords;
 
50609
  friend class ::ExtGnu;
20548
50610
  friend class ::PragmaOnceUnitState;
20549
50611
  friend class ::PragmaOnce;
20550
 
  friend class ::CCExprResolve;
20551
 
  friend class ::CExprResolve;
 
50612
  friend class ::CMatchSyntax;
20552
50613
 
20553
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50614
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20554
50615
 
20555
50616
  CTree *sons[2]; // type, init
20556
50617
 
20557
50618
public:
20558
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
 
50619
  /** Constructor.
 
50620
   *  \param t The type name.
 
50621
   *  \param i The initializer list. */
 
50622
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
50623
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20559
50624
  static const char *NodeId ();
 
50625
  /** Get the name of the node. Can be compared with NodeId(). */
20560
50626
  const char *NodeName () const { return NodeId (); }
 
50627
  /** Get the number of sons. */
20561
50628
  int Sons () const { return 2; }
 
50629
  /** Get the n-th son.
 
50630
   *  \param n The index of the son.
 
50631
   *  \return The n-th son or NULL. */
20562
50632
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
50633
  /** Replace a son.
 
50634
   *  \param old_son The son to replace.
 
50635
   *  \param new_son The new son. */
20563
50636
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20564
50637
    CTree::ReplaceSon (sons, 2, old_son, new_son);
20565
50638
  }
 
50639
  /** Get the type name. */
20566
50640
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
50641
  /** Get the initializer. */
20567
50642
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
50643
  /** Get the semantic information object. */
20568
50644
  CSemObject *SemObject () const { return (CSemObject*)this; }
20569
50645
   private:
20570
50646
  typedef CT_ConstructExpr CCExprResolveExpr;
20571
50647
 
20572
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
50648
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20573
50649
 public :
20574
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
50650
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20575
50651
  typedef CT_ConstructExpr CExprResolveExpr;
20576
50652
 
20577
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
50653
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20578
50654
 public :
20579
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20580
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50655
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
50656
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20581
50657
};
20582
50658
 
 
50659
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
50660
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
20583
50661
 
20584
 
#line 20585 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50662
#line 50663 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
20585
50663
} // closed Puma
 
50664
class CCExprResolve;
 
50665
class CExprResolve;
20586
50666
class WinIfExists;
20587
50667
class WinImportHandler;
20588
50668
class WinMacros;
20589
 
class CMatchSyntax;
20590
 
class ExtGnu;
 
50669
class WinAsm;
 
50670
class WinDeclSpecs;
 
50671
class WinMemberExplSpec;
 
50672
class WinTypeKeywords;
 
50673
class WinFriend;
20591
50674
class ExtAC;
20592
50675
class ExtACBuilderCoupling;
20593
50676
class ExtACSyntaxCoupling;
20594
50677
class ExtACTree;
20595
50678
class ExtACKeywords;
20596
 
class WinAsm;
20597
 
class WinDeclSpecs;
20598
 
class WinMemberExplSpec;
20599
 
class WinTypeKeywords;
 
50679
class ExtGnu;
20600
50680
class PragmaOnceUnitState;
20601
50681
class PragmaOnce;
20602
 
class CCExprResolve;
20603
 
class CExprResolve;
20604
 
namespace Puma {
20605
 
 
20606
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50682
class CMatchSyntax;
 
50683
namespace Puma {
 
50684
 
 
50685
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50686
 
 
50687
#line 50688 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50688
} // closed Puma
 
50689
 
 
50690
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50691
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50692
#include "CCExprResolveH.ah"
 
50693
#endif
 
50694
namespace Puma {
 
50695
 
 
50696
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50697
 
 
50698
#line 50699 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50699
} // closed Puma
 
50700
 
 
50701
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50702
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50703
#include "CExprResolveH.ah"
 
50704
#endif
 
50705
namespace Puma {
 
50706
 
 
50707
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20607
50708
class CT_ThrowExpr : public CT_Expression {
20608
 
#line 20609 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50709
#line 50710 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50710
  friend class ::CCExprResolve;
 
50711
  friend class ::CExprResolve;
20609
50712
  friend class ::WinIfExists;
20610
50713
  friend class ::WinImportHandler;
20611
50714
  friend class ::WinMacros;
20612
 
  friend class ::CMatchSyntax;
20613
 
  friend class ::ExtGnu;
 
50715
  friend class ::WinAsm;
 
50716
  friend class ::WinDeclSpecs;
 
50717
  friend class ::WinMemberExplSpec;
 
50718
  friend class ::WinTypeKeywords;
 
50719
  friend class ::WinFriend;
20614
50720
  friend class ::ExtAC;
20615
50721
  friend class ::ExtACBuilderCoupling;
20616
50722
  friend class ::ExtACSyntaxCoupling;
20617
50723
  friend class ::ExtACTree;
20618
50724
  friend class ::ExtACKeywords;
20619
 
  friend class ::WinAsm;
20620
 
  friend class ::WinDeclSpecs;
20621
 
  friend class ::WinMemberExplSpec;
20622
 
  friend class ::WinTypeKeywords;
 
50725
  friend class ::ExtGnu;
20623
50726
  friend class ::PragmaOnceUnitState;
20624
50727
  friend class ::PragmaOnce;
20625
 
  friend class ::CCExprResolve;
20626
 
  friend class ::CExprResolve;
 
50728
  friend class ::CMatchSyntax;
20627
50729
 
20628
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50730
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20629
50731
 
20630
50732
  CTree *sons[2]; // throw, expr
20631
50733
 
20632
50734
public:
20633
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
 
50735
  /** Constructor.
 
50736
   *  \param t The 'throw' keyword.
 
50737
   *  \param e The expression. */
 
50738
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
50739
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20634
50740
  static const char *NodeId ();
 
50741
  /** Get the name of the node. Can be compared with NodeId(). */
20635
50742
  const char *NodeName () const { return NodeId (); }
 
50743
  /** Get the number of sons. */
20636
50744
  int Sons () const { return CTree::Sons (sons, 2); }
 
50745
  /** Get the n-th son.
 
50746
   *  \param n The index of the son.
 
50747
   *  \return The n-th son or NULL. */
20637
50748
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
50749
  /** Replace a son.
 
50750
   *  \param old_son The son to replace.
 
50751
   *  \param new_son The new son. */
20638
50752
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20639
50753
    CTree::ReplaceSon (sons, 2, old_son, new_son);
20640
50754
  }
 
50755
  /** Get the expression. */
20641
50756
  CTree *Expr () const { return sons[1]; }
20642
50757
   private:
20643
50758
  typedef CT_ThrowExpr CCExprResolveExpr;
20644
50759
 
20645
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
50760
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20646
50761
 public :
20647
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
50762
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20648
50763
  typedef CT_ThrowExpr CExprResolveExpr;
20649
50764
 
20650
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
50765
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20651
50766
 public :
20652
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20653
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50767
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
50768
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20654
50769
};
20655
50770
 
 
50771
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
50772
 *  Tree node representing an index expression. */
20656
50773
 
20657
 
#line 20658 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50774
#line 50775 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
20658
50775
} // closed Puma
 
50776
class CCExprResolve;
 
50777
class CExprResolve;
20659
50778
class WinIfExists;
20660
50779
class WinImportHandler;
20661
50780
class WinMacros;
20662
 
class CMatchSyntax;
20663
 
class ExtGnu;
 
50781
class WinAsm;
 
50782
class WinDeclSpecs;
 
50783
class WinMemberExplSpec;
 
50784
class WinTypeKeywords;
 
50785
class WinFriend;
20664
50786
class ExtAC;
20665
50787
class ExtACBuilderCoupling;
20666
50788
class ExtACSyntaxCoupling;
20667
50789
class ExtACTree;
20668
50790
class ExtACKeywords;
20669
 
class WinAsm;
20670
 
class WinDeclSpecs;
20671
 
class WinMemberExplSpec;
20672
 
class WinTypeKeywords;
 
50791
class ExtGnu;
20673
50792
class PragmaOnceUnitState;
20674
50793
class PragmaOnce;
20675
 
class CCExprResolve;
20676
 
class CExprResolve;
20677
 
namespace Puma {
20678
 
 
20679
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20680
 
class CT_IndexExpr : public CT_Expression {
20681
 
#line 20682 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50794
class CMatchSyntax;
 
50795
namespace Puma {
 
50796
 
 
50797
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50798
 
 
50799
#line 50800 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50800
} // closed Puma
 
50801
 
 
50802
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50803
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50804
#include "CCExprResolveH.ah"
 
50805
#endif
 
50806
namespace Puma {
 
50807
 
 
50808
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50809
 
 
50810
#line 50811 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50811
} // closed Puma
 
50812
 
 
50813
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50814
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50815
#include "CExprResolveH.ah"
 
50816
#endif
 
50817
namespace Puma {
 
50818
 
 
50819
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50820
class CT_IndexExpr : public CT_Call {
 
50821
#line 50822 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50822
  friend class ::CCExprResolve;
 
50823
  friend class ::CExprResolve;
20682
50824
  friend class ::WinIfExists;
20683
50825
  friend class ::WinImportHandler;
20684
50826
  friend class ::WinMacros;
20685
 
  friend class ::CMatchSyntax;
20686
 
  friend class ::ExtGnu;
 
50827
  friend class ::WinAsm;
 
50828
  friend class ::WinDeclSpecs;
 
50829
  friend class ::WinMemberExplSpec;
 
50830
  friend class ::WinTypeKeywords;
 
50831
  friend class ::WinFriend;
20687
50832
  friend class ::ExtAC;
20688
50833
  friend class ::ExtACBuilderCoupling;
20689
50834
  friend class ::ExtACSyntaxCoupling;
20690
50835
  friend class ::ExtACTree;
20691
50836
  friend class ::ExtACKeywords;
20692
 
  friend class ::WinAsm;
20693
 
  friend class ::WinDeclSpecs;
20694
 
  friend class ::WinMemberExplSpec;
20695
 
  friend class ::WinTypeKeywords;
 
50837
  friend class ::ExtGnu;
20696
50838
  friend class ::PragmaOnceUnitState;
20697
50839
  friend class ::PragmaOnce;
20698
 
  friend class ::CCExprResolve;
20699
 
  friend class ::CExprResolve;
 
50840
  friend class ::CMatchSyntax;
20700
50841
 
20701
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50842
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20702
50843
 
20703
50844
  CTree *sons[4]; // expr, open, index, close
20704
50845
 
20705
50846
public:
 
50847
  /** Constructor.
 
50848
   *  \param e The expression on which to invoke the index operator.
 
50849
   *  \param o Left parenthesis of the index expression.
 
50850
   *  \param i The index expression. 
 
50851
   *  \param c Right parenthesis of the index expression. */
20706
50852
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
20707
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
 
50853
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
50854
    AddSon (sons[2], i); AddSon (sons[3], c);
20708
50855
  }
 
50856
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20709
50857
  static const char *NodeId ();
 
50858
  /** Get the name of the node. Can be compared with NodeId(). */
20710
50859
  const char *NodeName () const { return NodeId (); }
 
50860
  /** Get the number of sons. */
20711
50861
  int Sons () const { return 4; }
 
50862
  /** Get the n-th son.
 
50863
   *  \param n The index of the son.
 
50864
   *  \return The n-th son or NULL. */
20712
50865
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
50866
  /** Replace a son.
 
50867
   *  \param old_son The son to replace.
 
50868
   *  \param new_son The new son. */
20713
50869
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20714
50870
    CTree::ReplaceSon (sons, 4, old_son, new_son);
20715
50871
  }
20716
50872
   private:
20717
50873
  typedef CT_IndexExpr CCExprResolveExpr;
20718
50874
 
20719
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
50875
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20720
50876
 public :
20721
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
50877
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20722
50878
  typedef CT_IndexExpr CExprResolveExpr;
20723
50879
 
20724
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
50880
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20725
50881
 public :
20726
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20727
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50882
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
50883
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20728
50884
};
20729
50885
 
 
50886
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
50887
 *  Tree node representing a function call expression, e.g. f(i). */
20730
50888
 
20731
 
#line 20732 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50889
#line 50890 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
20732
50890
} // closed Puma
 
50891
class CCExprResolve;
 
50892
class CExprResolve;
20733
50893
class WinIfExists;
20734
50894
class WinImportHandler;
20735
50895
class WinMacros;
20736
 
class CMatchSyntax;
20737
 
class ExtGnu;
 
50896
class WinAsm;
 
50897
class WinDeclSpecs;
 
50898
class WinMemberExplSpec;
 
50899
class WinTypeKeywords;
 
50900
class WinFriend;
20738
50901
class ExtAC;
20739
50902
class ExtACBuilderCoupling;
20740
50903
class ExtACSyntaxCoupling;
20741
50904
class ExtACTree;
20742
50905
class ExtACKeywords;
20743
 
class WinAsm;
20744
 
class WinDeclSpecs;
20745
 
class WinMemberExplSpec;
20746
 
class WinTypeKeywords;
 
50906
class ExtGnu;
20747
50907
class PragmaOnceUnitState;
20748
50908
class PragmaOnce;
20749
 
class CCExprResolve;
20750
 
class CExprResolve;
20751
 
namespace Puma {
20752
 
 
20753
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20754
 
class CT_CallExpr : public CT_Expression, public CSemObject {
20755
 
#line 20756 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50909
class CMatchSyntax;
 
50910
namespace Puma {
 
50911
 
 
50912
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50913
 
 
50914
#line 50915 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50915
} // closed Puma
 
50916
 
 
50917
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50918
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50919
#include "CCExprResolveH.ah"
 
50920
#endif
 
50921
namespace Puma {
 
50922
 
 
50923
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50924
 
 
50925
#line 50926 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50926
} // closed Puma
 
50927
 
 
50928
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50929
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50930
#include "CExprResolveH.ah"
 
50931
#endif
 
50932
namespace Puma {
 
50933
 
 
50934
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50935
class CT_CallExpr : public CT_Call {
 
50936
#line 50937 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
50937
  friend class ::CCExprResolve;
 
50938
  friend class ::CExprResolve;
20756
50939
  friend class ::WinIfExists;
20757
50940
  friend class ::WinImportHandler;
20758
50941
  friend class ::WinMacros;
20759
 
  friend class ::CMatchSyntax;
20760
 
  friend class ::ExtGnu;
 
50942
  friend class ::WinAsm;
 
50943
  friend class ::WinDeclSpecs;
 
50944
  friend class ::WinMemberExplSpec;
 
50945
  friend class ::WinTypeKeywords;
 
50946
  friend class ::WinFriend;
20761
50947
  friend class ::ExtAC;
20762
50948
  friend class ::ExtACBuilderCoupling;
20763
50949
  friend class ::ExtACSyntaxCoupling;
20764
50950
  friend class ::ExtACTree;
20765
50951
  friend class ::ExtACKeywords;
20766
 
  friend class ::WinAsm;
20767
 
  friend class ::WinDeclSpecs;
20768
 
  friend class ::WinMemberExplSpec;
20769
 
  friend class ::WinTypeKeywords;
 
50952
  friend class ::ExtGnu;
20770
50953
  friend class ::PragmaOnceUnitState;
20771
50954
  friend class ::PragmaOnce;
20772
 
  friend class ::CCExprResolve;
20773
 
  friend class ::CExprResolve;
 
50955
  friend class ::CMatchSyntax;
20774
50956
 
20775
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50957
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20776
50958
 
20777
50959
  CTree *sons[2]; // expr, args
20778
50960
 
20779
50961
public:
20780
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
20781
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
 
50962
  /** Constructor.
 
50963
   *  \param e The expression on which the call is invoked. */
 
50964
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
50965
  /** Constructor.
 
50966
   *  \param e The expression on which the call is invoked.
 
50967
   *  \param l The argument list of the call. */
 
50968
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
50969
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20782
50970
  static const char *NodeId ();
 
50971
  /** Get the name of the node. Can be compared with NodeId(). */
20783
50972
  const char *NodeName () const { return NodeId (); }
 
50973
  /** Get the number of sons. */
20784
50974
  int Sons () const { return CTree::Sons (sons, 2); }
 
50975
  /** Get the n-th son.
 
50976
   *  \param n The index of the son.
 
50977
   *  \return The n-th son or NULL. */
20785
50978
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
50979
  /** Replace a son.
 
50980
   *  \param old_son The son to replace.
 
50981
   *  \param new_son The new son. */
20786
50982
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20787
50983
    CTree::ReplaceSon (sons, 2, old_son, new_son);
20788
50984
  }
20789
50985
  CTree *Expr () const { return sons[0]; }
20790
50986
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
20791
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
20792
50987
   private:
20793
50988
  typedef CT_CallExpr CCExprResolveExpr;
20794
50989
 
20795
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
50990
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20796
50991
 public :
20797
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
50992
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20798
50993
  typedef CT_CallExpr CExprResolveExpr;
20799
50994
 
20800
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
50995
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20801
50996
 public :
20802
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20803
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50997
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
50998
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20804
50999
};
20805
51000
 
 
51001
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
51002
 *  Tree node representing a cast expression, e.g. (int)a. */
20806
51003
 
20807
 
#line 20808 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51004
#line 51005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
20808
51005
} // closed Puma
 
51006
class CCExprResolve;
 
51007
class CExprResolve;
20809
51008
class WinIfExists;
20810
51009
class WinImportHandler;
20811
51010
class WinMacros;
20812
 
class CMatchSyntax;
20813
 
class ExtGnu;
 
51011
class WinAsm;
 
51012
class WinDeclSpecs;
 
51013
class WinMemberExplSpec;
 
51014
class WinTypeKeywords;
 
51015
class WinFriend;
20814
51016
class ExtAC;
20815
51017
class ExtACBuilderCoupling;
20816
51018
class ExtACSyntaxCoupling;
20817
51019
class ExtACTree;
20818
51020
class ExtACKeywords;
20819
 
class WinAsm;
20820
 
class WinDeclSpecs;
20821
 
class WinMemberExplSpec;
20822
 
class WinTypeKeywords;
 
51021
class ExtGnu;
20823
51022
class PragmaOnceUnitState;
20824
51023
class PragmaOnce;
20825
 
class CCExprResolve;
20826
 
class CExprResolve;
20827
 
namespace Puma {
20828
 
 
20829
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51024
class CMatchSyntax;
 
51025
namespace Puma {
 
51026
 
 
51027
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51028
 
 
51029
#line 51030 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51030
} // closed Puma
 
51031
 
 
51032
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51033
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51034
#include "CCExprResolveH.ah"
 
51035
#endif
 
51036
namespace Puma {
 
51037
 
 
51038
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51039
 
 
51040
#line 51041 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51041
} // closed Puma
 
51042
 
 
51043
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51044
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51045
#include "CExprResolveH.ah"
 
51046
#endif
 
51047
namespace Puma {
 
51048
 
 
51049
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20830
51050
class CT_CastExpr : public CT_Expression {
20831
 
#line 20832 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51051
#line 51052 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51052
  friend class ::CCExprResolve;
 
51053
  friend class ::CExprResolve;
20832
51054
  friend class ::WinIfExists;
20833
51055
  friend class ::WinImportHandler;
20834
51056
  friend class ::WinMacros;
20835
 
  friend class ::CMatchSyntax;
20836
 
  friend class ::ExtGnu;
 
51057
  friend class ::WinAsm;
 
51058
  friend class ::WinDeclSpecs;
 
51059
  friend class ::WinMemberExplSpec;
 
51060
  friend class ::WinTypeKeywords;
 
51061
  friend class ::WinFriend;
20837
51062
  friend class ::ExtAC;
20838
51063
  friend class ::ExtACBuilderCoupling;
20839
51064
  friend class ::ExtACSyntaxCoupling;
20840
51065
  friend class ::ExtACTree;
20841
51066
  friend class ::ExtACKeywords;
20842
 
  friend class ::WinAsm;
20843
 
  friend class ::WinDeclSpecs;
20844
 
  friend class ::WinMemberExplSpec;
20845
 
  friend class ::WinTypeKeywords;
 
51067
  friend class ::ExtGnu;
20846
51068
  friend class ::PragmaOnceUnitState;
20847
51069
  friend class ::PragmaOnce;
20848
 
  friend class ::CCExprResolve;
20849
 
  friend class ::CExprResolve;
 
51070
  friend class ::CMatchSyntax;
20850
51071
 
20851
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51072
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20852
51073
 
20853
51074
  CTree *sons[4]; // open, type, close, expr
20854
51075
 
20855
51076
public:
 
51077
  /** Constructor.
 
51078
   *  \param o Left parenthesis of the type name.
 
51079
   *  \param t The type to cast to.
 
51080
   *  \param c Right parenthesis of the type name. 
 
51081
   *  \param e The expression to cast. */
20856
51082
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
20857
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
 
51083
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
51084
    AddSon (sons[2], c); AddSon (sons[3], e);
20858
51085
  }
 
51086
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20859
51087
  static const char *NodeId ();
 
51088
  /** Get the name of the node. Can be compared with NodeId(). */
20860
51089
  const char *NodeName () const { return NodeId (); }
 
51090
  /** Get the number of sons. */
20861
51091
  int Sons () const { return 4; }
 
51092
  /** Get the n-th son.
 
51093
   *  \param n The index of the son.
 
51094
   *  \return The n-th son or NULL. */
20862
51095
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
51096
  /** Replace a son.
 
51097
   *  \param old_son The son to replace.
 
51098
   *  \param new_son The new son. */
20863
51099
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20864
51100
    CTree::ReplaceSon (sons, 4, old_son, new_son);
20865
51101
  }
 
51102
  /** Get the casted expression. */
20866
51103
  CTree *Expr () const { return sons[3]; }
 
51104
  /** Get the type to cast to. */
20867
51105
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
20868
51106
   private:
20869
51107
  typedef CT_CastExpr CCExprResolveExpr;
20870
51108
 
20871
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
51109
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20872
51110
 public :
20873
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
51111
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20874
51112
  typedef CT_CastExpr CExprResolveExpr;
20875
51113
 
20876
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
51114
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20877
51115
 public :
20878
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20879
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51116
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
51117
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20880
51118
};
20881
51119
 
 
51120
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
51121
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
20882
51122
 
20883
 
#line 20884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51123
#line 51124 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
20884
51124
} // closed Puma
 
51125
class CCExprResolve;
 
51126
class CExprResolve;
20885
51127
class WinIfExists;
20886
51128
class WinImportHandler;
20887
51129
class WinMacros;
20888
 
class CMatchSyntax;
20889
 
class ExtGnu;
 
51130
class WinAsm;
 
51131
class WinDeclSpecs;
 
51132
class WinMemberExplSpec;
 
51133
class WinTypeKeywords;
 
51134
class WinFriend;
20890
51135
class ExtAC;
20891
51136
class ExtACBuilderCoupling;
20892
51137
class ExtACSyntaxCoupling;
20893
51138
class ExtACTree;
20894
51139
class ExtACKeywords;
20895
 
class WinAsm;
20896
 
class WinDeclSpecs;
20897
 
class WinMemberExplSpec;
20898
 
class WinTypeKeywords;
 
51140
class ExtGnu;
20899
51141
class PragmaOnceUnitState;
20900
51142
class PragmaOnce;
20901
 
class CCExprResolve;
20902
 
class CExprResolve;
20903
 
namespace Puma {
20904
 
 
20905
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51143
class CMatchSyntax;
 
51144
namespace Puma {
 
51145
 
 
51146
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51147
 
 
51148
#line 51149 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51149
} // closed Puma
 
51150
 
 
51151
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51152
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51153
#include "CCExprResolveH.ah"
 
51154
#endif
 
51155
namespace Puma {
 
51156
 
 
51157
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51158
 
 
51159
#line 51160 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51160
} // closed Puma
 
51161
 
 
51162
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51163
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51164
#include "CExprResolveH.ah"
 
51165
#endif
 
51166
namespace Puma {
 
51167
 
 
51168
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20906
51169
class CT_StaticCast : public CT_Expression {
20907
 
#line 20908 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51170
#line 51171 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51171
  friend class ::CCExprResolve;
 
51172
  friend class ::CExprResolve;
20908
51173
  friend class ::WinIfExists;
20909
51174
  friend class ::WinImportHandler;
20910
51175
  friend class ::WinMacros;
20911
 
  friend class ::CMatchSyntax;
20912
 
  friend class ::ExtGnu;
 
51176
  friend class ::WinAsm;
 
51177
  friend class ::WinDeclSpecs;
 
51178
  friend class ::WinMemberExplSpec;
 
51179
  friend class ::WinTypeKeywords;
 
51180
  friend class ::WinFriend;
20913
51181
  friend class ::ExtAC;
20914
51182
  friend class ::ExtACBuilderCoupling;
20915
51183
  friend class ::ExtACSyntaxCoupling;
20916
51184
  friend class ::ExtACTree;
20917
51185
  friend class ::ExtACKeywords;
20918
 
  friend class ::WinAsm;
20919
 
  friend class ::WinDeclSpecs;
20920
 
  friend class ::WinMemberExplSpec;
20921
 
  friend class ::WinTypeKeywords;
 
51186
  friend class ::ExtGnu;
20922
51187
  friend class ::PragmaOnceUnitState;
20923
51188
  friend class ::PragmaOnce;
20924
 
  friend class ::CCExprResolve;
20925
 
  friend class ::CExprResolve;
 
51189
  friend class ::CMatchSyntax;
20926
51190
 
20927
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51191
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20928
51192
 
20929
51193
  CTree *sons[5]; // cast, open, type, close, expr
20930
51194
 
20931
51195
public:
 
51196
  /** Constructor.
 
51197
   *  \param cst The cast operator, i.e. 'static_cast'.
 
51198
   *  \param o Left arrow bracket of the type name.
 
51199
   *  \param t The type to cast to.
 
51200
   *  \param c Right array bracket of the type name.
 
51201
   *  \param e The expression to cast. */
20932
51202
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
20933
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
 
51203
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
51204
    AddSon (sons[3], c); AddSon (sons[4], e);
20934
51205
  }
 
51206
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20935
51207
  static const char *NodeId ();
 
51208
  /** Get the name of the node. Can be compared with NodeId(). */
20936
51209
  const char *NodeName () const { return NodeId (); }
 
51210
  /** Get the number of sons. */
20937
51211
  int Sons () const { return 5; }
 
51212
  /** Get the n-th son.
 
51213
   *  \param n The index of the son.
 
51214
   *  \return The n-th son or NULL. */
20938
51215
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
51216
  /** Replace a son.
 
51217
   *  \param old_son The son to replace.
 
51218
   *  \param new_son The new son. */
20939
51219
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20940
51220
    CTree::ReplaceSon (sons, 5, old_son, new_son);
20941
51221
  }
 
51222
  /** Get the casted expression. */
20942
51223
  CTree *Expr () const { return sons[4]; }
 
51224
  /** Get the type to cast to. */
20943
51225
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
20944
51226
   private:
20945
51227
  typedef CT_StaticCast CCExprResolveExpr;
20946
51228
 
20947
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
51229
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20948
51230
 public :
20949
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
51231
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20950
51232
  typedef CT_StaticCast CExprResolveExpr;
20951
51233
 
20952
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
51234
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20953
51235
 public :
20954
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20955
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51236
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
51237
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20956
51238
};
20957
51239
 
 
51240
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
51241
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
20958
51242
 
20959
 
#line 20960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51243
#line 51244 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
20960
51244
} // closed Puma
 
51245
class CCExprResolve;
 
51246
class CExprResolve;
20961
51247
class WinIfExists;
20962
51248
class WinImportHandler;
20963
51249
class WinMacros;
20964
 
class CMatchSyntax;
20965
 
class ExtGnu;
 
51250
class WinAsm;
 
51251
class WinDeclSpecs;
 
51252
class WinMemberExplSpec;
 
51253
class WinTypeKeywords;
 
51254
class WinFriend;
20966
51255
class ExtAC;
20967
51256
class ExtACBuilderCoupling;
20968
51257
class ExtACSyntaxCoupling;
20969
51258
class ExtACTree;
20970
51259
class ExtACKeywords;
20971
 
class WinAsm;
20972
 
class WinDeclSpecs;
20973
 
class WinMemberExplSpec;
20974
 
class WinTypeKeywords;
 
51260
class ExtGnu;
20975
51261
class PragmaOnceUnitState;
20976
51262
class PragmaOnce;
20977
 
class CCExprResolve;
20978
 
class CExprResolve;
20979
 
namespace Puma {
20980
 
 
20981
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51263
class CMatchSyntax;
 
51264
namespace Puma {
 
51265
 
 
51266
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51267
 
 
51268
#line 51269 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51269
} // closed Puma
 
51270
 
 
51271
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51272
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51273
#include "CCExprResolveH.ah"
 
51274
#endif
 
51275
namespace Puma {
 
51276
 
 
51277
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51278
 
 
51279
#line 51280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51280
} // closed Puma
 
51281
 
 
51282
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51283
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51284
#include "CExprResolveH.ah"
 
51285
#endif
 
51286
namespace Puma {
 
51287
 
 
51288
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20982
51289
class CT_ConstCast : public CT_StaticCast {
20983
 
#line 20984 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51290
#line 51291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51291
  friend class ::CCExprResolve;
 
51292
  friend class ::CExprResolve;
20984
51293
  friend class ::WinIfExists;
20985
51294
  friend class ::WinImportHandler;
20986
51295
  friend class ::WinMacros;
20987
 
  friend class ::CMatchSyntax;
20988
 
  friend class ::ExtGnu;
 
51296
  friend class ::WinAsm;
 
51297
  friend class ::WinDeclSpecs;
 
51298
  friend class ::WinMemberExplSpec;
 
51299
  friend class ::WinTypeKeywords;
 
51300
  friend class ::WinFriend;
20989
51301
  friend class ::ExtAC;
20990
51302
  friend class ::ExtACBuilderCoupling;
20991
51303
  friend class ::ExtACSyntaxCoupling;
20992
51304
  friend class ::ExtACTree;
20993
51305
  friend class ::ExtACKeywords;
20994
 
  friend class ::WinAsm;
20995
 
  friend class ::WinDeclSpecs;
20996
 
  friend class ::WinMemberExplSpec;
20997
 
  friend class ::WinTypeKeywords;
 
51306
  friend class ::ExtGnu;
20998
51307
  friend class ::PragmaOnceUnitState;
20999
51308
  friend class ::PragmaOnce;
21000
 
  friend class ::CCExprResolve;
21001
 
  friend class ::CExprResolve;
 
51309
  friend class ::CMatchSyntax;
21002
51310
 
21003
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51311
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21004
51312
 
21005
51313
public:
 
51314
  /** Constructor.
 
51315
   *  \param cst The cast operator, i.e. 'const_cast'.
 
51316
   *  \param o Left arrow bracket of the type name.
 
51317
   *  \param t The type to cast to.
 
51318
   *  \param c Right array bracket of the type name.
 
51319
   *  \param e The expression to cast. */
21006
51320
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
21007
51321
    CT_StaticCast (cst, o, t, c, e) {}
 
51322
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21008
51323
  static const char *NodeId ();
 
51324
  /** Get the name of the node. Can be compared with NodeId(). */
21009
51325
  const char *NodeName () const { return NodeId (); }
21010
51326
   private:
21011
51327
  typedef CT_ConstCast CCExprResolveExpr;
21012
51328
 
21013
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
51329
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21014
51330
 public :
21015
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
51331
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
21016
51332
  typedef CT_ConstCast CExprResolveExpr;
21017
51333
 
21018
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
51334
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21019
51335
 public :
21020
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21021
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51336
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
51337
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21022
51338
};
21023
51339
 
 
51340
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
51341
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
21024
51342
 
21025
 
#line 21026 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51343
#line 51344 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
21026
51344
} // closed Puma
 
51345
class CCExprResolve;
 
51346
class CExprResolve;
21027
51347
class WinIfExists;
21028
51348
class WinImportHandler;
21029
51349
class WinMacros;
21030
 
class CMatchSyntax;
21031
 
class ExtGnu;
 
51350
class WinAsm;
 
51351
class WinDeclSpecs;
 
51352
class WinMemberExplSpec;
 
51353
class WinTypeKeywords;
 
51354
class WinFriend;
21032
51355
class ExtAC;
21033
51356
class ExtACBuilderCoupling;
21034
51357
class ExtACSyntaxCoupling;
21035
51358
class ExtACTree;
21036
51359
class ExtACKeywords;
21037
 
class WinAsm;
21038
 
class WinDeclSpecs;
21039
 
class WinMemberExplSpec;
21040
 
class WinTypeKeywords;
 
51360
class ExtGnu;
21041
51361
class PragmaOnceUnitState;
21042
51362
class PragmaOnce;
21043
 
class CCExprResolve;
21044
 
class CExprResolve;
21045
 
namespace Puma {
21046
 
 
21047
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51363
class CMatchSyntax;
 
51364
namespace Puma {
 
51365
 
 
51366
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51367
 
 
51368
#line 51369 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51369
} // closed Puma
 
51370
 
 
51371
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51372
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51373
#include "CCExprResolveH.ah"
 
51374
#endif
 
51375
namespace Puma {
 
51376
 
 
51377
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51378
 
 
51379
#line 51380 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51380
} // closed Puma
 
51381
 
 
51382
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51383
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51384
#include "CExprResolveH.ah"
 
51385
#endif
 
51386
namespace Puma {
 
51387
 
 
51388
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21048
51389
class CT_ReintCast : public CT_StaticCast {
21049
 
#line 21050 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51390
#line 51391 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51391
  friend class ::CCExprResolve;
 
51392
  friend class ::CExprResolve;
21050
51393
  friend class ::WinIfExists;
21051
51394
  friend class ::WinImportHandler;
21052
51395
  friend class ::WinMacros;
21053
 
  friend class ::CMatchSyntax;
21054
 
  friend class ::ExtGnu;
 
51396
  friend class ::WinAsm;
 
51397
  friend class ::WinDeclSpecs;
 
51398
  friend class ::WinMemberExplSpec;
 
51399
  friend class ::WinTypeKeywords;
 
51400
  friend class ::WinFriend;
21055
51401
  friend class ::ExtAC;
21056
51402
  friend class ::ExtACBuilderCoupling;
21057
51403
  friend class ::ExtACSyntaxCoupling;
21058
51404
  friend class ::ExtACTree;
21059
51405
  friend class ::ExtACKeywords;
21060
 
  friend class ::WinAsm;
21061
 
  friend class ::WinDeclSpecs;
21062
 
  friend class ::WinMemberExplSpec;
21063
 
  friend class ::WinTypeKeywords;
 
51406
  friend class ::ExtGnu;
21064
51407
  friend class ::PragmaOnceUnitState;
21065
51408
  friend class ::PragmaOnce;
21066
 
  friend class ::CCExprResolve;
21067
 
  friend class ::CExprResolve;
 
51409
  friend class ::CMatchSyntax;
21068
51410
 
21069
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51411
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21070
51412
 
21071
51413
public:
 
51414
  /** Constructor.
 
51415
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
51416
   *  \param o Left arrow bracket of the type name.
 
51417
   *  \param t The type to cast to.
 
51418
   *  \param c Right array bracket of the type name.
 
51419
   *  \param e The expression to cast. */
21072
51420
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
21073
51421
    CT_StaticCast (cst, o, t, c, e) {}
 
51422
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21074
51423
  static const char *NodeId ();
 
51424
  /** Get the name of the node. Can be compared with NodeId(). */
21075
51425
  const char *NodeName () const { return NodeId (); }
21076
51426
   private:
21077
51427
  typedef CT_ReintCast CCExprResolveExpr;
21078
51428
 
21079
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
51429
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21080
51430
 public :
21081
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
51431
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
21082
51432
  typedef CT_ReintCast CExprResolveExpr;
21083
51433
 
21084
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
51434
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21085
51435
 public :
21086
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21087
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51436
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
51437
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21088
51438
};
21089
51439
 
 
51440
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
51441
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
21090
51442
 
21091
 
#line 21092 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51443
#line 51444 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
21092
51444
} // closed Puma
 
51445
class CCExprResolve;
 
51446
class CExprResolve;
21093
51447
class WinIfExists;
21094
51448
class WinImportHandler;
21095
51449
class WinMacros;
21096
 
class CMatchSyntax;
21097
 
class ExtGnu;
 
51450
class WinAsm;
 
51451
class WinDeclSpecs;
 
51452
class WinMemberExplSpec;
 
51453
class WinTypeKeywords;
 
51454
class WinFriend;
21098
51455
class ExtAC;
21099
51456
class ExtACBuilderCoupling;
21100
51457
class ExtACSyntaxCoupling;
21101
51458
class ExtACTree;
21102
51459
class ExtACKeywords;
21103
 
class WinAsm;
21104
 
class WinDeclSpecs;
21105
 
class WinMemberExplSpec;
21106
 
class WinTypeKeywords;
 
51460
class ExtGnu;
21107
51461
class PragmaOnceUnitState;
21108
51462
class PragmaOnce;
21109
 
class CCExprResolve;
21110
 
class CExprResolve;
21111
 
namespace Puma {
21112
 
 
21113
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51463
class CMatchSyntax;
 
51464
namespace Puma {
 
51465
 
 
51466
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51467
 
 
51468
#line 51469 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51469
} // closed Puma
 
51470
 
 
51471
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51472
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51473
#include "CCExprResolveH.ah"
 
51474
#endif
 
51475
namespace Puma {
 
51476
 
 
51477
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51478
 
 
51479
#line 51480 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51480
} // closed Puma
 
51481
 
 
51482
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51483
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51484
#include "CExprResolveH.ah"
 
51485
#endif
 
51486
namespace Puma {
 
51487
 
 
51488
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21114
51489
class CT_DynamicCast : public CT_StaticCast {
21115
 
#line 21116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51490
#line 51491 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51491
  friend class ::CCExprResolve;
 
51492
  friend class ::CExprResolve;
21116
51493
  friend class ::WinIfExists;
21117
51494
  friend class ::WinImportHandler;
21118
51495
  friend class ::WinMacros;
21119
 
  friend class ::CMatchSyntax;
21120
 
  friend class ::ExtGnu;
 
51496
  friend class ::WinAsm;
 
51497
  friend class ::WinDeclSpecs;
 
51498
  friend class ::WinMemberExplSpec;
 
51499
  friend class ::WinTypeKeywords;
 
51500
  friend class ::WinFriend;
21121
51501
  friend class ::ExtAC;
21122
51502
  friend class ::ExtACBuilderCoupling;
21123
51503
  friend class ::ExtACSyntaxCoupling;
21124
51504
  friend class ::ExtACTree;
21125
51505
  friend class ::ExtACKeywords;
21126
 
  friend class ::WinAsm;
21127
 
  friend class ::WinDeclSpecs;
21128
 
  friend class ::WinMemberExplSpec;
21129
 
  friend class ::WinTypeKeywords;
 
51506
  friend class ::ExtGnu;
21130
51507
  friend class ::PragmaOnceUnitState;
21131
51508
  friend class ::PragmaOnce;
21132
 
  friend class ::CCExprResolve;
21133
 
  friend class ::CExprResolve;
 
51509
  friend class ::CMatchSyntax;
21134
51510
 
21135
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51511
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21136
51512
 
21137
51513
public:
 
51514
  /** Constructor.
 
51515
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
51516
   *  \param o Left arrow bracket of the type name.
 
51517
   *  \param t The type to cast to.
 
51518
   *  \param c Right array bracket of the type name.
 
51519
   *  \param e The expression to cast. */
21138
51520
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
21139
51521
    CT_StaticCast (cst, o, t, c, e) {}
 
51522
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21140
51523
  static const char *NodeId ();
 
51524
  /** Get the name of the node. Can be compared with NodeId(). */
21141
51525
  const char *NodeName () const { return NodeId (); }
21142
51526
   private:
21143
51527
  typedef CT_DynamicCast CCExprResolveExpr;
21144
51528
 
21145
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
51529
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21146
51530
 public :
21147
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
51531
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
21148
51532
  typedef CT_DynamicCast CExprResolveExpr;
21149
51533
 
21150
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
51534
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21151
51535
 public :
21152
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21153
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51536
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
51537
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21154
51538
};
21155
51539
 
 
51540
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
51541
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
51542
 *  where 1.2 is implicitely casted from float to int. */
21156
51543
 
21157
 
#line 21158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51544
#line 51545 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
21158
51545
} // closed Puma
 
51546
class CCExprResolve;
 
51547
class CExprResolve;
21159
51548
class WinIfExists;
21160
51549
class WinImportHandler;
21161
51550
class WinMacros;
21162
 
class CMatchSyntax;
21163
 
class ExtGnu;
 
51551
class WinAsm;
 
51552
class WinDeclSpecs;
 
51553
class WinMemberExplSpec;
 
51554
class WinTypeKeywords;
 
51555
class WinFriend;
21164
51556
class ExtAC;
21165
51557
class ExtACBuilderCoupling;
21166
51558
class ExtACSyntaxCoupling;
21167
51559
class ExtACTree;
21168
51560
class ExtACKeywords;
21169
 
class WinAsm;
21170
 
class WinDeclSpecs;
21171
 
class WinMemberExplSpec;
21172
 
class WinTypeKeywords;
 
51561
class ExtGnu;
21173
51562
class PragmaOnceUnitState;
21174
51563
class PragmaOnce;
21175
 
class CCExprResolve;
21176
 
class CExprResolve;
21177
 
namespace Puma {
21178
 
 
21179
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51564
class CMatchSyntax;
 
51565
namespace Puma {
 
51566
 
 
51567
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51568
 
 
51569
#line 51570 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51570
} // closed Puma
 
51571
 
 
51572
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51573
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51574
#include "CCExprResolveH.ah"
 
51575
#endif
 
51576
namespace Puma {
 
51577
 
 
51578
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51579
 
 
51580
#line 51581 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51581
} // closed Puma
 
51582
 
 
51583
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51584
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51585
#include "CExprResolveH.ah"
 
51586
#endif
 
51587
namespace Puma {
 
51588
 
 
51589
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21180
51590
class CT_ImplicitCast : public CT_Expression {
21181
 
#line 21182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51591
#line 51592 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51592
  friend class ::CCExprResolve;
 
51593
  friend class ::CExprResolve;
21182
51594
  friend class ::WinIfExists;
21183
51595
  friend class ::WinImportHandler;
21184
51596
  friend class ::WinMacros;
21185
 
  friend class ::CMatchSyntax;
21186
 
  friend class ::ExtGnu;
 
51597
  friend class ::WinAsm;
 
51598
  friend class ::WinDeclSpecs;
 
51599
  friend class ::WinMemberExplSpec;
 
51600
  friend class ::WinTypeKeywords;
 
51601
  friend class ::WinFriend;
21187
51602
  friend class ::ExtAC;
21188
51603
  friend class ::ExtACBuilderCoupling;
21189
51604
  friend class ::ExtACSyntaxCoupling;
21190
51605
  friend class ::ExtACTree;
21191
51606
  friend class ::ExtACKeywords;
21192
 
  friend class ::WinAsm;
21193
 
  friend class ::WinDeclSpecs;
21194
 
  friend class ::WinMemberExplSpec;
21195
 
  friend class ::WinTypeKeywords;
 
51607
  friend class ::ExtGnu;
21196
51608
  friend class ::PragmaOnceUnitState;
21197
51609
  friend class ::PragmaOnce;
21198
 
  friend class ::CCExprResolve;
21199
 
  friend class ::CExprResolve;
 
51610
  friend class ::CMatchSyntax;
21200
51611
 
21201
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51612
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21202
51613
 
21203
51614
  CTree *_expr; // casted expression
21204
51615
 
21205
51616
public:
21206
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
 
51617
  /** Constructor.
 
51618
   *  \param e The expression that is implicitely casted. */
 
51619
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
51620
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21207
51621
  static const char *NodeId ();
 
51622
  /** Get the name of the node. Can be compared with NodeId(). */
21208
51623
  const char *NodeName () const { return NodeId (); }
 
51624
  /** Get the number of sons. */
21209
51625
  int Sons () const { return 1; }
 
51626
  /** Get the n-th son.
 
51627
   *  \param n The index of the son.
 
51628
   *  \return The n-th son or NULL. */
21210
51629
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
51630
  /** Get the casted expression. */
21211
51631
  CTree *Expr () const { return _expr; }
 
51632
  /** Replace a son.
 
51633
   *  \param old_son The son to replace.
 
51634
   *  \param new_son The new son. */
21212
51635
  void ReplaceSon (CTree *old_son, CTree *new_son) 
21213
 
   { if (old_son == _expr) _expr = new_son; }
 
51636
   { CTree::ReplaceSon (_expr, old_son, new_son); }
21214
51637
   private:
21215
51638
  typedef CT_ImplicitCast CCExprResolveExpr;
21216
51639
 
21217
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
51640
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21218
51641
 public :
21219
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
51642
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
21220
51643
  typedef CT_ImplicitCast CExprResolveExpr;
21221
51644
 
21222
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
51645
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21223
51646
 public :
21224
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21225
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51647
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
51648
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21226
51649
};
21227
51650
 
 
51651
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
51652
 *  Tree node representing a typeid expression, e.g. typeid(X). */
21228
51653
 
21229
 
#line 21230 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51654
#line 51655 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
21230
51655
} // closed Puma
 
51656
class CCExprResolve;
 
51657
class CExprResolve;
21231
51658
class WinIfExists;
21232
51659
class WinImportHandler;
21233
51660
class WinMacros;
21234
 
class CMatchSyntax;
21235
 
class ExtGnu;
 
51661
class WinAsm;
 
51662
class WinDeclSpecs;
 
51663
class WinMemberExplSpec;
 
51664
class WinTypeKeywords;
 
51665
class WinFriend;
21236
51666
class ExtAC;
21237
51667
class ExtACBuilderCoupling;
21238
51668
class ExtACSyntaxCoupling;
21239
51669
class ExtACTree;
21240
51670
class ExtACKeywords;
21241
 
class WinAsm;
21242
 
class WinDeclSpecs;
21243
 
class WinMemberExplSpec;
21244
 
class WinTypeKeywords;
 
51671
class ExtGnu;
21245
51672
class PragmaOnceUnitState;
21246
51673
class PragmaOnce;
21247
 
class CCExprResolve;
21248
 
class CExprResolve;
21249
 
namespace Puma {
21250
 
 
21251
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51674
class CMatchSyntax;
 
51675
namespace Puma {
 
51676
 
 
51677
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51678
 
 
51679
#line 51680 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51680
} // closed Puma
 
51681
 
 
51682
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51683
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51684
#include "CCExprResolveH.ah"
 
51685
#endif
 
51686
namespace Puma {
 
51687
 
 
51688
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51689
 
 
51690
#line 51691 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51691
} // closed Puma
 
51692
 
 
51693
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51694
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51695
#include "CExprResolveH.ah"
 
51696
#endif
 
51697
namespace Puma {
 
51698
 
 
51699
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21252
51700
class CT_TypeidExpr : public CT_Expression {
21253
 
#line 21254 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51701
#line 51702 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51702
  friend class ::CCExprResolve;
 
51703
  friend class ::CExprResolve;
21254
51704
  friend class ::WinIfExists;
21255
51705
  friend class ::WinImportHandler;
21256
51706
  friend class ::WinMacros;
21257
 
  friend class ::CMatchSyntax;
21258
 
  friend class ::ExtGnu;
 
51707
  friend class ::WinAsm;
 
51708
  friend class ::WinDeclSpecs;
 
51709
  friend class ::WinMemberExplSpec;
 
51710
  friend class ::WinTypeKeywords;
 
51711
  friend class ::WinFriend;
21259
51712
  friend class ::ExtAC;
21260
51713
  friend class ::ExtACBuilderCoupling;
21261
51714
  friend class ::ExtACSyntaxCoupling;
21262
51715
  friend class ::ExtACTree;
21263
51716
  friend class ::ExtACKeywords;
21264
 
  friend class ::WinAsm;
21265
 
  friend class ::WinDeclSpecs;
21266
 
  friend class ::WinMemberExplSpec;
21267
 
  friend class ::WinTypeKeywords;
 
51717
  friend class ::ExtGnu;
21268
51718
  friend class ::PragmaOnceUnitState;
21269
51719
  friend class ::PragmaOnce;
21270
 
  friend class ::CCExprResolve;
21271
 
  friend class ::CExprResolve;
 
51720
  friend class ::CMatchSyntax;
21272
51721
 
21273
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51722
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21274
51723
 
21275
51724
  CTree *sons[4]; // typeid, open, type_id/expr, close
21276
51725
 
21277
51726
public:
 
51727
  /** Constructor.
 
51728
   *  \param tid The 'typeid' operator.
 
51729
   *  \param o The left parenthesis of the type name or expression.
 
51730
   *  \param e The expression or type name for which to get the type identifier.
 
51731
   *  \param c The right parenthesis of the type name or expression. */
21278
51732
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
21279
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
 
51733
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
51734
    AddSon (sons[2], e); AddSon (sons[3], c);
21280
51735
  }
 
51736
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21281
51737
  static const char *NodeId ();
 
51738
  /** Get the name of the node. Can be compared with NodeId(). */
21282
51739
  const char *NodeName () const { return NodeId (); }
 
51740
  /** Get the number of sons. */
21283
51741
  int Sons () const { return 4; }
 
51742
  /** Get the n-th son.
 
51743
   *  \param n The index of the son.
 
51744
   *  \return The n-th son or NULL. */
21284
51745
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
51746
  /** Replace a son.
 
51747
   *  \param old_son The son to replace.
 
51748
   *  \param new_son The new son. */
21285
51749
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21286
51750
    CTree::ReplaceSon (sons, 4, old_son, new_son);
21287
51751
  }
 
51752
  /** Get the typeid argument, i.e. the expression or type name for
 
51753
   *  which to get the type identifier. */
21288
51754
  CTree *Arg () const { return sons[2]; }
21289
51755
   private:
21290
51756
  typedef CT_TypeidExpr CCExprResolveExpr;
21291
51757
 
21292
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
51758
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21293
51759
 public :
21294
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
51760
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
21295
51761
  typedef CT_TypeidExpr CExprResolveExpr;
21296
51762
 
21297
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
51763
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21298
51764
 public :
21299
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21300
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51765
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
51766
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21301
51767
};
21302
51768
 
 
51769
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
51770
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
21303
51771
 
21304
 
#line 21305 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51772
#line 51773 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
21305
51773
} // closed Puma
 
51774
class CCExprResolve;
 
51775
class CExprResolve;
21306
51776
class WinIfExists;
21307
51777
class WinImportHandler;
21308
51778
class WinMacros;
21309
 
class CMatchSyntax;
21310
 
class ExtGnu;
 
51779
class WinAsm;
 
51780
class WinDeclSpecs;
 
51781
class WinMemberExplSpec;
 
51782
class WinTypeKeywords;
 
51783
class WinFriend;
21311
51784
class ExtAC;
21312
51785
class ExtACBuilderCoupling;
21313
51786
class ExtACSyntaxCoupling;
21314
51787
class ExtACTree;
21315
51788
class ExtACKeywords;
21316
 
class WinAsm;
21317
 
class WinDeclSpecs;
21318
 
class WinMemberExplSpec;
21319
 
class WinTypeKeywords;
 
51789
class ExtGnu;
21320
51790
class PragmaOnceUnitState;
21321
51791
class PragmaOnce;
21322
 
class CCExprResolve;
21323
 
class CExprResolve;
21324
 
namespace Puma {
21325
 
 
21326
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51792
class CMatchSyntax;
 
51793
namespace Puma {
 
51794
 
 
51795
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51796
 
 
51797
#line 51798 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51798
} // closed Puma
 
51799
 
 
51800
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51801
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51802
#include "CCExprResolveH.ah"
 
51803
#endif
 
51804
namespace Puma {
 
51805
 
 
51806
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51807
 
 
51808
#line 51809 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51809
} // closed Puma
 
51810
 
 
51811
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51812
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51813
#include "CExprResolveH.ah"
 
51814
#endif
 
51815
namespace Puma {
 
51816
 
 
51817
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21327
51818
class CT_SizeofExpr : public CT_Expression {
21328
 
#line 21329 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51819
#line 51820 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51820
  friend class ::CCExprResolve;
 
51821
  friend class ::CExprResolve;
21329
51822
  friend class ::WinIfExists;
21330
51823
  friend class ::WinImportHandler;
21331
51824
  friend class ::WinMacros;
21332
 
  friend class ::CMatchSyntax;
21333
 
  friend class ::ExtGnu;
 
51825
  friend class ::WinAsm;
 
51826
  friend class ::WinDeclSpecs;
 
51827
  friend class ::WinMemberExplSpec;
 
51828
  friend class ::WinTypeKeywords;
 
51829
  friend class ::WinFriend;
21334
51830
  friend class ::ExtAC;
21335
51831
  friend class ::ExtACBuilderCoupling;
21336
51832
  friend class ::ExtACSyntaxCoupling;
21337
51833
  friend class ::ExtACTree;
21338
51834
  friend class ::ExtACKeywords;
21339
 
  friend class ::WinAsm;
21340
 
  friend class ::WinDeclSpecs;
21341
 
  friend class ::WinMemberExplSpec;
21342
 
  friend class ::WinTypeKeywords;
 
51835
  friend class ::ExtGnu;
21343
51836
  friend class ::PragmaOnceUnitState;
21344
51837
  friend class ::PragmaOnce;
21345
 
  friend class ::CCExprResolve;
21346
 
  friend class ::CExprResolve;
 
51838
  friend class ::CMatchSyntax;
21347
51839
 
21348
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51840
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21349
51841
 
21350
51842
  CTree *sons[5]; // key, open, type, close, expr
21351
51843
 
21352
51844
public:
 
51845
  /** Constructor.
 
51846
   *  \param k The 'sizeof' keyword.
 
51847
   *  \param o Left parenthesis around the type name.
 
51848
   *  \param t The type from which to get the size.
 
51849
   *  \param c Right parenthesis around the type name. */
21353
51850
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
21354
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
 
51851
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
51852
    AddSon (sons[3], c); AddSon (sons[4], 0);
21355
51853
  }
 
51854
  /** Constructor.
 
51855
   *  \param k The 'sizeof' keyword.
 
51856
   *  \param e The expression from which to get the size. */
21356
51857
  CT_SizeofExpr (CTree *k, CTree *e) {
21357
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
 
51858
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
51859
    AddSon (sons[3], 0); AddSon (sons[4], e);
21358
51860
  }
 
51861
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21359
51862
  static const char *NodeId ();
 
51863
  /** Get the name of the node. Can be compared with NodeId(). */
21360
51864
  const char *NodeName () const { return NodeId (); }
 
51865
  /** Get the number of sons. */
21361
51866
  int Sons () const { return CTree::Sons (sons, 5); }
 
51867
  /** Get the n-th son.
 
51868
   *  \param n The index of the son.
 
51869
   *  \return The n-th son or NULL. */
21362
51870
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
51871
  /** Replace a son.
 
51872
   *  \param old_son The son to replace.
 
51873
   *  \param new_son The new son. */
21363
51874
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21364
51875
    CTree::ReplaceSon (sons, 5, old_son, new_son);
21365
51876
  }
 
51877
  /** Get the expression. */
21366
51878
  CTree *Expr () const { return sons[4]; }
 
51879
  /** Get the type name. */
21367
51880
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
21368
51881
   private:
21369
51882
  typedef CT_SizeofExpr CCExprResolveExpr;
21370
51883
 
21371
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
51884
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21372
51885
 public :
21373
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
51886
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
21374
51887
  typedef CT_SizeofExpr CExprResolveExpr;
21375
51888
 
21376
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
51889
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21377
51890
 public :
21378
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21379
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51891
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
51892
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21380
51893
};
21381
51894
 
 
51895
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
51896
 *  Tree node representing an index designator, i.e. [1]. */
21382
51897
 
21383
 
#line 21384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51898
#line 51899 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
21384
51899
} // closed Puma
 
51900
class CCExprResolve;
 
51901
class CExprResolve;
21385
51902
class WinIfExists;
21386
51903
class WinImportHandler;
21387
51904
class WinMacros;
21388
 
class CMatchSyntax;
21389
 
class ExtGnu;
 
51905
class WinAsm;
 
51906
class WinDeclSpecs;
 
51907
class WinMemberExplSpec;
 
51908
class WinTypeKeywords;
 
51909
class WinFriend;
21390
51910
class ExtAC;
21391
51911
class ExtACBuilderCoupling;
21392
51912
class ExtACSyntaxCoupling;
21393
51913
class ExtACTree;
21394
51914
class ExtACKeywords;
21395
 
class WinAsm;
21396
 
class WinDeclSpecs;
21397
 
class WinMemberExplSpec;
21398
 
class WinTypeKeywords;
 
51915
class ExtGnu;
21399
51916
class PragmaOnceUnitState;
21400
51917
class PragmaOnce;
21401
 
class CCExprResolve;
21402
 
class CExprResolve;
21403
 
namespace Puma {
21404
 
 
21405
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51918
class CMatchSyntax;
 
51919
namespace Puma {
 
51920
 
 
51921
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51922
 
 
51923
#line 51924 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51924
} // closed Puma
 
51925
 
 
51926
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51927
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51928
#include "CCExprResolveH.ah"
 
51929
#endif
 
51930
namespace Puma {
 
51931
 
 
51932
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51933
 
 
51934
#line 51935 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51935
} // closed Puma
 
51936
 
 
51937
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51938
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51939
#include "CExprResolveH.ah"
 
51940
#endif
 
51941
namespace Puma {
 
51942
 
 
51943
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21406
51944
class CT_IndexDesignator : public CT_Expression {
21407
 
#line 21408 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51945
#line 51946 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
51946
  friend class ::CCExprResolve;
 
51947
  friend class ::CExprResolve;
21408
51948
  friend class ::WinIfExists;
21409
51949
  friend class ::WinImportHandler;
21410
51950
  friend class ::WinMacros;
21411
 
  friend class ::CMatchSyntax;
21412
 
  friend class ::ExtGnu;
 
51951
  friend class ::WinAsm;
 
51952
  friend class ::WinDeclSpecs;
 
51953
  friend class ::WinMemberExplSpec;
 
51954
  friend class ::WinTypeKeywords;
 
51955
  friend class ::WinFriend;
21413
51956
  friend class ::ExtAC;
21414
51957
  friend class ::ExtACBuilderCoupling;
21415
51958
  friend class ::ExtACSyntaxCoupling;
21416
51959
  friend class ::ExtACTree;
21417
51960
  friend class ::ExtACKeywords;
21418
 
  friend class ::WinAsm;
21419
 
  friend class ::WinDeclSpecs;
21420
 
  friend class ::WinMemberExplSpec;
21421
 
  friend class ::WinTypeKeywords;
 
51961
  friend class ::ExtGnu;
21422
51962
  friend class ::PragmaOnceUnitState;
21423
51963
  friend class ::PragmaOnce;
21424
 
  friend class ::CCExprResolve;
21425
 
  friend class ::CExprResolve;
 
51964
  friend class ::CMatchSyntax;
21426
51965
 
21427
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51966
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21428
51967
 
21429
51968
  CTree *sons[3]; // open, index, close
21430
51969
 
21431
51970
public:
 
51971
  /** Constructor.
 
51972
   *  \param o Left bracket of the index designator.
 
51973
   *  \param i The index expression.
 
51974
   *  \param c Right bracket of the index designator. */
21432
51975
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
21433
 
    sons[0] = o; sons[1] = i; sons[2] = c;
 
51976
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
21434
51977
  }
 
51978
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21435
51979
  static const char *NodeId ();
 
51980
  /** Get the name of the node. Can be compared with NodeId(). */
21436
51981
  const char *NodeName () const { return NodeId (); }
 
51982
  /** Get the number of sons. */
21437
51983
  int Sons () const { return 3; }
 
51984
  /** Get the n-th son.
 
51985
   *  \param n The index of the son.
 
51986
   *  \return The n-th son or NULL. */
21438
51987
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
51988
  /** Replace a son.
 
51989
   *  \param old_son The son to replace.
 
51990
   *  \param new_son The new son. */
21439
51991
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21440
51992
    CTree::ReplaceSon (sons, 3, old_son, new_son);
21441
51993
  }
21442
51994
   private:
21443
51995
  typedef CT_IndexDesignator CCExprResolveExpr;
21444
51996
 
21445
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
51997
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21446
51998
 public :
21447
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
51999
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
21448
52000
  typedef CT_IndexDesignator CExprResolveExpr;
21449
52001
 
21450
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
52002
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21451
52003
 public :
21452
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21453
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52004
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
52005
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21454
52006
};
21455
52007
 
 
52008
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
52009
 *  Tree node representing a member designator, e.g. .a. */
21456
52010
 
21457
 
#line 21458 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52011
#line 52012 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
21458
52012
} // closed Puma
 
52013
class CCExprResolve;
 
52014
class CExprResolve;
21459
52015
class WinIfExists;
21460
52016
class WinImportHandler;
21461
52017
class WinMacros;
21462
 
class CMatchSyntax;
21463
 
class ExtGnu;
 
52018
class WinAsm;
 
52019
class WinDeclSpecs;
 
52020
class WinMemberExplSpec;
 
52021
class WinTypeKeywords;
 
52022
class WinFriend;
21464
52023
class ExtAC;
21465
52024
class ExtACBuilderCoupling;
21466
52025
class ExtACSyntaxCoupling;
21467
52026
class ExtACTree;
21468
52027
class ExtACKeywords;
21469
 
class WinAsm;
21470
 
class WinDeclSpecs;
21471
 
class WinMemberExplSpec;
21472
 
class WinTypeKeywords;
 
52028
class ExtGnu;
21473
52029
class PragmaOnceUnitState;
21474
52030
class PragmaOnce;
21475
 
class CCExprResolve;
21476
 
class CExprResolve;
21477
 
namespace Puma {
21478
 
 
21479
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52031
class CMatchSyntax;
 
52032
namespace Puma {
 
52033
 
 
52034
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52035
 
 
52036
#line 52037 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52037
} // closed Puma
 
52038
 
 
52039
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
52040
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
52041
#include "CCExprResolveH.ah"
 
52042
#endif
 
52043
namespace Puma {
 
52044
 
 
52045
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52046
 
 
52047
#line 52048 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52048
} // closed Puma
 
52049
 
 
52050
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
52051
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
52052
#include "CExprResolveH.ah"
 
52053
#endif
 
52054
namespace Puma {
 
52055
 
 
52056
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21480
52057
class CT_MembDesignator : public CT_Expression {
21481
 
#line 21482 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52058
#line 52059 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52059
  friend class ::CCExprResolve;
 
52060
  friend class ::CExprResolve;
21482
52061
  friend class ::WinIfExists;
21483
52062
  friend class ::WinImportHandler;
21484
52063
  friend class ::WinMacros;
21485
 
  friend class ::CMatchSyntax;
21486
 
  friend class ::ExtGnu;
 
52064
  friend class ::WinAsm;
 
52065
  friend class ::WinDeclSpecs;
 
52066
  friend class ::WinMemberExplSpec;
 
52067
  friend class ::WinTypeKeywords;
 
52068
  friend class ::WinFriend;
21487
52069
  friend class ::ExtAC;
21488
52070
  friend class ::ExtACBuilderCoupling;
21489
52071
  friend class ::ExtACSyntaxCoupling;
21490
52072
  friend class ::ExtACTree;
21491
52073
  friend class ::ExtACKeywords;
21492
 
  friend class ::WinAsm;
21493
 
  friend class ::WinDeclSpecs;
21494
 
  friend class ::WinMemberExplSpec;
21495
 
  friend class ::WinTypeKeywords;
 
52074
  friend class ::ExtGnu;
21496
52075
  friend class ::PragmaOnceUnitState;
21497
52076
  friend class ::PragmaOnce;
21498
 
  friend class ::CCExprResolve;
21499
 
  friend class ::CExprResolve;
 
52077
  friend class ::CMatchSyntax;
21500
52078
 
21501
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52079
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21502
52080
 
21503
52081
  CTree *sons[2]; // dot, member
21504
52082
 
21505
52083
public:
21506
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
 
52084
  /** Constructor.
 
52085
   *  \param d The dot before the member name.
 
52086
   *  \param m The member name. */
 
52087
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
52088
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21507
52089
  static const char *NodeId ();
 
52090
  /** Get the name of the node. Can be compared with NodeId(). */
21508
52091
  const char *NodeName () const { return NodeId (); }
 
52092
  /** Get the number of sons. */
21509
52093
  int Sons () const { return 2; }
 
52094
  /** Get the n-th son.
 
52095
   *  \param n The index of the son.
 
52096
   *  \return The n-th son or NULL. */
21510
52097
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
52098
  /** Replace a son.
 
52099
   *  \param old_son The son to replace.
 
52100
   *  \param new_son The new son. */
21511
52101
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21512
52102
    CTree::ReplaceSon (sons, 2, old_son, new_son);
21513
52103
  }
21514
52104
   private:
21515
52105
  typedef CT_MembDesignator CCExprResolveExpr;
21516
52106
 
21517
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
52107
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21518
52108
 public :
21519
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
52109
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
21520
52110
  typedef CT_MembDesignator CExprResolveExpr;
21521
52111
 
21522
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
52112
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21523
52113
 public :
21524
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21525
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52114
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
52115
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21526
52116
};
21527
52117
 
 
52118
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
52119
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
21528
52120
 
21529
 
#line 21530 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52121
#line 52122 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
21530
52122
} // closed Puma
 
52123
class CCExprResolve;
 
52124
class CExprResolve;
21531
52125
class WinIfExists;
21532
52126
class WinImportHandler;
21533
52127
class WinMacros;
21534
 
class CMatchSyntax;
21535
 
class ExtGnu;
 
52128
class WinAsm;
 
52129
class WinDeclSpecs;
 
52130
class WinMemberExplSpec;
 
52131
class WinTypeKeywords;
 
52132
class WinFriend;
21536
52133
class ExtAC;
21537
52134
class ExtACBuilderCoupling;
21538
52135
class ExtACSyntaxCoupling;
21539
52136
class ExtACTree;
21540
52137
class ExtACKeywords;
21541
 
class WinAsm;
21542
 
class WinDeclSpecs;
21543
 
class WinMemberExplSpec;
21544
 
class WinTypeKeywords;
 
52138
class ExtGnu;
21545
52139
class PragmaOnceUnitState;
21546
52140
class PragmaOnce;
21547
 
class CCExprResolve;
21548
 
class CExprResolve;
 
52141
class CMatchSyntax;
21549
52142
namespace Puma {
21550
52143
 
21551
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52144
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21552
52145
class CT_DesignatorSeq : public CT_List, public CSemValue {
21553
 
#line 21554 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52146
#line 52147 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52147
  friend class ::CCExprResolve;
 
52148
  friend class ::CExprResolve;
21554
52149
  friend class ::WinIfExists;
21555
52150
  friend class ::WinImportHandler;
21556
52151
  friend class ::WinMacros;
21557
 
  friend class ::CMatchSyntax;
21558
 
  friend class ::ExtGnu;
 
52152
  friend class ::WinAsm;
 
52153
  friend class ::WinDeclSpecs;
 
52154
  friend class ::WinMemberExplSpec;
 
52155
  friend class ::WinTypeKeywords;
 
52156
  friend class ::WinFriend;
21559
52157
  friend class ::ExtAC;
21560
52158
  friend class ::ExtACBuilderCoupling;
21561
52159
  friend class ::ExtACSyntaxCoupling;
21562
52160
  friend class ::ExtACTree;
21563
52161
  friend class ::ExtACKeywords;
21564
 
  friend class ::WinAsm;
21565
 
  friend class ::WinDeclSpecs;
21566
 
  friend class ::WinMemberExplSpec;
21567
 
  friend class ::WinTypeKeywords;
 
52162
  friend class ::ExtGnu;
21568
52163
  friend class ::PragmaOnceUnitState;
21569
52164
  friend class ::PragmaOnce;
21570
 
  friend class ::CCExprResolve;
21571
 
  friend class ::CExprResolve;
 
52165
  friend class ::CMatchSyntax;
21572
52166
 
21573
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52167
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21574
52168
 
21575
52169
public:
 
52170
  /** Constructor.
 
52171
   *  \param size Initial number of designators. */
21576
52172
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
52173
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21577
52174
  static const char *NodeId ();
 
52175
  /** Get the name of the node. Can be compared with NodeId(). */
21578
52176
  const char *NodeName () const { return NodeId (); }
21579
52177
 
 
52178
  /** Get the type of the entity to initialize. */
21580
52179
  CTypeInfo *Type () const { return type; }
 
52180
  /** Get the value of the entity to initialize. */
21581
52181
  CExprValue *Value () const { return value; }
 
52182
  /** Get the semantic value object. */
21582
52183
  CSemValue *SemValue () const { return (CSemValue*)this; }
21583
52184
};
21584
52185
 
21588
52189
/*                                                                           */
21589
52190
/*****************************************************************************/
21590
52191
 
 
52192
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
52193
 *  Base class for all tree nodes representing declaration specifiers. */
21591
52194
 
21592
 
#line 21593 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52195
#line 52196 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
21593
52196
} // closed Puma
 
52197
class CCExprResolve;
 
52198
class CExprResolve;
21594
52199
class WinIfExists;
21595
52200
class WinImportHandler;
21596
52201
class WinMacros;
21597
 
class CMatchSyntax;
21598
 
class ExtGnu;
 
52202
class WinAsm;
 
52203
class WinDeclSpecs;
 
52204
class WinMemberExplSpec;
 
52205
class WinTypeKeywords;
 
52206
class WinFriend;
21599
52207
class ExtAC;
21600
52208
class ExtACBuilderCoupling;
21601
52209
class ExtACSyntaxCoupling;
21602
52210
class ExtACTree;
21603
52211
class ExtACKeywords;
21604
 
class WinAsm;
21605
 
class WinDeclSpecs;
21606
 
class WinMemberExplSpec;
21607
 
class WinTypeKeywords;
 
52212
class ExtGnu;
21608
52213
class PragmaOnceUnitState;
21609
52214
class PragmaOnce;
21610
 
class CCExprResolve;
21611
 
class CExprResolve;
 
52215
class CMatchSyntax;
21612
52216
namespace Puma {
21613
52217
 
21614
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52218
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21615
52219
class CT_DeclSpec : public CTree {
21616
 
#line 21617 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52220
#line 52221 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52221
  friend class ::CCExprResolve;
 
52222
  friend class ::CExprResolve;
21617
52223
  friend class ::WinIfExists;
21618
52224
  friend class ::WinImportHandler;
21619
52225
  friend class ::WinMacros;
21620
 
  friend class ::CMatchSyntax;
21621
 
  friend class ::ExtGnu;
 
52226
  friend class ::WinAsm;
 
52227
  friend class ::WinDeclSpecs;
 
52228
  friend class ::WinMemberExplSpec;
 
52229
  friend class ::WinTypeKeywords;
 
52230
  friend class ::WinFriend;
21622
52231
  friend class ::ExtAC;
21623
52232
  friend class ::ExtACBuilderCoupling;
21624
52233
  friend class ::ExtACSyntaxCoupling;
21625
52234
  friend class ::ExtACTree;
21626
52235
  friend class ::ExtACKeywords;
21627
 
  friend class ::WinAsm;
21628
 
  friend class ::WinDeclSpecs;
21629
 
  friend class ::WinMemberExplSpec;
21630
 
  friend class ::WinTypeKeywords;
 
52236
  friend class ::ExtGnu;
21631
52237
  friend class ::PragmaOnceUnitState;
21632
52238
  friend class ::PragmaOnce;
21633
 
  friend class ::CCExprResolve;
21634
 
  friend class ::CExprResolve;
 
52239
  friend class ::CMatchSyntax;
21635
52240
 
21636
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52241
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21637
52242
 
21638
52243
protected:
 
52244
  /** Constructor. */
21639
52245
  CT_DeclSpec () {}
21640
52246
};
21641
52247
 
 
52248
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
52249
 *  Tree node representing a primitive declaration specifier. */
21642
52250
 
21643
 
#line 21644 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52251
#line 52252 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
21644
52252
} // closed Puma
 
52253
class CCExprResolve;
 
52254
class CExprResolve;
21645
52255
class WinIfExists;
21646
52256
class WinImportHandler;
21647
52257
class WinMacros;
21648
 
class CMatchSyntax;
21649
 
class ExtGnu;
 
52258
class WinAsm;
 
52259
class WinDeclSpecs;
 
52260
class WinMemberExplSpec;
 
52261
class WinTypeKeywords;
 
52262
class WinFriend;
21650
52263
class ExtAC;
21651
52264
class ExtACBuilderCoupling;
21652
52265
class ExtACSyntaxCoupling;
21653
52266
class ExtACTree;
21654
52267
class ExtACKeywords;
21655
 
class WinAsm;
21656
 
class WinDeclSpecs;
21657
 
class WinMemberExplSpec;
21658
 
class WinTypeKeywords;
 
52268
class ExtGnu;
21659
52269
class PragmaOnceUnitState;
21660
52270
class PragmaOnce;
21661
 
class CCExprResolve;
21662
 
class CExprResolve;
 
52271
class CMatchSyntax;
21663
52272
namespace Puma {
21664
52273
 
21665
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52274
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21666
52275
class CT_PrimDeclSpec : public CT_DeclSpec {
21667
 
#line 21668 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52276
#line 52277 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52277
  friend class ::CCExprResolve;
 
52278
  friend class ::CExprResolve;
21668
52279
  friend class ::WinIfExists;
21669
52280
  friend class ::WinImportHandler;
21670
52281
  friend class ::WinMacros;
21671
 
  friend class ::CMatchSyntax;
21672
 
  friend class ::ExtGnu;
 
52282
  friend class ::WinAsm;
 
52283
  friend class ::WinDeclSpecs;
 
52284
  friend class ::WinMemberExplSpec;
 
52285
  friend class ::WinTypeKeywords;
 
52286
  friend class ::WinFriend;
21673
52287
  friend class ::ExtAC;
21674
52288
  friend class ::ExtACBuilderCoupling;
21675
52289
  friend class ::ExtACSyntaxCoupling;
21676
52290
  friend class ::ExtACTree;
21677
52291
  friend class ::ExtACKeywords;
21678
 
  friend class ::WinAsm;
21679
 
  friend class ::WinDeclSpecs;
21680
 
  friend class ::WinMemberExplSpec;
21681
 
  friend class ::WinTypeKeywords;
 
52292
  friend class ::ExtGnu;
21682
52293
  friend class ::PragmaOnceUnitState;
21683
52294
  friend class ::PragmaOnce;
21684
 
  friend class ::CCExprResolve;
21685
 
  friend class ::CExprResolve;
 
52295
  friend class ::CMatchSyntax;
21686
52296
 
21687
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52297
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21688
52298
 
21689
52299
public:
21690
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
21691
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
21692
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
21693
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
21694
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
21695
 
              // AspectC++ specific type specifier
21696
 
              PDS_UNKNOWN_T,
21697
 
              // Win specific declaration specifiers
21698
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
21699
 
              PDS_UNKNOWN, PDS_NUM };
 
52300
  /** Declaration specifier types. */
 
52301
  enum Type { 
 
52302
    PDS_FRIEND,    /** friend */
 
52303
    PDS_TYPEDEF,   /** typedef */
 
52304
    PDS_AUTO,      /** auto */
 
52305
    PDS_REGISTER,  /** register */
 
52306
    PDS_STATIC,    /** static */
 
52307
    PDS_EXTERN,    /** extern */
 
52308
    PDS_MUTABLE,   /** mutable */
 
52309
    PDS_INLINE,    /** inline */
 
52310
    PDS_VIRTUAL,   /** virtual */
 
52311
    PDS_EXPLICIT,  /** explicit */
 
52312
    PDS_CONST,     /** const */
 
52313
    PDS_VOLATILE,  /** volatile */
 
52314
    PDS_RESTRICT,  /** restrict */
 
52315
    PDS_CHAR,      /** char */
 
52316
    PDS_WCHAR_T,   /** wchar_t */
 
52317
    PDS_BOOL,      /** bool */
 
52318
    PDS_SHORT,     /** short */
 
52319
    PDS_INT,       /** int */
 
52320
    PDS_LONG,      /** long */
 
52321
    PDS_SIGNED,    /** signed */
 
52322
    PDS_UNSIGNED,  /** unsigned */
 
52323
    PDS_FLOAT,     /** float */
 
52324
    PDS_DOUBLE,    /** double */
 
52325
    PDS_VOID,      /** void */
 
52326
    // AspectC++ specific type specifier
 
52327
    PDS_UNKNOWN_T, /** unknown_t */
 
52328
    // Win specific declaration specifiers
 
52329
    PDS_CDECL,     /** __cdecl */
 
52330
    PDS_STDCALL,   /** __stdcall */
 
52331
    PDS_FASTCALL,  /** __fastcall */
 
52332
    PDS_INT64,     /** __int64 */
 
52333
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
52334
    PDS_NUM        /** Number of declaration specifier types. */
 
52335
  };
21700
52336
 
21701
52337
private:
21702
52338
  Type _type;
21703
 
  CT_Token *_token;
 
52339
  CTree *_token; // has to be a CT_Token
21704
52340
 
21705
52341
  void determine_type ();
21706
52342
 
21707
52343
public:
21708
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
 
52344
  /** Constructor.
 
52345
   *  \param t The token containing the declaration specifier. */
 
52346
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
52347
  /** Constructor.
 
52348
   *  \param t The declaration specifier type. */
21709
52349
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
52350
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21710
52351
  static const char *NodeId ();
 
52352
  /** Get the name of the node. Can be compared with NodeId(). */
21711
52353
  const char *NodeName () const { return NodeId (); }
 
52354
  /** Get the number of sons. */
21712
52355
  int Sons () const { return _token ? 1 : 0; }
 
52356
  /** Get the n-th son.
 
52357
   *  \param n The index of the son.
 
52358
   *  \return The n-th son or NULL. */
21713
52359
  CTree *Son (int n) const 
21714
52360
   { return (n == 0) ? _token : (CTree*)0; }
 
52361
  /** Get the textual representation of the declaration specifier.
 
52362
   *  \return The string representation or " ". */
21715
52363
  const char *SpecText () const 
21716
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
 
52364
   { return _token ? _token->token ()->text () : " "; }
 
52365
  /** Get the declaration specifier type. */
21717
52366
  Type SpecType () const { return _type; }
 
52367
  /** Number of declaration specifier types. */
21718
52368
  static const int NumTypes = PDS_NUM;
 
52369
  /** Replace a son.
 
52370
   *  \param old_son The son to replace.
 
52371
   *  \param new_son The new son. */
 
52372
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
52373
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
52374
    determine_type ();
 
52375
  }
21719
52376
};
21720
52377
 
 
52378
/** \class CT_NamedType CTree.h Puma/CTree.h
 
52379
 *  Tree node representing a named type, e.g. (int*)a. 
 
52380
 *  where int* is a type with a generated name. */
21721
52381
 
21722
 
#line 21723 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52382
#line 52383 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
21723
52383
} // closed Puma
 
52384
class CCExprResolve;
 
52385
class CExprResolve;
21724
52386
class WinIfExists;
21725
52387
class WinImportHandler;
21726
52388
class WinMacros;
21727
 
class CMatchSyntax;
21728
 
class ExtGnu;
 
52389
class WinAsm;
 
52390
class WinDeclSpecs;
 
52391
class WinMemberExplSpec;
 
52392
class WinTypeKeywords;
 
52393
class WinFriend;
21729
52394
class ExtAC;
21730
52395
class ExtACBuilderCoupling;
21731
52396
class ExtACSyntaxCoupling;
21732
52397
class ExtACTree;
21733
52398
class ExtACKeywords;
21734
 
class WinAsm;
21735
 
class WinDeclSpecs;
21736
 
class WinMemberExplSpec;
21737
 
class WinTypeKeywords;
 
52399
class ExtGnu;
21738
52400
class PragmaOnceUnitState;
21739
52401
class PragmaOnce;
21740
 
class CCExprResolve;
21741
 
class CExprResolve;
 
52402
class CMatchSyntax;
21742
52403
namespace Puma {
21743
52404
 
21744
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52405
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21745
52406
class CT_NamedType : public CT_DeclSpec, public CSemObject {
21746
 
#line 21747 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52407
#line 52408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52408
  friend class ::CCExprResolve;
 
52409
  friend class ::CExprResolve;
21747
52410
  friend class ::WinIfExists;
21748
52411
  friend class ::WinImportHandler;
21749
52412
  friend class ::WinMacros;
21750
 
  friend class ::CMatchSyntax;
21751
 
  friend class ::ExtGnu;
 
52413
  friend class ::WinAsm;
 
52414
  friend class ::WinDeclSpecs;
 
52415
  friend class ::WinMemberExplSpec;
 
52416
  friend class ::WinTypeKeywords;
 
52417
  friend class ::WinFriend;
21752
52418
  friend class ::ExtAC;
21753
52419
  friend class ::ExtACBuilderCoupling;
21754
52420
  friend class ::ExtACSyntaxCoupling;
21755
52421
  friend class ::ExtACTree;
21756
52422
  friend class ::ExtACKeywords;
21757
 
  friend class ::WinAsm;
21758
 
  friend class ::WinDeclSpecs;
21759
 
  friend class ::WinMemberExplSpec;
21760
 
  friend class ::WinTypeKeywords;
 
52423
  friend class ::ExtGnu;
21761
52424
  friend class ::PragmaOnceUnitState;
21762
52425
  friend class ::PragmaOnce;
21763
 
  friend class ::CCExprResolve;
21764
 
  friend class ::CExprResolve;
 
52426
  friend class ::CMatchSyntax;
21765
52427
 
21766
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52428
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21767
52429
 
21768
52430
  CTree *sons[2]; // declspecs, declarator
21769
52431
 
21770
52432
public:
21771
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
 
52433
  /** Constructor.
 
52434
   *  \param dss The declaration specifier sequence of the type.
 
52435
   *  \param d The type declarator. */
 
52436
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
52437
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21772
52438
  static const char *NodeId ();
 
52439
  /** Get the name of the node. Can be compared with NodeId(). */
21773
52440
  const char *NodeName () const { return NodeId (); }
 
52441
  /** Get the number of sons. */
21774
52442
  int Sons () const { return CTree::Sons (sons, 2); }
 
52443
  /** Get the n-th son.
 
52444
   *  \param n The index of the son.
 
52445
   *  \return The n-th son or NULL. */
21775
52446
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
52447
  /** Get the declarator. */
21776
52448
  CTree *Declarator () const { return sons[1]; }
 
52449
  /** Replace a son.
 
52450
   *  \param old_son The son to replace.
 
52451
   *  \param new_son The new son. */
21777
52452
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21778
52453
    CTree::ReplaceSon (sons, 2, old_son, new_son);
21779
52454
  }
 
52455
  /** Get the semantic information object. */
21780
52456
  CSemObject *SemObject () const { return (CSemObject*)this; }
21781
52457
};
21782
52458
      
 
52459
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
52460
 *  Tree node representing a class specifier, e.g. class X. */
21783
52461
 
21784
 
#line 21785 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52462
#line 52463 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
21785
52463
} // closed Puma
 
52464
class CCExprResolve;
 
52465
class CExprResolve;
21786
52466
class WinIfExists;
21787
52467
class WinImportHandler;
21788
52468
class WinMacros;
21789
 
class CMatchSyntax;
21790
 
class ExtGnu;
 
52469
class WinAsm;
 
52470
class WinDeclSpecs;
 
52471
class WinMemberExplSpec;
 
52472
class WinTypeKeywords;
 
52473
class WinFriend;
21791
52474
class ExtAC;
21792
52475
class ExtACBuilderCoupling;
21793
52476
class ExtACSyntaxCoupling;
21794
52477
class ExtACTree;
21795
52478
class ExtACKeywords;
21796
 
class WinAsm;
21797
 
class WinDeclSpecs;
21798
 
class WinMemberExplSpec;
21799
 
class WinTypeKeywords;
 
52479
class ExtGnu;
21800
52480
class PragmaOnceUnitState;
21801
52481
class PragmaOnce;
21802
 
class CCExprResolve;
21803
 
class CExprResolve;
 
52482
class CMatchSyntax;
21804
52483
namespace Puma {
21805
52484
 
21806
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52485
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21807
52486
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
21808
 
#line 21809 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52487
#line 52488 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52488
  friend class ::CCExprResolve;
 
52489
  friend class ::CExprResolve;
21809
52490
  friend class ::WinIfExists;
21810
52491
  friend class ::WinImportHandler;
21811
52492
  friend class ::WinMacros;
21812
 
  friend class ::CMatchSyntax;
21813
 
  friend class ::ExtGnu;
 
52493
  friend class ::WinAsm;
 
52494
  friend class ::WinDeclSpecs;
 
52495
  friend class ::WinMemberExplSpec;
 
52496
  friend class ::WinTypeKeywords;
 
52497
  friend class ::WinFriend;
21814
52498
  friend class ::ExtAC;
21815
52499
  friend class ::ExtACBuilderCoupling;
21816
52500
  friend class ::ExtACSyntaxCoupling;
21817
52501
  friend class ::ExtACTree;
21818
52502
  friend class ::ExtACKeywords;
21819
 
  friend class ::WinAsm;
21820
 
  friend class ::WinDeclSpecs;
21821
 
  friend class ::WinMemberExplSpec;
21822
 
  friend class ::WinTypeKeywords;
 
52503
  friend class ::ExtGnu;
21823
52504
  friend class ::PragmaOnceUnitState;
21824
52505
  friend class ::PragmaOnce;
21825
 
  friend class ::CCExprResolve;
21826
 
  friend class ::CExprResolve;
 
52506
  friend class ::CMatchSyntax;
21827
52507
 
21828
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52508
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21829
52509
 
21830
52510
  CTree *sons[2]; // key, name
21831
52511
  
21832
52512
public:
21833
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
 
52513
  /** Constructor.
 
52514
   *  \param k The 'class' or 'struct' keyword.
 
52515
   *  \param n The class name. */
 
52516
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
52517
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21834
52518
  static const char *NodeId ();
 
52519
  /** Get the name of the node. Can be compared with NodeId(). */
21835
52520
  const char *NodeName () const { return NodeId (); }
 
52521
  /** Get the number of sons. */
21836
52522
  int Sons () const { return 2; }
 
52523
  /** Get the n-th son.
 
52524
   *  \param n The index of the son.
 
52525
   *  \return The n-th son or NULL. */
21837
52526
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
52527
  /** Get the class name. */
21838
52528
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
52529
  /** Get the semantic information object. */
21839
52530
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
52531
  /** Replace a son.
 
52532
   *  \param old_son The son to replace.
 
52533
   *  \param new_son The new son. */
21840
52534
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21841
52535
    CTree::ReplaceSon (sons, 2, old_son, new_son);
21842
52536
  }
21843
52537
};
21844
52538
 
 
52539
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
52540
 *  Tree node representing a union specifier, e.g. union X. */
21845
52541
 
21846
 
#line 21847 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52542
#line 52543 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
21847
52543
} // closed Puma
 
52544
class CCExprResolve;
 
52545
class CExprResolve;
21848
52546
class WinIfExists;
21849
52547
class WinImportHandler;
21850
52548
class WinMacros;
21851
 
class CMatchSyntax;
21852
 
class ExtGnu;
 
52549
class WinAsm;
 
52550
class WinDeclSpecs;
 
52551
class WinMemberExplSpec;
 
52552
class WinTypeKeywords;
 
52553
class WinFriend;
21853
52554
class ExtAC;
21854
52555
class ExtACBuilderCoupling;
21855
52556
class ExtACSyntaxCoupling;
21856
52557
class ExtACTree;
21857
52558
class ExtACKeywords;
21858
 
class WinAsm;
21859
 
class WinDeclSpecs;
21860
 
class WinMemberExplSpec;
21861
 
class WinTypeKeywords;
 
52559
class ExtGnu;
21862
52560
class PragmaOnceUnitState;
21863
52561
class PragmaOnce;
21864
 
class CCExprResolve;
21865
 
class CExprResolve;
 
52562
class CMatchSyntax;
21866
52563
namespace Puma {
21867
52564
 
21868
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52565
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21869
52566
class CT_UnionSpec : public CT_ClassSpec {
21870
 
#line 21871 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52567
#line 52568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52568
  friend class ::CCExprResolve;
 
52569
  friend class ::CExprResolve;
21871
52570
  friend class ::WinIfExists;
21872
52571
  friend class ::WinImportHandler;
21873
52572
  friend class ::WinMacros;
21874
 
  friend class ::CMatchSyntax;
21875
 
  friend class ::ExtGnu;
 
52573
  friend class ::WinAsm;
 
52574
  friend class ::WinDeclSpecs;
 
52575
  friend class ::WinMemberExplSpec;
 
52576
  friend class ::WinTypeKeywords;
 
52577
  friend class ::WinFriend;
21876
52578
  friend class ::ExtAC;
21877
52579
  friend class ::ExtACBuilderCoupling;
21878
52580
  friend class ::ExtACSyntaxCoupling;
21879
52581
  friend class ::ExtACTree;
21880
52582
  friend class ::ExtACKeywords;
21881
 
  friend class ::WinAsm;
21882
 
  friend class ::WinDeclSpecs;
21883
 
  friend class ::WinMemberExplSpec;
21884
 
  friend class ::WinTypeKeywords;
 
52583
  friend class ::ExtGnu;
21885
52584
  friend class ::PragmaOnceUnitState;
21886
52585
  friend class ::PragmaOnce;
21887
 
  friend class ::CCExprResolve;
21888
 
  friend class ::CExprResolve;
 
52586
  friend class ::CMatchSyntax;
21889
52587
 
21890
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52588
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21891
52589
 
21892
52590
public:
 
52591
  /** Constructor.
 
52592
   *  \param k The 'union' keyword.
 
52593
   *  \param n The name of the union. */
21893
52594
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
52595
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21894
52596
  static const char *NodeId ();
 
52597
  /** Get the name of the node. Can be compared with NodeId(). */
21895
52598
  const char *NodeName () const { return NodeId (); }
21896
52599
};
21897
52600
 
 
52601
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
52602
 *  Tree node representing an enumeration specifier, e.g. enum X. */
21898
52603
 
21899
 
#line 21900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52604
#line 52605 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
21900
52605
} // closed Puma
 
52606
class CCExprResolve;
 
52607
class CExprResolve;
21901
52608
class WinIfExists;
21902
52609
class WinImportHandler;
21903
52610
class WinMacros;
21904
 
class CMatchSyntax;
21905
 
class ExtGnu;
 
52611
class WinAsm;
 
52612
class WinDeclSpecs;
 
52613
class WinMemberExplSpec;
 
52614
class WinTypeKeywords;
 
52615
class WinFriend;
21906
52616
class ExtAC;
21907
52617
class ExtACBuilderCoupling;
21908
52618
class ExtACSyntaxCoupling;
21909
52619
class ExtACTree;
21910
52620
class ExtACKeywords;
21911
 
class WinAsm;
21912
 
class WinDeclSpecs;
21913
 
class WinMemberExplSpec;
21914
 
class WinTypeKeywords;
 
52621
class ExtGnu;
21915
52622
class PragmaOnceUnitState;
21916
52623
class PragmaOnce;
21917
 
class CCExprResolve;
21918
 
class CExprResolve;
 
52624
class CMatchSyntax;
21919
52625
namespace Puma {
21920
52626
 
21921
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52627
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21922
52628
class CT_EnumSpec : public CT_ClassSpec {
21923
 
#line 21924 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52629
#line 52630 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52630
  friend class ::CCExprResolve;
 
52631
  friend class ::CExprResolve;
21924
52632
  friend class ::WinIfExists;
21925
52633
  friend class ::WinImportHandler;
21926
52634
  friend class ::WinMacros;
21927
 
  friend class ::CMatchSyntax;
21928
 
  friend class ::ExtGnu;
 
52635
  friend class ::WinAsm;
 
52636
  friend class ::WinDeclSpecs;
 
52637
  friend class ::WinMemberExplSpec;
 
52638
  friend class ::WinTypeKeywords;
 
52639
  friend class ::WinFriend;
21929
52640
  friend class ::ExtAC;
21930
52641
  friend class ::ExtACBuilderCoupling;
21931
52642
  friend class ::ExtACSyntaxCoupling;
21932
52643
  friend class ::ExtACTree;
21933
52644
  friend class ::ExtACKeywords;
21934
 
  friend class ::WinAsm;
21935
 
  friend class ::WinDeclSpecs;
21936
 
  friend class ::WinMemberExplSpec;
21937
 
  friend class ::WinTypeKeywords;
 
52645
  friend class ::ExtGnu;
21938
52646
  friend class ::PragmaOnceUnitState;
21939
52647
  friend class ::PragmaOnce;
21940
 
  friend class ::CCExprResolve;
21941
 
  friend class ::CExprResolve;
 
52648
  friend class ::CMatchSyntax;
21942
52649
 
21943
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52650
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21944
52651
 
21945
52652
public:
 
52653
  /** Constructor.
 
52654
   *  \param k The 'enum' keyword. 
 
52655
   *  \param n The name of the enumeration. */
21946
52656
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
52657
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21947
52658
  static const char *NodeId ();
 
52659
  /** Get the name of the node. Can be compared with NodeId(). */
21948
52660
  const char *NodeName () const { return NodeId (); }
21949
52661
};
21950
52662
 
 
52663
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
52664
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
21951
52665
 
21952
 
#line 21953 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52666
#line 52667 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
21953
52667
} // closed Puma
 
52668
class CCExprResolve;
 
52669
class CExprResolve;
21954
52670
class WinIfExists;
21955
52671
class WinImportHandler;
21956
52672
class WinMacros;
21957
 
class CMatchSyntax;
21958
 
class ExtGnu;
 
52673
class WinAsm;
 
52674
class WinDeclSpecs;
 
52675
class WinMemberExplSpec;
 
52676
class WinTypeKeywords;
 
52677
class WinFriend;
21959
52678
class ExtAC;
21960
52679
class ExtACBuilderCoupling;
21961
52680
class ExtACSyntaxCoupling;
21962
52681
class ExtACTree;
21963
52682
class ExtACKeywords;
21964
 
class WinAsm;
21965
 
class WinDeclSpecs;
21966
 
class WinMemberExplSpec;
21967
 
class WinTypeKeywords;
 
52683
class ExtGnu;
21968
52684
class PragmaOnceUnitState;
21969
52685
class PragmaOnce;
21970
 
class CCExprResolve;
21971
 
class CExprResolve;
 
52686
class CMatchSyntax;
21972
52687
namespace Puma {
21973
52688
 
21974
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52689
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21975
52690
class CT_ExceptionSpec : public CT_DeclSpec {
21976
 
#line 21977 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52691
#line 52692 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52692
  friend class ::CCExprResolve;
 
52693
  friend class ::CExprResolve;
21977
52694
  friend class ::WinIfExists;
21978
52695
  friend class ::WinImportHandler;
21979
52696
  friend class ::WinMacros;
21980
 
  friend class ::CMatchSyntax;
21981
 
  friend class ::ExtGnu;
 
52697
  friend class ::WinAsm;
 
52698
  friend class ::WinDeclSpecs;
 
52699
  friend class ::WinMemberExplSpec;
 
52700
  friend class ::WinTypeKeywords;
 
52701
  friend class ::WinFriend;
21982
52702
  friend class ::ExtAC;
21983
52703
  friend class ::ExtACBuilderCoupling;
21984
52704
  friend class ::ExtACSyntaxCoupling;
21985
52705
  friend class ::ExtACTree;
21986
52706
  friend class ::ExtACKeywords;
21987
 
  friend class ::WinAsm;
21988
 
  friend class ::WinDeclSpecs;
21989
 
  friend class ::WinMemberExplSpec;
21990
 
  friend class ::WinTypeKeywords;
 
52707
  friend class ::ExtGnu;
21991
52708
  friend class ::PragmaOnceUnitState;
21992
52709
  friend class ::PragmaOnce;
21993
 
  friend class ::CCExprResolve;
21994
 
  friend class ::CExprResolve;
 
52710
  friend class ::CMatchSyntax;
21995
52711
 
21996
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52712
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21997
52713
 
21998
52714
  CTree *sons[2]; // throw, type_id_list
21999
52715
  
22000
52716
public:
22001
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
 
52717
  /** Constructor.
 
52718
   *  \param k The 'throw' keyword.
 
52719
   *  \param l The type list for the exception type to throw. */
 
52720
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
52721
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22002
52722
  static const char *NodeId ();
 
52723
  /** Get the name of the node. Can be compared with NodeId(). */
22003
52724
  const char *NodeName () const { return NodeId (); }
 
52725
  /** Get the number of sons. */
22004
52726
  int Sons () const { return 2; }
 
52727
  /** Get the n-th son.
 
52728
   *  \param n The index of the son.
 
52729
   *  \return The n-th son or NULL. */
22005
52730
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
52731
  /** Get the exception type list. */
22006
52732
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
52733
  /** Replace a son.
 
52734
   *  \param old_son The son to replace.
 
52735
   *  \param new_son The new son. */
22007
52736
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22008
52737
    CTree::ReplaceSon (sons, 2, old_son, new_son);
22009
52738
  }
22015
52744
/*                                                                           */
22016
52745
/*****************************************************************************/
22017
52746
 
 
52747
/** \class CT_Decl CTree.h Puma/CTree.h
 
52748
 *  Base class for all tree nodes representing declarations. */
22018
52749
 
22019
 
#line 22020 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52750
#line 52751 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
22020
52751
} // closed Puma
 
52752
class CCExprResolve;
 
52753
class CExprResolve;
22021
52754
class WinIfExists;
22022
52755
class WinImportHandler;
22023
52756
class WinMacros;
22024
 
class CMatchSyntax;
22025
 
class ExtGnu;
 
52757
class WinAsm;
 
52758
class WinDeclSpecs;
 
52759
class WinMemberExplSpec;
 
52760
class WinTypeKeywords;
 
52761
class WinFriend;
22026
52762
class ExtAC;
22027
52763
class ExtACBuilderCoupling;
22028
52764
class ExtACSyntaxCoupling;
22029
52765
class ExtACTree;
22030
52766
class ExtACKeywords;
22031
 
class WinAsm;
22032
 
class WinDeclSpecs;
22033
 
class WinMemberExplSpec;
22034
 
class WinTypeKeywords;
 
52767
class ExtGnu;
22035
52768
class PragmaOnceUnitState;
22036
52769
class PragmaOnce;
22037
 
class CCExprResolve;
22038
 
class CExprResolve;
 
52770
class CMatchSyntax;
22039
52771
namespace Puma {
22040
52772
 
22041
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52773
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22042
52774
class CT_Decl : public CTree {
22043
 
#line 22044 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52775
#line 52776 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52776
  friend class ::CCExprResolve;
 
52777
  friend class ::CExprResolve;
22044
52778
  friend class ::WinIfExists;
22045
52779
  friend class ::WinImportHandler;
22046
52780
  friend class ::WinMacros;
22047
 
  friend class ::CMatchSyntax;
22048
 
  friend class ::ExtGnu;
 
52781
  friend class ::WinAsm;
 
52782
  friend class ::WinDeclSpecs;
 
52783
  friend class ::WinMemberExplSpec;
 
52784
  friend class ::WinTypeKeywords;
 
52785
  friend class ::WinFriend;
22049
52786
  friend class ::ExtAC;
22050
52787
  friend class ::ExtACBuilderCoupling;
22051
52788
  friend class ::ExtACSyntaxCoupling;
22052
52789
  friend class ::ExtACTree;
22053
52790
  friend class ::ExtACKeywords;
22054
 
  friend class ::WinAsm;
22055
 
  friend class ::WinDeclSpecs;
22056
 
  friend class ::WinMemberExplSpec;
22057
 
  friend class ::WinTypeKeywords;
 
52791
  friend class ::ExtGnu;
22058
52792
  friend class ::PragmaOnceUnitState;
22059
52793
  friend class ::PragmaOnce;
22060
 
  friend class ::CCExprResolve;
22061
 
  friend class ::CExprResolve;
 
52794
  friend class ::CMatchSyntax;
22062
52795
 
22063
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52796
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22064
52797
 
22065
52798
  CT_LinkageSpec *_linkage;
 
52799
  
22066
52800
protected:
 
52801
  /** Constructor. */
22067
52802
  CT_Decl () : _linkage (0) {}
 
52803
  
22068
52804
public:
 
52805
  /** Set the linkage of the declared entity.
 
52806
   *  \param l The linkage specifiers. */
22069
52807
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
52808
  /** Get the linkage specifiers. */
22070
52809
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
52810
  /** Get this. */
 
52811
  virtual CT_Decl *IsDeclaration () { return this; }
22071
52812
};
22072
52813
 
 
52814
/** \class CT_Program CTree.h Puma/CTree.h
 
52815
 *  Root node of C/C++ syntax tree. */
22073
52816
 
22074
 
#line 22075 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52817
#line 52818 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
22075
52818
} // closed Puma
 
52819
class CCExprResolve;
 
52820
class CExprResolve;
22076
52821
class WinIfExists;
22077
52822
class WinImportHandler;
22078
52823
class WinMacros;
22079
 
class CMatchSyntax;
22080
 
class ExtGnu;
 
52824
class WinAsm;
 
52825
class WinDeclSpecs;
 
52826
class WinMemberExplSpec;
 
52827
class WinTypeKeywords;
 
52828
class WinFriend;
22081
52829
class ExtAC;
22082
52830
class ExtACBuilderCoupling;
22083
52831
class ExtACSyntaxCoupling;
22084
52832
class ExtACTree;
22085
52833
class ExtACKeywords;
22086
 
class WinAsm;
22087
 
class WinDeclSpecs;
22088
 
class WinMemberExplSpec;
22089
 
class WinTypeKeywords;
 
52834
class ExtGnu;
22090
52835
class PragmaOnceUnitState;
22091
52836
class PragmaOnce;
22092
 
class CCExprResolve;
22093
 
class CExprResolve;
 
52837
class CMatchSyntax;
22094
52838
namespace Puma {
22095
52839
 
22096
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52840
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22097
52841
class CT_Program : public CT_DeclList, public CSemScope {
22098
 
#line 22099 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52842
#line 52843 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52843
  friend class ::CCExprResolve;
 
52844
  friend class ::CExprResolve;
22099
52845
  friend class ::WinIfExists;
22100
52846
  friend class ::WinImportHandler;
22101
52847
  friend class ::WinMacros;
22102
 
  friend class ::CMatchSyntax;
22103
 
  friend class ::ExtGnu;
 
52848
  friend class ::WinAsm;
 
52849
  friend class ::WinDeclSpecs;
 
52850
  friend class ::WinMemberExplSpec;
 
52851
  friend class ::WinTypeKeywords;
 
52852
  friend class ::WinFriend;
22104
52853
  friend class ::ExtAC;
22105
52854
  friend class ::ExtACBuilderCoupling;
22106
52855
  friend class ::ExtACSyntaxCoupling;
22107
52856
  friend class ::ExtACTree;
22108
52857
  friend class ::ExtACKeywords;
22109
 
  friend class ::WinAsm;
22110
 
  friend class ::WinDeclSpecs;
22111
 
  friend class ::WinMemberExplSpec;
22112
 
  friend class ::WinTypeKeywords;
 
52858
  friend class ::ExtGnu;
22113
52859
  friend class ::PragmaOnceUnitState;
22114
52860
  friend class ::PragmaOnce;
22115
 
  friend class ::CCExprResolve;
22116
 
  friend class ::CExprResolve;
 
52861
  friend class ::CMatchSyntax;
22117
52862
 
22118
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52863
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22119
52864
 
22120
52865
public:
 
52866
  /** Constructor.
 
52867
   *  \param size The initial number of declarations in the program.
 
52868
   *  \param incr The initial increment count. */
22121
52869
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
52870
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22122
52871
  static const char *NodeId ();
 
52872
  /** Get the name of the node. Can be compared with NodeId(). */
22123
52873
  const char *NodeName () const { return NodeId (); }
 
52874
  /** Get the semantic scope object. */
 
52875
  CSemScope *SemScope () const { return (CSemScope*)this; }
22124
52876
};
22125
52877
   
 
52878
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
52879
 *  Tree node representing an object declaration, e.g. int *i. */
22126
52880
 
22127
 
#line 22128 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52881
#line 52882 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
22128
52882
} // closed Puma
 
52883
class CCExprResolve;
 
52884
class CExprResolve;
22129
52885
class WinIfExists;
22130
52886
class WinImportHandler;
22131
52887
class WinMacros;
22132
 
class CMatchSyntax;
22133
 
class ExtGnu;
 
52888
class WinAsm;
 
52889
class WinDeclSpecs;
 
52890
class WinMemberExplSpec;
 
52891
class WinTypeKeywords;
 
52892
class WinFriend;
22134
52893
class ExtAC;
22135
52894
class ExtACBuilderCoupling;
22136
52895
class ExtACSyntaxCoupling;
22137
52896
class ExtACTree;
22138
52897
class ExtACKeywords;
22139
 
class WinAsm;
22140
 
class WinDeclSpecs;
22141
 
class WinMemberExplSpec;
22142
 
class WinTypeKeywords;
 
52898
class ExtGnu;
22143
52899
class PragmaOnceUnitState;
22144
52900
class PragmaOnce;
22145
 
class CCExprResolve;
22146
 
class CExprResolve;
 
52901
class CMatchSyntax;
22147
52902
namespace Puma {
22148
52903
 
22149
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52904
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22150
52905
class CT_ObjDecl : public CT_Decl {
22151
 
#line 22152 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52906
#line 52907 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52907
  friend class ::CCExprResolve;
 
52908
  friend class ::CExprResolve;
22152
52909
  friend class ::WinIfExists;
22153
52910
  friend class ::WinImportHandler;
22154
52911
  friend class ::WinMacros;
22155
 
  friend class ::CMatchSyntax;
22156
 
  friend class ::ExtGnu;
 
52912
  friend class ::WinAsm;
 
52913
  friend class ::WinDeclSpecs;
 
52914
  friend class ::WinMemberExplSpec;
 
52915
  friend class ::WinTypeKeywords;
 
52916
  friend class ::WinFriend;
22157
52917
  friend class ::ExtAC;
22158
52918
  friend class ::ExtACBuilderCoupling;
22159
52919
  friend class ::ExtACSyntaxCoupling;
22160
52920
  friend class ::ExtACTree;
22161
52921
  friend class ::ExtACKeywords;
22162
 
  friend class ::WinAsm;
22163
 
  friend class ::WinDeclSpecs;
22164
 
  friend class ::WinMemberExplSpec;
22165
 
  friend class ::WinTypeKeywords;
 
52922
  friend class ::ExtGnu;
22166
52923
  friend class ::PragmaOnceUnitState;
22167
52924
  friend class ::PragmaOnce;
22168
 
  friend class ::CCExprResolve;
22169
 
  friend class ::CExprResolve;
 
52925
  friend class ::CMatchSyntax;
22170
52926
 
22171
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52927
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22172
52928
 
22173
52929
  CTree *sons[3]; // declspecs, declarators, colon
22174
52930
 
22175
52931
public:
 
52932
  /** Constructor.
 
52933
   *  \param dsl The declaration specifier sequence.
 
52934
   *  \param dl The declarator list.
 
52935
   *  \param c Optional colon. */
22176
52936
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
22177
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
 
52937
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
22178
52938
  }
 
52939
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22179
52940
  static const char *NodeId ();
 
52941
  /** Get the name of the node. Can be compared with NodeId(). */
22180
52942
  const char *NodeName () const { return NodeId (); }
 
52943
  /** Get the number of sons. */
22181
52944
  int Sons () const { return 3; }
 
52945
  /** Get the n-th son.
 
52946
   *  \param n The index of the son.
 
52947
   *  \return The n-th son or NULL. */
22182
52948
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
52949
  /** Get the declaration specifier sequence. */
22183
52950
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
52951
  /** Get the declarator list. */
22184
52952
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
52953
  /** Replace a son.
 
52954
   *  \param old_son The son to replace.
 
52955
   *  \param new_son The new son. */
22185
52956
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22186
52957
    CTree::ReplaceSon (sons, 3, old_son, new_son);
22187
52958
  }
22188
52959
};
22189
52960
 
 
52961
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
52962
 *  Tree node representing a template declaration. */
22190
52963
 
22191
 
#line 22192 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52964
#line 52965 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
22192
52965
} // closed Puma
 
52966
class CCExprResolve;
 
52967
class CExprResolve;
22193
52968
class WinIfExists;
22194
52969
class WinImportHandler;
22195
52970
class WinMacros;
22196
 
class CMatchSyntax;
22197
 
class ExtGnu;
 
52971
class WinAsm;
 
52972
class WinDeclSpecs;
 
52973
class WinMemberExplSpec;
 
52974
class WinTypeKeywords;
 
52975
class WinFriend;
22198
52976
class ExtAC;
22199
52977
class ExtACBuilderCoupling;
22200
52978
class ExtACSyntaxCoupling;
22201
52979
class ExtACTree;
22202
52980
class ExtACKeywords;
22203
 
class WinAsm;
22204
 
class WinDeclSpecs;
22205
 
class WinMemberExplSpec;
22206
 
class WinTypeKeywords;
 
52981
class ExtGnu;
22207
52982
class PragmaOnceUnitState;
22208
52983
class PragmaOnce;
22209
 
class CCExprResolve;
22210
 
class CExprResolve;
 
52984
class CMatchSyntax;
22211
52985
namespace Puma {
22212
52986
 
22213
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52987
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22214
52988
class CT_TemplateDecl : public CT_Decl, public CSemScope {
22215
 
#line 22216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52989
#line 52990 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
52990
  friend class ::CCExprResolve;
 
52991
  friend class ::CExprResolve;
22216
52992
  friend class ::WinIfExists;
22217
52993
  friend class ::WinImportHandler;
22218
52994
  friend class ::WinMacros;
22219
 
  friend class ::CMatchSyntax;
22220
 
  friend class ::ExtGnu;
 
52995
  friend class ::WinAsm;
 
52996
  friend class ::WinDeclSpecs;
 
52997
  friend class ::WinMemberExplSpec;
 
52998
  friend class ::WinTypeKeywords;
 
52999
  friend class ::WinFriend;
22221
53000
  friend class ::ExtAC;
22222
53001
  friend class ::ExtACBuilderCoupling;
22223
53002
  friend class ::ExtACSyntaxCoupling;
22224
53003
  friend class ::ExtACTree;
22225
53004
  friend class ::ExtACKeywords;
22226
 
  friend class ::WinAsm;
22227
 
  friend class ::WinDeclSpecs;
22228
 
  friend class ::WinMemberExplSpec;
22229
 
  friend class ::WinTypeKeywords;
 
53005
  friend class ::ExtGnu;
22230
53006
  friend class ::PragmaOnceUnitState;
22231
53007
  friend class ::PragmaOnce;
22232
 
  friend class ::CCExprResolve;
22233
 
  friend class ::CExprResolve;
 
53008
  friend class ::CMatchSyntax;
22234
53009
 
22235
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53010
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22236
53011
 
22237
53012
  CTree *sons[3]; // export, param_list, decl
22238
53013
 
22239
53014
public:
 
53015
  /** Constructor.
 
53016
   *  \param e Optional 'export' keyword. 
 
53017
   *  \param p The template parameter list.
 
53018
   *  \param d The class or function declaration. */
22240
53019
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
22241
 
    sons[0] = e; sons[1] = p; sons[2] = d;
 
53020
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
22242
53021
  }
 
53022
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22243
53023
  static const char *NodeId ();
 
53024
  /** Get the name of the node. Can be compared with NodeId(). */
22244
53025
  const char *NodeName () const { return NodeId (); }
 
53026
  /** Get the number of sons. */
22245
53027
  int Sons () const { return CTree::Sons (sons, 3); }
 
53028
  /** Get the n-th son.
 
53029
   *  \param n The index of the son.
 
53030
   *  \return The n-th son or NULL. */
22246
53031
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
53032
  /** Replace a son.
 
53033
   *  \param old_son The son to replace.
 
53034
   *  \param new_son The new son. */
22247
53035
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22248
53036
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
22249
53037
  }
 
53038
  /** Get the 'export' keyword. */
22250
53039
  CTree *Export () const { return sons[0]; }
 
53040
  /** Get the template parameter list. */
22251
53041
  CT_TemplateParamList *Parameters () const { 
22252
53042
    return (CT_TemplateParamList*)sons[1]; 
22253
53043
  }
 
53044
  /** Get the class or function declaration. */
22254
53045
  CTree *Declaration () const { return sons[2]; }
 
53046
  /** Get the semantic scope object. */
 
53047
  CSemScope *SemScope () const { return (CSemScope*)this; }
22255
53048
};
22256
53049
 
 
53050
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
53051
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
22257
53052
 
22258
 
#line 22259 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53053
#line 53054 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
22259
53054
} // closed Puma
 
53055
class CCExprResolve;
 
53056
class CExprResolve;
22260
53057
class WinIfExists;
22261
53058
class WinImportHandler;
22262
53059
class WinMacros;
22263
 
class CMatchSyntax;
22264
 
class ExtGnu;
 
53060
class WinAsm;
 
53061
class WinDeclSpecs;
 
53062
class WinMemberExplSpec;
 
53063
class WinTypeKeywords;
 
53064
class WinFriend;
22265
53065
class ExtAC;
22266
53066
class ExtACBuilderCoupling;
22267
53067
class ExtACSyntaxCoupling;
22268
53068
class ExtACTree;
22269
53069
class ExtACKeywords;
22270
 
class WinAsm;
22271
 
class WinDeclSpecs;
22272
 
class WinMemberExplSpec;
22273
 
class WinTypeKeywords;
 
53070
class ExtGnu;
22274
53071
class PragmaOnceUnitState;
22275
53072
class PragmaOnce;
22276
 
class CCExprResolve;
22277
 
class CExprResolve;
 
53073
class CMatchSyntax;
22278
53074
namespace Puma {
22279
53075
 
22280
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53076
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22281
53077
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
22282
 
#line 22283 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53078
#line 53079 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53079
  friend class ::CCExprResolve;
 
53080
  friend class ::CExprResolve;
22283
53081
  friend class ::WinIfExists;
22284
53082
  friend class ::WinImportHandler;
22285
53083
  friend class ::WinMacros;
22286
 
  friend class ::CMatchSyntax;
22287
 
  friend class ::ExtGnu;
 
53084
  friend class ::WinAsm;
 
53085
  friend class ::WinDeclSpecs;
 
53086
  friend class ::WinMemberExplSpec;
 
53087
  friend class ::WinTypeKeywords;
 
53088
  friend class ::WinFriend;
22288
53089
  friend class ::ExtAC;
22289
53090
  friend class ::ExtACBuilderCoupling;
22290
53091
  friend class ::ExtACSyntaxCoupling;
22291
53092
  friend class ::ExtACTree;
22292
53093
  friend class ::ExtACKeywords;
22293
 
  friend class ::WinAsm;
22294
 
  friend class ::WinDeclSpecs;
22295
 
  friend class ::WinMemberExplSpec;
22296
 
  friend class ::WinTypeKeywords;
 
53094
  friend class ::ExtGnu;
22297
53095
  friend class ::PragmaOnceUnitState;
22298
53096
  friend class ::PragmaOnce;
22299
 
  friend class ::CCExprResolve;
22300
 
  friend class ::CExprResolve;
 
53097
  friend class ::CMatchSyntax;
22301
53098
 
22302
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53099
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22303
53100
 
22304
53101
protected:
 
53102
  /** Constructor. */
22305
53103
  CT_TemplateParamDecl () {}
22306
53104
  
22307
53105
public:
 
53106
  /** Get the template default argument. */
22308
53107
  virtual CT_ExprList *DefaultArgument () const = 0;
 
53108
  /** Get the semantic information object. */
22309
53109
  CSemObject *SemObject () const { return (CSemObject*)this; }
22310
53110
};
22311
53111
 
22312
53112
 
22313
 
#line 22314 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53113
#line 53114 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
22314
53114
} // closed Puma
 
53115
class CCExprResolve;
 
53116
class CExprResolve;
22315
53117
class WinIfExists;
22316
53118
class WinImportHandler;
22317
53119
class WinMacros;
22318
 
class CMatchSyntax;
22319
 
class ExtGnu;
 
53120
class WinAsm;
 
53121
class WinDeclSpecs;
 
53122
class WinMemberExplSpec;
 
53123
class WinTypeKeywords;
 
53124
class WinFriend;
22320
53125
class ExtAC;
22321
53126
class ExtACBuilderCoupling;
22322
53127
class ExtACSyntaxCoupling;
22323
53128
class ExtACTree;
22324
53129
class ExtACKeywords;
22325
 
class WinAsm;
22326
 
class WinDeclSpecs;
22327
 
class WinMemberExplSpec;
22328
 
class WinTypeKeywords;
 
53130
class ExtGnu;
22329
53131
class PragmaOnceUnitState;
22330
53132
class PragmaOnce;
22331
 
class CCExprResolve;
22332
 
class CExprResolve;
 
53133
class CMatchSyntax;
22333
53134
namespace Puma {
22334
53135
 
22335
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53136
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22336
53137
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
22337
 
#line 22338 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53138
#line 53139 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53139
  friend class ::CCExprResolve;
 
53140
  friend class ::CExprResolve;
22338
53141
  friend class ::WinIfExists;
22339
53142
  friend class ::WinImportHandler;
22340
53143
  friend class ::WinMacros;
22341
 
  friend class ::CMatchSyntax;
22342
 
  friend class ::ExtGnu;
 
53144
  friend class ::WinAsm;
 
53145
  friend class ::WinDeclSpecs;
 
53146
  friend class ::WinMemberExplSpec;
 
53147
  friend class ::WinTypeKeywords;
 
53148
  friend class ::WinFriend;
22343
53149
  friend class ::ExtAC;
22344
53150
  friend class ::ExtACBuilderCoupling;
22345
53151
  friend class ::ExtACSyntaxCoupling;
22346
53152
  friend class ::ExtACTree;
22347
53153
  friend class ::ExtACKeywords;
22348
 
  friend class ::WinAsm;
22349
 
  friend class ::WinDeclSpecs;
22350
 
  friend class ::WinMemberExplSpec;
22351
 
  friend class ::WinTypeKeywords;
 
53154
  friend class ::ExtGnu;
22352
53155
  friend class ::PragmaOnceUnitState;
22353
53156
  friend class ::PragmaOnce;
22354
 
  friend class ::CCExprResolve;
22355
 
  friend class ::CExprResolve;
 
53157
  friend class ::CMatchSyntax;
22356
53158
 
22357
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53159
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22358
53160
 
22359
53161
  CTree *sons[3]; // declspecs, declarator, init
22360
53162
 
22361
53163
public:
22362
53164
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
22363
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
 
53165
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
22364
53166
  }
 
53167
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22365
53168
  static const char *NodeId ();
 
53169
  /** Get the name of the node. Can be compared with NodeId(). */
22366
53170
  const char *NodeName () const { return NodeId (); }
 
53171
  /** Get the number of sons. */
22367
53172
  int Sons () const { return CTree::Sons (sons, 3); }
 
53173
  /** Get the n-th son.
 
53174
   *  \param n The index of the son.
 
53175
   *  \return The n-th son or NULL. */
22368
53176
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
22369
53177
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
22370
53178
  CTree *Declarator () const { return sons[1]; }
22371
53179
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
22372
53180
  CSemObject *SemObject () const { return (CSemObject*)this; }
22373
 
  void Initializer (CTree *i) { sons[2] = i; }
 
53181
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
53182
  /** Replace a son.
 
53183
   *  \param old_son The son to replace.
 
53184
   *  \param new_son The new son. */
22374
53185
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22375
53186
    CTree::ReplaceSon (sons, 3, old_son, new_son);
22376
53187
  }
22377
53188
};
22378
53189
 
22379
53190
 
22380
 
#line 22381 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53191
#line 53192 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
22381
53192
} // closed Puma
 
53193
class CCExprResolve;
 
53194
class CExprResolve;
22382
53195
class WinIfExists;
22383
53196
class WinImportHandler;
22384
53197
class WinMacros;
22385
 
class CMatchSyntax;
22386
 
class ExtGnu;
 
53198
class WinAsm;
 
53199
class WinDeclSpecs;
 
53200
class WinMemberExplSpec;
 
53201
class WinTypeKeywords;
 
53202
class WinFriend;
22387
53203
class ExtAC;
22388
53204
class ExtACBuilderCoupling;
22389
53205
class ExtACSyntaxCoupling;
22390
53206
class ExtACTree;
22391
53207
class ExtACKeywords;
22392
 
class WinAsm;
22393
 
class WinDeclSpecs;
22394
 
class WinMemberExplSpec;
22395
 
class WinTypeKeywords;
 
53208
class ExtGnu;
22396
53209
class PragmaOnceUnitState;
22397
53210
class PragmaOnce;
22398
 
class CCExprResolve;
22399
 
class CExprResolve;
 
53211
class CMatchSyntax;
22400
53212
namespace Puma {
22401
53213
 
22402
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53214
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22403
53215
class CT_TypeParamDecl : public CT_TemplateParamDecl {
22404
 
#line 22405 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53216
#line 53217 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53217
  friend class ::CCExprResolve;
 
53218
  friend class ::CExprResolve;
22405
53219
  friend class ::WinIfExists;
22406
53220
  friend class ::WinImportHandler;
22407
53221
  friend class ::WinMacros;
22408
 
  friend class ::CMatchSyntax;
22409
 
  friend class ::ExtGnu;
 
53222
  friend class ::WinAsm;
 
53223
  friend class ::WinDeclSpecs;
 
53224
  friend class ::WinMemberExplSpec;
 
53225
  friend class ::WinTypeKeywords;
 
53226
  friend class ::WinFriend;
22410
53227
  friend class ::ExtAC;
22411
53228
  friend class ::ExtACBuilderCoupling;
22412
53229
  friend class ::ExtACSyntaxCoupling;
22413
53230
  friend class ::ExtACTree;
22414
53231
  friend class ::ExtACKeywords;
22415
 
  friend class ::WinAsm;
22416
 
  friend class ::WinDeclSpecs;
22417
 
  friend class ::WinMemberExplSpec;
22418
 
  friend class ::WinTypeKeywords;
 
53232
  friend class ::ExtGnu;
22419
53233
  friend class ::PragmaOnceUnitState;
22420
53234
  friend class ::PragmaOnce;
22421
 
  friend class ::CCExprResolve;
22422
 
  friend class ::CExprResolve;
 
53235
  friend class ::CMatchSyntax;
22423
53236
 
22424
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53237
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22425
53238
 
22426
53239
  CTree *sons[4]; // params, key, id, init
22427
53240
 
22428
53241
public:
22429
53242
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
22430
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
 
53243
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
53244
    AddSon (sons[2], id); AddSon (sons[3], i);
22431
53245
  }
 
53246
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22432
53247
  static const char *NodeId ();
 
53248
  /** Get the name of the node. Can be compared with NodeId(). */
22433
53249
  const char *NodeName () const { return NodeId (); }
 
53250
  /** Get the number of sons. */
22434
53251
  int Sons () const { return CTree::Sons (sons, 4); }
 
53252
  /** Get the n-th son.
 
53253
   *  \param n The index of the son.
 
53254
   *  \return The n-th son or NULL. */
22435
53255
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
22436
53256
  CT_TemplateParamList *Parameters () const { 
22437
53257
    return (CT_TemplateParamList*)sons[0]; 
22438
53258
  }
22439
53259
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
22440
53260
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
22441
 
  void Initializer (CTree *i) { sons[3] = i; }
 
53261
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
53262
  /** Replace a son.
 
53263
   *  \param old_son The son to replace.
 
53264
   *  \param new_son The new son. */
22442
53265
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22443
53266
    CTree::ReplaceSon (sons, 4, old_son, new_son);
22444
53267
  }
22445
53268
};
22446
53269
 
22447
53270
 
22448
 
#line 22449 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53271
#line 53272 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
22449
53272
} // closed Puma
 
53273
class CCExprResolve;
 
53274
class CExprResolve;
22450
53275
class WinIfExists;
22451
53276
class WinImportHandler;
22452
53277
class WinMacros;
22453
 
class CMatchSyntax;
22454
 
class ExtGnu;
 
53278
class WinAsm;
 
53279
class WinDeclSpecs;
 
53280
class WinMemberExplSpec;
 
53281
class WinTypeKeywords;
 
53282
class WinFriend;
22455
53283
class ExtAC;
22456
53284
class ExtACBuilderCoupling;
22457
53285
class ExtACSyntaxCoupling;
22458
53286
class ExtACTree;
22459
53287
class ExtACKeywords;
22460
 
class WinAsm;
22461
 
class WinDeclSpecs;
22462
 
class WinMemberExplSpec;
22463
 
class WinTypeKeywords;
 
53288
class ExtGnu;
22464
53289
class PragmaOnceUnitState;
22465
53290
class PragmaOnce;
22466
 
class CCExprResolve;
22467
 
class CExprResolve;
 
53291
class CMatchSyntax;
22468
53292
namespace Puma {
22469
53293
 
22470
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53294
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22471
53295
class CT_EnumDef : public CT_Decl, public CSemObject {
22472
 
#line 22473 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53296
#line 53297 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53297
  friend class ::CCExprResolve;
 
53298
  friend class ::CExprResolve;
22473
53299
  friend class ::WinIfExists;
22474
53300
  friend class ::WinImportHandler;
22475
53301
  friend class ::WinMacros;
22476
 
  friend class ::CMatchSyntax;
22477
 
  friend class ::ExtGnu;
 
53302
  friend class ::WinAsm;
 
53303
  friend class ::WinDeclSpecs;
 
53304
  friend class ::WinMemberExplSpec;
 
53305
  friend class ::WinTypeKeywords;
 
53306
  friend class ::WinFriend;
22478
53307
  friend class ::ExtAC;
22479
53308
  friend class ::ExtACBuilderCoupling;
22480
53309
  friend class ::ExtACSyntaxCoupling;
22481
53310
  friend class ::ExtACTree;
22482
53311
  friend class ::ExtACKeywords;
22483
 
  friend class ::WinAsm;
22484
 
  friend class ::WinDeclSpecs;
22485
 
  friend class ::WinMemberExplSpec;
22486
 
  friend class ::WinTypeKeywords;
 
53312
  friend class ::ExtGnu;
22487
53313
  friend class ::PragmaOnceUnitState;
22488
53314
  friend class ::PragmaOnce;
22489
 
  friend class ::CCExprResolve;
22490
 
  friend class ::CExprResolve;
 
53315
  friend class ::CMatchSyntax;
22491
53316
 
22492
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53317
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22493
53318
 
22494
53319
  CTree *sons[3]; // key, name, enumerators
22495
53320
 
22496
53321
public:
22497
53322
  CT_EnumDef (CTree *k, CTree *n) {
22498
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
 
53323
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
22499
53324
  }
 
53325
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22500
53326
  static const char *NodeId ();
 
53327
  /** Get the name of the node. Can be compared with NodeId(). */
22501
53328
  const char *NodeName () const { return NodeId (); }
 
53329
  /** Get the number of sons. */
22502
53330
  int Sons () const { return CTree::Sons (sons, 3); }
 
53331
  /** Get the n-th son.
 
53332
   *  \param n The index of the son.
 
53333
   *  \return The n-th son or NULL. */
22503
53334
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
22504
53335
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
22505
 
  void Enumerators (CTree *el) { sons[2] = el; }
 
53336
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
22506
53337
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
53338
  /** Replace a son.
 
53339
   *  \param old_son The son to replace.
 
53340
   *  \param new_son The new son. */
22507
53341
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22508
53342
    CTree::ReplaceSon (sons, 3, old_son, new_son);
22509
53343
  }
22511
53345
};
22512
53346
 
22513
53347
 
22514
 
#line 22515 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53348
#line 53349 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
22515
53349
} // closed Puma
 
53350
class CCExprResolve;
 
53351
class CExprResolve;
22516
53352
class WinIfExists;
22517
53353
class WinImportHandler;
22518
53354
class WinMacros;
22519
 
class CMatchSyntax;
22520
 
class ExtGnu;
 
53355
class WinAsm;
 
53356
class WinDeclSpecs;
 
53357
class WinMemberExplSpec;
 
53358
class WinTypeKeywords;
 
53359
class WinFriend;
22521
53360
class ExtAC;
22522
53361
class ExtACBuilderCoupling;
22523
53362
class ExtACSyntaxCoupling;
22524
53363
class ExtACTree;
22525
53364
class ExtACKeywords;
22526
 
class WinAsm;
22527
 
class WinDeclSpecs;
22528
 
class WinMemberExplSpec;
22529
 
class WinTypeKeywords;
 
53365
class ExtGnu;
22530
53366
class PragmaOnceUnitState;
22531
53367
class PragmaOnce;
22532
 
class CCExprResolve;
22533
 
class CExprResolve;
 
53368
class CMatchSyntax;
22534
53369
namespace Puma {
22535
53370
 
22536
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53371
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22537
53372
class CT_Enumerator : public CT_Decl, public CSemObject {
22538
 
#line 22539 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53373
#line 53374 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53374
  friend class ::CCExprResolve;
 
53375
  friend class ::CExprResolve;
22539
53376
  friend class ::WinIfExists;
22540
53377
  friend class ::WinImportHandler;
22541
53378
  friend class ::WinMacros;
22542
 
  friend class ::CMatchSyntax;
22543
 
  friend class ::ExtGnu;
 
53379
  friend class ::WinAsm;
 
53380
  friend class ::WinDeclSpecs;
 
53381
  friend class ::WinMemberExplSpec;
 
53382
  friend class ::WinTypeKeywords;
 
53383
  friend class ::WinFriend;
22544
53384
  friend class ::ExtAC;
22545
53385
  friend class ::ExtACBuilderCoupling;
22546
53386
  friend class ::ExtACSyntaxCoupling;
22547
53387
  friend class ::ExtACTree;
22548
53388
  friend class ::ExtACKeywords;
22549
 
  friend class ::WinAsm;
22550
 
  friend class ::WinDeclSpecs;
22551
 
  friend class ::WinMemberExplSpec;
22552
 
  friend class ::WinTypeKeywords;
 
53389
  friend class ::ExtGnu;
22553
53390
  friend class ::PragmaOnceUnitState;
22554
53391
  friend class ::PragmaOnce;
22555
 
  friend class ::CCExprResolve;
22556
 
  friend class ::CExprResolve;
 
53392
  friend class ::CMatchSyntax;
22557
53393
 
22558
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53394
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22559
53395
 
22560
53396
  CTree *sons[2]; // name, init
22561
53397
 
22562
53398
public:
22563
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
 
53399
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
53400
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22564
53401
  static const char *NodeId ();
 
53402
  /** Get the name of the node. Can be compared with NodeId(). */
22565
53403
  const char *NodeName () const { return NodeId (); }
 
53404
  /** Get the number of sons. */
22566
53405
  int Sons () const { return CTree::Sons (sons, 2); }
 
53406
  /** Get the n-th son.
 
53407
   *  \param n The index of the son.
 
53408
   *  \return The n-th son or NULL. */
22567
53409
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
22568
53410
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
22569
 
  void Initializer (CTree *i) { sons[1] = i; }
 
53411
  void Initializer (CTree *i) { AddSon (sons[1], i); }
22570
53412
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
53413
  /** Replace a son.
 
53414
   *  \param old_son The son to replace.
 
53415
   *  \param new_son The new son. */
22571
53416
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22572
53417
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
22573
53418
  }
22575
53420
};
22576
53421
 
22577
53422
 
22578
 
#line 22579 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53423
#line 53424 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
22579
53424
} // closed Puma
 
53425
class CCExprResolve;
 
53426
class CExprResolve;
22580
53427
class WinIfExists;
22581
53428
class WinImportHandler;
22582
53429
class WinMacros;
22583
 
class CMatchSyntax;
22584
 
class ExtGnu;
 
53430
class WinAsm;
 
53431
class WinDeclSpecs;
 
53432
class WinMemberExplSpec;
 
53433
class WinTypeKeywords;
 
53434
class WinFriend;
22585
53435
class ExtAC;
22586
53436
class ExtACBuilderCoupling;
22587
53437
class ExtACSyntaxCoupling;
22588
53438
class ExtACTree;
22589
53439
class ExtACKeywords;
22590
 
class WinAsm;
22591
 
class WinDeclSpecs;
22592
 
class WinMemberExplSpec;
22593
 
class WinTypeKeywords;
 
53440
class ExtGnu;
22594
53441
class PragmaOnceUnitState;
22595
53442
class PragmaOnce;
22596
 
class CCExprResolve;
22597
 
class CExprResolve;
 
53443
class CMatchSyntax;
22598
53444
namespace Puma {
22599
53445
 
22600
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53446
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22601
53447
class CT_FctDef : public CT_Decl, public CSemObject {
22602
 
#line 22603 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53448
#line 53449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53449
  friend class ::CCExprResolve;
 
53450
  friend class ::CExprResolve;
22603
53451
  friend class ::WinIfExists;
22604
53452
  friend class ::WinImportHandler;
22605
53453
  friend class ::WinMacros;
22606
 
  friend class ::CMatchSyntax;
22607
 
  friend class ::ExtGnu;
 
53454
  friend class ::WinAsm;
 
53455
  friend class ::WinDeclSpecs;
 
53456
  friend class ::WinMemberExplSpec;
 
53457
  friend class ::WinTypeKeywords;
 
53458
  friend class ::WinFriend;
22608
53459
  friend class ::ExtAC;
22609
53460
  friend class ::ExtACBuilderCoupling;
22610
53461
  friend class ::ExtACSyntaxCoupling;
22611
53462
  friend class ::ExtACTree;
22612
53463
  friend class ::ExtACKeywords;
22613
 
  friend class ::WinAsm;
22614
 
  friend class ::WinDeclSpecs;
22615
 
  friend class ::WinMemberExplSpec;
22616
 
  friend class ::WinTypeKeywords;
 
53464
  friend class ::ExtGnu;
22617
53465
  friend class ::PragmaOnceUnitState;
22618
53466
  friend class ::PragmaOnce;
22619
 
  friend class ::CCExprResolve;
22620
 
  friend class ::CExprResolve;
 
53467
  friend class ::CMatchSyntax;
22621
53468
 
22622
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53469
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22623
53470
 
22624
53471
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
22625
53472
 
22626
53473
public:
22627
53474
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
22628
53475
             CTree *b, CTree *hs) {
22629
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
22630
 
    sons[5] = b; sons[6] = hs; 
 
53476
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
53477
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
53478
    AddSon (sons[6], hs); 
22631
53479
  }
 
53480
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22632
53481
  static const char *NodeId ();
 
53482
  /** Get the name of the node. Can be compared with NodeId(). */
22633
53483
  const char *NodeName () const { return NodeId (); }
 
53484
  /** Get the number of sons. */
22634
53485
  int Sons () const { return CTree::Sons (sons, 7); }
 
53486
  /** Get the n-th son.
 
53487
   *  \param n The index of the son.
 
53488
   *  \return The n-th son or NULL. */
22635
53489
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
22636
53490
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
22637
53491
  CTree *Declarator () const { return sons[1]; }
22641
53495
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
22642
53496
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
22643
53497
  CSemObject *SemObject () const { return (CSemObject*)this; }
22644
 
  void CtorInit (CTree *i) { sons[3] = i; }
22645
 
  void Body (CTree *b) { sons[5] = b; }
 
53498
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
53499
  void Body (CTree *b) { AddSon (sons[5], b); }
22646
53500
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
22647
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
 
53501
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
53502
    AddSon (sons[5], b); AddSon (sons[6], h);
22648
53503
  }
 
53504
  /** Replace a son.
 
53505
   *  \param old_son The son to replace.
 
53506
   *  \param new_son The new son. */
22649
53507
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22650
53508
    CTree::ReplaceSon (sons, 7, old_son, new_son);
22651
53509
  }
22652
53510
};
22653
53511
 
22654
53512
 
22655
 
#line 22656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53513
#line 53514 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
22656
53514
} // closed Puma
 
53515
class CCExprResolve;
 
53516
class CExprResolve;
22657
53517
class WinIfExists;
22658
53518
class WinImportHandler;
22659
53519
class WinMacros;
22660
 
class CMatchSyntax;
22661
 
class ExtGnu;
 
53520
class WinAsm;
 
53521
class WinDeclSpecs;
 
53522
class WinMemberExplSpec;
 
53523
class WinTypeKeywords;
 
53524
class WinFriend;
22662
53525
class ExtAC;
22663
53526
class ExtACBuilderCoupling;
22664
53527
class ExtACSyntaxCoupling;
22665
53528
class ExtACTree;
22666
53529
class ExtACKeywords;
22667
 
class WinAsm;
22668
 
class WinDeclSpecs;
22669
 
class WinMemberExplSpec;
22670
 
class WinTypeKeywords;
 
53530
class ExtGnu;
22671
53531
class PragmaOnceUnitState;
22672
53532
class PragmaOnce;
22673
 
class CCExprResolve;
22674
 
class CExprResolve;
 
53533
class CMatchSyntax;
22675
53534
namespace Puma {
22676
53535
 
22677
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53536
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22678
53537
class CT_AsmDef : public CT_Decl {
22679
 
#line 22680 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53538
#line 53539 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53539
  friend class ::CCExprResolve;
 
53540
  friend class ::CExprResolve;
22680
53541
  friend class ::WinIfExists;
22681
53542
  friend class ::WinImportHandler;
22682
53543
  friend class ::WinMacros;
22683
 
  friend class ::CMatchSyntax;
22684
 
  friend class ::ExtGnu;
 
53544
  friend class ::WinAsm;
 
53545
  friend class ::WinDeclSpecs;
 
53546
  friend class ::WinMemberExplSpec;
 
53547
  friend class ::WinTypeKeywords;
 
53548
  friend class ::WinFriend;
22685
53549
  friend class ::ExtAC;
22686
53550
  friend class ::ExtACBuilderCoupling;
22687
53551
  friend class ::ExtACSyntaxCoupling;
22688
53552
  friend class ::ExtACTree;
22689
53553
  friend class ::ExtACKeywords;
22690
 
  friend class ::WinAsm;
22691
 
  friend class ::WinDeclSpecs;
22692
 
  friend class ::WinMemberExplSpec;
22693
 
  friend class ::WinTypeKeywords;
 
53554
  friend class ::ExtGnu;
22694
53555
  friend class ::PragmaOnceUnitState;
22695
53556
  friend class ::PragmaOnce;
22696
 
  friend class ::CCExprResolve;
22697
 
  friend class ::CExprResolve;
 
53557
  friend class ::CMatchSyntax;
22698
53558
 
22699
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53559
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22700
53560
 
22701
53561
  CTree *sons[5]; // asm, open, str, close, semi_colon
22702
53562
 
22703
53563
public:
22704
53564
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
22705
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
 
53565
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
53566
    AddSon (sons[3], c); AddSon (sons[4], sc); 
22706
53567
  }
 
53568
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22707
53569
  static const char *NodeId ();
 
53570
  /** Get the name of the node. Can be compared with NodeId(). */
22708
53571
  const char *NodeName () const { return NodeId (); }
 
53572
  /** Get the number of sons. */
22709
53573
  int Sons () const { return 5; }
 
53574
  /** Get the n-th son.
 
53575
   *  \param n The index of the son.
 
53576
   *  \return The n-th son or NULL. */
22710
53577
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
22711
53578
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
53579
  /** Replace a son.
 
53580
   *  \param old_son The son to replace.
 
53581
   *  \param new_son The new son. */
22712
53582
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22713
53583
    CTree::ReplaceSon (sons, 5, old_son, new_son);
22714
53584
  }
22715
53585
};
22716
53586
 
22717
53587
 
22718
 
#line 22719 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53588
#line 53589 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
22719
53589
} // closed Puma
 
53590
class CCExprResolve;
 
53591
class CExprResolve;
22720
53592
class WinIfExists;
22721
53593
class WinImportHandler;
22722
53594
class WinMacros;
22723
 
class CMatchSyntax;
22724
 
class ExtGnu;
 
53595
class WinAsm;
 
53596
class WinDeclSpecs;
 
53597
class WinMemberExplSpec;
 
53598
class WinTypeKeywords;
 
53599
class WinFriend;
22725
53600
class ExtAC;
22726
53601
class ExtACBuilderCoupling;
22727
53602
class ExtACSyntaxCoupling;
22728
53603
class ExtACTree;
22729
53604
class ExtACKeywords;
22730
 
class WinAsm;
22731
 
class WinDeclSpecs;
22732
 
class WinMemberExplSpec;
22733
 
class WinTypeKeywords;
 
53605
class ExtGnu;
22734
53606
class PragmaOnceUnitState;
22735
53607
class PragmaOnce;
22736
 
class CCExprResolve;
22737
 
class CExprResolve;
 
53608
class CMatchSyntax;
22738
53609
namespace Puma {
22739
53610
 
22740
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53611
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22741
53612
class CT_Handler : public CT_Decl, public CSemScope {
22742
 
#line 22743 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53613
#line 53614 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53614
  friend class ::CCExprResolve;
 
53615
  friend class ::CExprResolve;
22743
53616
  friend class ::WinIfExists;
22744
53617
  friend class ::WinImportHandler;
22745
53618
  friend class ::WinMacros;
22746
 
  friend class ::CMatchSyntax;
22747
 
  friend class ::ExtGnu;
 
53619
  friend class ::WinAsm;
 
53620
  friend class ::WinDeclSpecs;
 
53621
  friend class ::WinMemberExplSpec;
 
53622
  friend class ::WinTypeKeywords;
 
53623
  friend class ::WinFriend;
22748
53624
  friend class ::ExtAC;
22749
53625
  friend class ::ExtACBuilderCoupling;
22750
53626
  friend class ::ExtACSyntaxCoupling;
22751
53627
  friend class ::ExtACTree;
22752
53628
  friend class ::ExtACKeywords;
22753
 
  friend class ::WinAsm;
22754
 
  friend class ::WinDeclSpecs;
22755
 
  friend class ::WinMemberExplSpec;
22756
 
  friend class ::WinTypeKeywords;
 
53629
  friend class ::ExtGnu;
22757
53630
  friend class ::PragmaOnceUnitState;
22758
53631
  friend class ::PragmaOnce;
22759
 
  friend class ::CCExprResolve;
22760
 
  friend class ::CExprResolve;
 
53632
  friend class ::CMatchSyntax;
22761
53633
 
22762
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53634
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22763
53635
 
22764
53636
  CTree *sons[3]; // catch, exception_decl, stmt
22765
53637
 
22766
53638
public:
22767
53639
  CT_Handler (CTree *c, CTree *e, CTree *s) {
22768
 
    sons[0] = c; sons[1] = e; sons[2] = s;
 
53640
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
22769
53641
  }
 
53642
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22770
53643
  static const char *NodeId ();
 
53644
  /** Get the name of the node. Can be compared with NodeId(). */
22771
53645
  const char *NodeName () const { return NodeId (); }
 
53646
  /** Get the number of sons. */
22772
53647
  int Sons () const { return 3; }
 
53648
  /** Get the n-th son.
 
53649
   *  \param n The index of the son.
 
53650
   *  \return The n-th son or NULL. */
22773
53651
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
22774
53652
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
22775
53653
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
53654
  /** Replace a son.
 
53655
   *  \param old_son The son to replace.
 
53656
   *  \param new_son The new son. */
22776
53657
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22777
53658
    CTree::ReplaceSon (sons, 3, old_son, new_son);
22778
53659
  }
 
53660
  CSemScope *SemScope () const { return (CSemScope*)this; }
22779
53661
};
22780
53662
 
22781
53663
 
22782
 
#line 22783 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53664
#line 53665 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
22783
53665
} // closed Puma
 
53666
class CCExprResolve;
 
53667
class CExprResolve;
22784
53668
class WinIfExists;
22785
53669
class WinImportHandler;
22786
53670
class WinMacros;
22787
 
class CMatchSyntax;
22788
 
class ExtGnu;
 
53671
class WinAsm;
 
53672
class WinDeclSpecs;
 
53673
class WinMemberExplSpec;
 
53674
class WinTypeKeywords;
 
53675
class WinFriend;
22789
53676
class ExtAC;
22790
53677
class ExtACBuilderCoupling;
22791
53678
class ExtACSyntaxCoupling;
22792
53679
class ExtACTree;
22793
53680
class ExtACKeywords;
22794
 
class WinAsm;
22795
 
class WinDeclSpecs;
22796
 
class WinMemberExplSpec;
22797
 
class WinTypeKeywords;
 
53681
class ExtGnu;
22798
53682
class PragmaOnceUnitState;
22799
53683
class PragmaOnce;
22800
 
class CCExprResolve;
22801
 
class CExprResolve;
 
53684
class CMatchSyntax;
22802
53685
namespace Puma {
22803
53686
 
22804
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53687
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22805
53688
class CT_LinkageSpec : public CT_Decl {
22806
 
#line 22807 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53689
#line 53690 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53690
  friend class ::CCExprResolve;
 
53691
  friend class ::CExprResolve;
22807
53692
  friend class ::WinIfExists;
22808
53693
  friend class ::WinImportHandler;
22809
53694
  friend class ::WinMacros;
22810
 
  friend class ::CMatchSyntax;
22811
 
  friend class ::ExtGnu;
 
53695
  friend class ::WinAsm;
 
53696
  friend class ::WinDeclSpecs;
 
53697
  friend class ::WinMemberExplSpec;
 
53698
  friend class ::WinTypeKeywords;
 
53699
  friend class ::WinFriend;
22812
53700
  friend class ::ExtAC;
22813
53701
  friend class ::ExtACBuilderCoupling;
22814
53702
  friend class ::ExtACSyntaxCoupling;
22815
53703
  friend class ::ExtACTree;
22816
53704
  friend class ::ExtACKeywords;
22817
 
  friend class ::WinAsm;
22818
 
  friend class ::WinDeclSpecs;
22819
 
  friend class ::WinMemberExplSpec;
22820
 
  friend class ::WinTypeKeywords;
 
53705
  friend class ::ExtGnu;
22821
53706
  friend class ::PragmaOnceUnitState;
22822
53707
  friend class ::PragmaOnce;
22823
 
  friend class ::CCExprResolve;
22824
 
  friend class ::CExprResolve;
 
53708
  friend class ::CMatchSyntax;
22825
53709
 
22826
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53710
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22827
53711
 
22828
53712
  CTree *sons[5]; // extern, str, open, decls, close
22829
53713
 
22830
53714
public:
22831
53715
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
22832
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
 
53716
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
53717
    AddSon (sons[3], d); AddSon (sons[4], c);
22833
53718
    if (isList ())
22834
53719
      ((CT_DeclList*)Decls ())->Linkage (this);
22835
53720
    else
22836
53721
      ((CT_Decl*)Decls ())->Linkage (this);
22837
53722
  }
 
53723
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22838
53724
  static const char *NodeId ();
 
53725
  /** Get the name of the node. Can be compared with NodeId(). */
22839
53726
  const char *NodeName () const { return NodeId (); }
 
53727
  /** Get the number of sons. */
22840
53728
  int Sons () const { return CTree::Sons (sons, 5); }
 
53729
  /** Get the n-th son.
 
53730
   *  \param n The index of the son.
 
53731
   *  \return The n-th son or NULL. */
22841
53732
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
22842
53733
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
22843
53734
  CTree *Decls () const { return sons[3]; }
22844
53735
  bool isList () const {
22845
53736
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
22846
53737
  }
 
53738
  /** Replace a son.
 
53739
   *  \param old_son The son to replace.
 
53740
   *  \param new_son The new son. */
22847
53741
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22848
53742
    CTree::ReplaceSon (sons, 5, old_son, new_son);
22849
53743
  }
22850
53744
};
22851
53745
 
22852
53746
 
22853
 
#line 22854 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53747
#line 53748 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
22854
53748
} // closed Puma
 
53749
class CCExprResolve;
 
53750
class CExprResolve;
22855
53751
class WinIfExists;
22856
53752
class WinImportHandler;
22857
53753
class WinMacros;
22858
 
class CMatchSyntax;
22859
 
class ExtGnu;
 
53754
class WinAsm;
 
53755
class WinDeclSpecs;
 
53756
class WinMemberExplSpec;
 
53757
class WinTypeKeywords;
 
53758
class WinFriend;
22860
53759
class ExtAC;
22861
53760
class ExtACBuilderCoupling;
22862
53761
class ExtACSyntaxCoupling;
22863
53762
class ExtACTree;
22864
53763
class ExtACKeywords;
22865
 
class WinAsm;
22866
 
class WinDeclSpecs;
22867
 
class WinMemberExplSpec;
22868
 
class WinTypeKeywords;
 
53764
class ExtGnu;
22869
53765
class PragmaOnceUnitState;
22870
53766
class PragmaOnce;
22871
 
class CCExprResolve;
22872
 
class CExprResolve;
 
53767
class CMatchSyntax;
22873
53768
namespace Puma {
22874
53769
 
22875
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53770
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22876
53771
class CT_ArgDecl : public CT_Decl, public CSemObject {
22877
 
#line 22878 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53772
#line 53773 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53773
  friend class ::CCExprResolve;
 
53774
  friend class ::CExprResolve;
22878
53775
  friend class ::WinIfExists;
22879
53776
  friend class ::WinImportHandler;
22880
53777
  friend class ::WinMacros;
22881
 
  friend class ::CMatchSyntax;
22882
 
  friend class ::ExtGnu;
 
53778
  friend class ::WinAsm;
 
53779
  friend class ::WinDeclSpecs;
 
53780
  friend class ::WinMemberExplSpec;
 
53781
  friend class ::WinTypeKeywords;
 
53782
  friend class ::WinFriend;
22883
53783
  friend class ::ExtAC;
22884
53784
  friend class ::ExtACBuilderCoupling;
22885
53785
  friend class ::ExtACSyntaxCoupling;
22886
53786
  friend class ::ExtACTree;
22887
53787
  friend class ::ExtACKeywords;
22888
 
  friend class ::WinAsm;
22889
 
  friend class ::WinDeclSpecs;
22890
 
  friend class ::WinMemberExplSpec;
22891
 
  friend class ::WinTypeKeywords;
 
53788
  friend class ::ExtGnu;
22892
53789
  friend class ::PragmaOnceUnitState;
22893
53790
  friend class ::PragmaOnce;
22894
 
  friend class ::CCExprResolve;
22895
 
  friend class ::CExprResolve;
 
53791
  friend class ::CMatchSyntax;
22896
53792
 
22897
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53793
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22898
53794
 
22899
53795
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
22900
53796
 
22901
53797
public:
22902
53798
  CT_ArgDecl (CTree *dsl, CTree *d) {
22903
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
 
53799
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
53800
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
22904
53801
  }
22905
53802
  CT_ArgDecl (CTree *ellipsis) {
22906
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
 
53803
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
53804
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
22907
53805
  }
 
53806
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22908
53807
  static const char *NodeId ();
 
53808
  /** Get the name of the node. Can be compared with NodeId(). */
22909
53809
  const char *NodeName () const { return NodeId (); }
 
53810
  /** Get the number of sons. */
22910
53811
  int Sons () const { return CTree::Sons (sons, 4); }
 
53812
  /** Get the n-th son.
 
53813
   *  \param n The index of the son.
 
53814
   *  \return The n-th son or NULL. */
22911
53815
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
22912
53816
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
22913
53817
  CTree *Declarator () const { return sons[1]; }
22914
53818
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
22915
53819
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
22916
53820
  CSemObject *SemObject () const { return (CSemObject*)this; }
22917
 
  void Initializer (CTree *i) { sons[2] = i; }
 
53821
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
53822
  /** Replace a son.
 
53823
   *  \param old_son The son to replace.
 
53824
   *  \param new_son The new son. */
22918
53825
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22919
53826
    CTree::ReplaceSon (sons, 4, old_son, new_son);
22920
53827
  }
22921
53828
};
22922
53829
 
22923
53830
 
22924
 
#line 22925 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53831
#line 53832 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
22925
53832
} // closed Puma
 
53833
class CCExprResolve;
 
53834
class CExprResolve;
22926
53835
class WinIfExists;
22927
53836
class WinImportHandler;
22928
53837
class WinMacros;
22929
 
class CMatchSyntax;
22930
 
class ExtGnu;
 
53838
class WinAsm;
 
53839
class WinDeclSpecs;
 
53840
class WinMemberExplSpec;
 
53841
class WinTypeKeywords;
 
53842
class WinFriend;
22931
53843
class ExtAC;
22932
53844
class ExtACBuilderCoupling;
22933
53845
class ExtACSyntaxCoupling;
22934
53846
class ExtACTree;
22935
53847
class ExtACKeywords;
22936
 
class WinAsm;
22937
 
class WinDeclSpecs;
22938
 
class WinMemberExplSpec;
22939
 
class WinTypeKeywords;
 
53848
class ExtGnu;
22940
53849
class PragmaOnceUnitState;
22941
53850
class PragmaOnce;
22942
 
class CCExprResolve;
22943
 
class CExprResolve;
 
53851
class CMatchSyntax;
22944
53852
namespace Puma {
22945
53853
 
22946
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53854
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22947
53855
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
22948
 
#line 22949 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53856
#line 53857 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53857
  friend class ::CCExprResolve;
 
53858
  friend class ::CExprResolve;
22949
53859
  friend class ::WinIfExists;
22950
53860
  friend class ::WinImportHandler;
22951
53861
  friend class ::WinMacros;
22952
 
  friend class ::CMatchSyntax;
22953
 
  friend class ::ExtGnu;
 
53862
  friend class ::WinAsm;
 
53863
  friend class ::WinDeclSpecs;
 
53864
  friend class ::WinMemberExplSpec;
 
53865
  friend class ::WinTypeKeywords;
 
53866
  friend class ::WinFriend;
22954
53867
  friend class ::ExtAC;
22955
53868
  friend class ::ExtACBuilderCoupling;
22956
53869
  friend class ::ExtACSyntaxCoupling;
22957
53870
  friend class ::ExtACTree;
22958
53871
  friend class ::ExtACKeywords;
22959
 
  friend class ::WinAsm;
22960
 
  friend class ::WinDeclSpecs;
22961
 
  friend class ::WinMemberExplSpec;
22962
 
  friend class ::WinTypeKeywords;
 
53872
  friend class ::ExtGnu;
22963
53873
  friend class ::PragmaOnceUnitState;
22964
53874
  friend class ::PragmaOnce;
22965
 
  friend class ::CCExprResolve;
22966
 
  friend class ::CExprResolve;
 
53875
  friend class ::CMatchSyntax;
22967
53876
 
22968
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53877
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22969
53878
 
22970
53879
public:
22971
53880
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
22972
53881
   CT_DeclList (size, 2) { AddProperties (props); }
 
53882
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22973
53883
  static const char *NodeId ();
 
53884
  /** Get the name of the node. Can be compared with NodeId(). */
22974
53885
  const char *NodeName () const { return NodeId (); }
 
53886
  CSemScope *SemScope () const { return (CSemScope*)this; }
22975
53887
};
22976
53888
 
22977
53889
 
22978
 
#line 22979 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53890
#line 53891 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
22979
53891
} // closed Puma
 
53892
class CCExprResolve;
 
53893
class CExprResolve;
22980
53894
class WinIfExists;
22981
53895
class WinImportHandler;
22982
53896
class WinMacros;
22983
 
class CMatchSyntax;
22984
 
class ExtGnu;
 
53897
class WinAsm;
 
53898
class WinDeclSpecs;
 
53899
class WinMemberExplSpec;
 
53900
class WinTypeKeywords;
 
53901
class WinFriend;
22985
53902
class ExtAC;
22986
53903
class ExtACBuilderCoupling;
22987
53904
class ExtACSyntaxCoupling;
22988
53905
class ExtACTree;
22989
53906
class ExtACKeywords;
22990
 
class WinAsm;
22991
 
class WinDeclSpecs;
22992
 
class WinMemberExplSpec;
22993
 
class WinTypeKeywords;
 
53907
class ExtGnu;
22994
53908
class PragmaOnceUnitState;
22995
53909
class PragmaOnce;
22996
 
class CCExprResolve;
22997
 
class CExprResolve;
 
53910
class CMatchSyntax;
22998
53911
namespace Puma {
22999
53912
 
23000
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53913
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23001
53914
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
23002
 
#line 23003 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53915
#line 53916 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53916
  friend class ::CCExprResolve;
 
53917
  friend class ::CExprResolve;
23003
53918
  friend class ::WinIfExists;
23004
53919
  friend class ::WinImportHandler;
23005
53920
  friend class ::WinMacros;
23006
 
  friend class ::CMatchSyntax;
23007
 
  friend class ::ExtGnu;
 
53921
  friend class ::WinAsm;
 
53922
  friend class ::WinDeclSpecs;
 
53923
  friend class ::WinMemberExplSpec;
 
53924
  friend class ::WinTypeKeywords;
 
53925
  friend class ::WinFriend;
23008
53926
  friend class ::ExtAC;
23009
53927
  friend class ::ExtACBuilderCoupling;
23010
53928
  friend class ::ExtACSyntaxCoupling;
23011
53929
  friend class ::ExtACTree;
23012
53930
  friend class ::ExtACKeywords;
23013
 
  friend class ::WinAsm;
23014
 
  friend class ::WinDeclSpecs;
23015
 
  friend class ::WinMemberExplSpec;
23016
 
  friend class ::WinTypeKeywords;
 
53931
  friend class ::ExtGnu;
23017
53932
  friend class ::PragmaOnceUnitState;
23018
53933
  friend class ::PragmaOnce;
23019
 
  friend class ::CCExprResolve;
23020
 
  friend class ::CExprResolve;
 
53934
  friend class ::CMatchSyntax;
23021
53935
 
23022
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53936
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23023
53937
 
23024
53938
public:
23025
53939
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
53940
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23026
53941
  static const char *NodeId ();
 
53942
  /** Get the name of the node. Can be compared with NodeId(). */
23027
53943
  const char *NodeName () const { return NodeId (); }
 
53944
  CSemScope *SemScope () const { return (CSemScope*)this; }
23028
53945
};
23029
53946
 
23030
53947
 
23031
 
#line 23032 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53948
#line 53949 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
23032
53949
} // closed Puma
 
53950
class CCExprResolve;
 
53951
class CExprResolve;
23033
53952
class WinIfExists;
23034
53953
class WinImportHandler;
23035
53954
class WinMacros;
23036
 
class CMatchSyntax;
23037
 
class ExtGnu;
 
53955
class WinAsm;
 
53956
class WinDeclSpecs;
 
53957
class WinMemberExplSpec;
 
53958
class WinTypeKeywords;
 
53959
class WinFriend;
23038
53960
class ExtAC;
23039
53961
class ExtACBuilderCoupling;
23040
53962
class ExtACSyntaxCoupling;
23041
53963
class ExtACTree;
23042
53964
class ExtACKeywords;
23043
 
class WinAsm;
23044
 
class WinDeclSpecs;
23045
 
class WinMemberExplSpec;
23046
 
class WinTypeKeywords;
 
53965
class ExtGnu;
23047
53966
class PragmaOnceUnitState;
23048
53967
class PragmaOnce;
23049
 
class CCExprResolve;
23050
 
class CExprResolve;
 
53968
class CMatchSyntax;
23051
53969
namespace Puma {
23052
53970
 
23053
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53971
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23054
53972
class CT_ArgNameList : public CT_ArgDeclList {
23055
 
#line 23056 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53973
#line 53974 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
53974
  friend class ::CCExprResolve;
 
53975
  friend class ::CExprResolve;
23056
53976
  friend class ::WinIfExists;
23057
53977
  friend class ::WinImportHandler;
23058
53978
  friend class ::WinMacros;
23059
 
  friend class ::CMatchSyntax;
23060
 
  friend class ::ExtGnu;
 
53979
  friend class ::WinAsm;
 
53980
  friend class ::WinDeclSpecs;
 
53981
  friend class ::WinMemberExplSpec;
 
53982
  friend class ::WinTypeKeywords;
 
53983
  friend class ::WinFriend;
23061
53984
  friend class ::ExtAC;
23062
53985
  friend class ::ExtACBuilderCoupling;
23063
53986
  friend class ::ExtACSyntaxCoupling;
23064
53987
  friend class ::ExtACTree;
23065
53988
  friend class ::ExtACKeywords;
23066
 
  friend class ::WinAsm;
23067
 
  friend class ::WinDeclSpecs;
23068
 
  friend class ::WinMemberExplSpec;
23069
 
  friend class ::WinTypeKeywords;
 
53989
  friend class ::ExtGnu;
23070
53990
  friend class ::PragmaOnceUnitState;
23071
53991
  friend class ::PragmaOnce;
23072
 
  friend class ::CCExprResolve;
23073
 
  friend class ::CExprResolve;
 
53992
  friend class ::CMatchSyntax;
23074
53993
 
23075
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53994
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23076
53995
 
23077
53996
public:
23078
53997
  CT_ArgNameList () : CT_ArgDeclList () {}
 
53998
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23079
53999
  static const char *NodeId ();
 
54000
  /** Get the name of the node. Can be compared with NodeId(). */
23080
54001
  const char *NodeName () const { return NodeId (); }
23081
54002
};
23082
54003
 
23083
54004
 
23084
 
#line 23085 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54005
#line 54006 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
23085
54006
} // closed Puma
 
54007
class CCExprResolve;
 
54008
class CExprResolve;
23086
54009
class WinIfExists;
23087
54010
class WinImportHandler;
23088
54011
class WinMacros;
23089
 
class CMatchSyntax;
23090
 
class ExtGnu;
 
54012
class WinAsm;
 
54013
class WinDeclSpecs;
 
54014
class WinMemberExplSpec;
 
54015
class WinTypeKeywords;
 
54016
class WinFriend;
23091
54017
class ExtAC;
23092
54018
class ExtACBuilderCoupling;
23093
54019
class ExtACSyntaxCoupling;
23094
54020
class ExtACTree;
23095
54021
class ExtACKeywords;
23096
 
class WinAsm;
23097
 
class WinDeclSpecs;
23098
 
class WinMemberExplSpec;
23099
 
class WinTypeKeywords;
 
54022
class ExtGnu;
23100
54023
class PragmaOnceUnitState;
23101
54024
class PragmaOnce;
23102
 
class CCExprResolve;
23103
 
class CExprResolve;
 
54025
class CMatchSyntax;
23104
54026
namespace Puma {
23105
54027
 
23106
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54028
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23107
54029
class CT_NamespaceDef : public CT_Decl, public CSemObject {
23108
 
#line 23109 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54030
#line 54031 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54031
  friend class ::CCExprResolve;
 
54032
  friend class ::CExprResolve;
23109
54033
  friend class ::WinIfExists;
23110
54034
  friend class ::WinImportHandler;
23111
54035
  friend class ::WinMacros;
23112
 
  friend class ::CMatchSyntax;
23113
 
  friend class ::ExtGnu;
 
54036
  friend class ::WinAsm;
 
54037
  friend class ::WinDeclSpecs;
 
54038
  friend class ::WinMemberExplSpec;
 
54039
  friend class ::WinTypeKeywords;
 
54040
  friend class ::WinFriend;
23114
54041
  friend class ::ExtAC;
23115
54042
  friend class ::ExtACBuilderCoupling;
23116
54043
  friend class ::ExtACSyntaxCoupling;
23117
54044
  friend class ::ExtACTree;
23118
54045
  friend class ::ExtACKeywords;
23119
 
  friend class ::WinAsm;
23120
 
  friend class ::WinDeclSpecs;
23121
 
  friend class ::WinMemberExplSpec;
23122
 
  friend class ::WinTypeKeywords;
 
54046
  friend class ::ExtGnu;
23123
54047
  friend class ::PragmaOnceUnitState;
23124
54048
  friend class ::PragmaOnce;
23125
 
  friend class ::CCExprResolve;
23126
 
  friend class ::CExprResolve;
 
54049
  friend class ::CMatchSyntax;
23127
54050
 
23128
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54051
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23129
54052
 
23130
54053
  CTree *sons[3]; // ns, name, members
23131
54054
 
23132
54055
public:
23133
54056
  CT_NamespaceDef (CTree *n, CTree *nm) {
23134
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
 
54057
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
23135
54058
  }
23136
54059
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
23137
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
 
54060
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
23138
54061
  }
 
54062
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23139
54063
  static const char *NodeId ();
 
54064
  /** Get the name of the node. Can be compared with NodeId(). */
23140
54065
  const char *NodeName () const { return NodeId (); }
 
54066
  /** Get the number of sons. */
23141
54067
  int Sons () const { return CTree::Sons (sons, 3); }
 
54068
  /** Get the n-th son.
 
54069
   *  \param n The index of the son.
 
54070
   *  \return The n-th son or NULL. */
23142
54071
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
23143
 
  void Members (CTree *m) { sons[2] = m; }
 
54072
  void Members (CTree *m) { AddSon (sons[2], m); }
23144
54073
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
23145
54074
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
23146
54075
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
54076
  /** Replace a son.
 
54077
   *  \param old_son The son to replace.
 
54078
   *  \param new_son The new son. */
23147
54079
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23148
54080
    CTree::ReplaceSon (sons, 3, old_son, new_son);
23149
54081
  }
23150
54082
};
23151
54083
 
23152
54084
 
23153
 
#line 23154 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54085
#line 54086 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
23154
54086
} // closed Puma
 
54087
class CCExprResolve;
 
54088
class CExprResolve;
23155
54089
class WinIfExists;
23156
54090
class WinImportHandler;
23157
54091
class WinMacros;
23158
 
class CMatchSyntax;
23159
 
class ExtGnu;
 
54092
class WinAsm;
 
54093
class WinDeclSpecs;
 
54094
class WinMemberExplSpec;
 
54095
class WinTypeKeywords;
 
54096
class WinFriend;
23160
54097
class ExtAC;
23161
54098
class ExtACBuilderCoupling;
23162
54099
class ExtACSyntaxCoupling;
23163
54100
class ExtACTree;
23164
54101
class ExtACKeywords;
23165
 
class WinAsm;
23166
 
class WinDeclSpecs;
23167
 
class WinMemberExplSpec;
23168
 
class WinTypeKeywords;
 
54102
class ExtGnu;
23169
54103
class PragmaOnceUnitState;
23170
54104
class PragmaOnce;
23171
 
class CCExprResolve;
23172
 
class CExprResolve;
 
54105
class CMatchSyntax;
23173
54106
namespace Puma {
23174
54107
 
23175
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54108
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23176
54109
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
23177
 
#line 23178 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54110
#line 54111 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54111
  friend class ::CCExprResolve;
 
54112
  friend class ::CExprResolve;
23178
54113
  friend class ::WinIfExists;
23179
54114
  friend class ::WinImportHandler;
23180
54115
  friend class ::WinMacros;
23181
 
  friend class ::CMatchSyntax;
23182
 
  friend class ::ExtGnu;
 
54116
  friend class ::WinAsm;
 
54117
  friend class ::WinDeclSpecs;
 
54118
  friend class ::WinMemberExplSpec;
 
54119
  friend class ::WinTypeKeywords;
 
54120
  friend class ::WinFriend;
23183
54121
  friend class ::ExtAC;
23184
54122
  friend class ::ExtACBuilderCoupling;
23185
54123
  friend class ::ExtACSyntaxCoupling;
23186
54124
  friend class ::ExtACTree;
23187
54125
  friend class ::ExtACKeywords;
23188
 
  friend class ::WinAsm;
23189
 
  friend class ::WinDeclSpecs;
23190
 
  friend class ::WinMemberExplSpec;
23191
 
  friend class ::WinTypeKeywords;
 
54126
  friend class ::ExtGnu;
23192
54127
  friend class ::PragmaOnceUnitState;
23193
54128
  friend class ::PragmaOnce;
23194
 
  friend class ::CCExprResolve;
23195
 
  friend class ::CExprResolve;
 
54129
  friend class ::CMatchSyntax;
23196
54130
 
23197
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54131
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23198
54132
 
23199
54133
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
23200
54134
 
23201
54135
public:
23202
54136
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
23203
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
 
54137
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
54138
    AddSon (sons[3], nm); AddSon (sons[4], s); 
23204
54139
  }
 
54140
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23205
54141
  static const char *NodeId ();
 
54142
  /** Get the name of the node. Can be compared with NodeId(). */
23206
54143
  const char *NodeName () const { return NodeId (); }
 
54144
  /** Get the number of sons. */
23207
54145
  int Sons () const { return 5; }
 
54146
  /** Get the n-th son.
 
54147
   *  \param n The index of the son.
 
54148
   *  \return The n-th son or NULL. */
23208
54149
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
23209
54150
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
23210
54151
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
23211
54152
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
54153
  /** Replace a son.
 
54154
   *  \param old_son The son to replace.
 
54155
   *  \param new_son The new son. */
23212
54156
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23213
54157
    CTree::ReplaceSon (sons, 5, old_son, new_son);
23214
54158
  }
23215
54159
};
23216
54160
 
23217
54161
 
23218
 
#line 23219 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54162
#line 54163 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
23219
54163
} // closed Puma
 
54164
class CCExprResolve;
 
54165
class CExprResolve;
23220
54166
class WinIfExists;
23221
54167
class WinImportHandler;
23222
54168
class WinMacros;
23223
 
class CMatchSyntax;
23224
 
class ExtGnu;
 
54169
class WinAsm;
 
54170
class WinDeclSpecs;
 
54171
class WinMemberExplSpec;
 
54172
class WinTypeKeywords;
 
54173
class WinFriend;
23225
54174
class ExtAC;
23226
54175
class ExtACBuilderCoupling;
23227
54176
class ExtACSyntaxCoupling;
23228
54177
class ExtACTree;
23229
54178
class ExtACKeywords;
23230
 
class WinAsm;
23231
 
class WinDeclSpecs;
23232
 
class WinMemberExplSpec;
23233
 
class WinTypeKeywords;
 
54179
class ExtGnu;
23234
54180
class PragmaOnceUnitState;
23235
54181
class PragmaOnce;
23236
 
class CCExprResolve;
23237
 
class CExprResolve;
 
54182
class CMatchSyntax;
23238
54183
namespace Puma {
23239
54184
 
23240
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54185
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23241
54186
class CT_UsingDirective : public CT_Decl {
23242
 
#line 23243 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54187
#line 54188 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54188
  friend class ::CCExprResolve;
 
54189
  friend class ::CExprResolve;
23243
54190
  friend class ::WinIfExists;
23244
54191
  friend class ::WinImportHandler;
23245
54192
  friend class ::WinMacros;
23246
 
  friend class ::CMatchSyntax;
23247
 
  friend class ::ExtGnu;
 
54193
  friend class ::WinAsm;
 
54194
  friend class ::WinDeclSpecs;
 
54195
  friend class ::WinMemberExplSpec;
 
54196
  friend class ::WinTypeKeywords;
 
54197
  friend class ::WinFriend;
23248
54198
  friend class ::ExtAC;
23249
54199
  friend class ::ExtACBuilderCoupling;
23250
54200
  friend class ::ExtACSyntaxCoupling;
23251
54201
  friend class ::ExtACTree;
23252
54202
  friend class ::ExtACKeywords;
23253
 
  friend class ::WinAsm;
23254
 
  friend class ::WinDeclSpecs;
23255
 
  friend class ::WinMemberExplSpec;
23256
 
  friend class ::WinTypeKeywords;
 
54203
  friend class ::ExtGnu;
23257
54204
  friend class ::PragmaOnceUnitState;
23258
54205
  friend class ::PragmaOnce;
23259
 
  friend class ::CCExprResolve;
23260
 
  friend class ::CExprResolve;
 
54206
  friend class ::CMatchSyntax;
23261
54207
 
23262
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54208
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23263
54209
 
23264
54210
  CTree *sons[4]; // using, ns, name, semi_colon
23265
54211
 
23266
54212
public:
23267
54213
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
23268
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
 
54214
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
54215
    AddSon (sons[3], s); 
23269
54216
  }
 
54217
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23270
54218
  static const char *NodeId ();
 
54219
  /** Get the name of the node. Can be compared with NodeId(). */
23271
54220
  const char *NodeName () const { return NodeId (); }
 
54221
  /** Get the number of sons. */
23272
54222
  int Sons () const { return 4; }
 
54223
  /** Get the n-th son.
 
54224
   *  \param n The index of the son.
 
54225
   *  \return The n-th son or NULL. */
23273
54226
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
23274
54227
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
54228
  /** Replace a son.
 
54229
   *  \param old_son The son to replace.
 
54230
   *  \param new_son The new son. */
23275
54231
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23276
54232
    CTree::ReplaceSon (sons, 4, old_son, new_son);
23277
54233
  }
23284
54240
/*****************************************************************************/
23285
54241
 
23286
54242
 
23287
 
#line 23288 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54243
#line 54244 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
23288
54244
} // closed Puma
 
54245
class CCExprResolve;
 
54246
class CExprResolve;
23289
54247
class WinIfExists;
23290
54248
class WinImportHandler;
23291
54249
class WinMacros;
23292
 
class CMatchSyntax;
23293
 
class ExtGnu;
 
54250
class WinAsm;
 
54251
class WinDeclSpecs;
 
54252
class WinMemberExplSpec;
 
54253
class WinTypeKeywords;
 
54254
class WinFriend;
23294
54255
class ExtAC;
23295
54256
class ExtACBuilderCoupling;
23296
54257
class ExtACSyntaxCoupling;
23297
54258
class ExtACTree;
23298
54259
class ExtACKeywords;
23299
 
class WinAsm;
23300
 
class WinDeclSpecs;
23301
 
class WinMemberExplSpec;
23302
 
class WinTypeKeywords;
 
54260
class ExtGnu;
23303
54261
class PragmaOnceUnitState;
23304
54262
class PragmaOnce;
23305
 
class CCExprResolve;
23306
 
class CExprResolve;
 
54263
class CMatchSyntax;
23307
54264
namespace Puma {
23308
54265
 
23309
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54266
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23310
54267
class CT_Declarator : public CTree {
23311
 
#line 23312 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54268
#line 54269 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54269
  friend class ::CCExprResolve;
 
54270
  friend class ::CExprResolve;
23312
54271
  friend class ::WinIfExists;
23313
54272
  friend class ::WinImportHandler;
23314
54273
  friend class ::WinMacros;
23315
 
  friend class ::CMatchSyntax;
23316
 
  friend class ::ExtGnu;
 
54274
  friend class ::WinAsm;
 
54275
  friend class ::WinDeclSpecs;
 
54276
  friend class ::WinMemberExplSpec;
 
54277
  friend class ::WinTypeKeywords;
 
54278
  friend class ::WinFriend;
23317
54279
  friend class ::ExtAC;
23318
54280
  friend class ::ExtACBuilderCoupling;
23319
54281
  friend class ::ExtACSyntaxCoupling;
23320
54282
  friend class ::ExtACTree;
23321
54283
  friend class ::ExtACKeywords;
23322
 
  friend class ::WinAsm;
23323
 
  friend class ::WinDeclSpecs;
23324
 
  friend class ::WinMemberExplSpec;
23325
 
  friend class ::WinTypeKeywords;
 
54284
  friend class ::ExtGnu;
23326
54285
  friend class ::PragmaOnceUnitState;
23327
54286
  friend class ::PragmaOnce;
23328
 
  friend class ::CCExprResolve;
23329
 
  friend class ::CExprResolve;
 
54287
  friend class ::CMatchSyntax;
23330
54288
 
23331
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54289
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23332
54290
 
23333
54291
protected:
23334
54292
  CT_Declarator () {}
23343
54301
};
23344
54302
 
23345
54303
 
23346
 
#line 23347 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54304
#line 54305 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
23347
54305
} // closed Puma
 
54306
class CCExprResolve;
 
54307
class CExprResolve;
23348
54308
class WinIfExists;
23349
54309
class WinImportHandler;
23350
54310
class WinMacros;
23351
 
class CMatchSyntax;
23352
 
class ExtGnu;
 
54311
class WinAsm;
 
54312
class WinDeclSpecs;
 
54313
class WinMemberExplSpec;
 
54314
class WinTypeKeywords;
 
54315
class WinFriend;
23353
54316
class ExtAC;
23354
54317
class ExtACBuilderCoupling;
23355
54318
class ExtACSyntaxCoupling;
23356
54319
class ExtACTree;
23357
54320
class ExtACKeywords;
23358
 
class WinAsm;
23359
 
class WinDeclSpecs;
23360
 
class WinMemberExplSpec;
23361
 
class WinTypeKeywords;
 
54321
class ExtGnu;
23362
54322
class PragmaOnceUnitState;
23363
54323
class PragmaOnce;
23364
 
class CCExprResolve;
23365
 
class CExprResolve;
 
54324
class CMatchSyntax;
23366
54325
namespace Puma {
23367
54326
 
23368
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54327
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23369
54328
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
23370
 
#line 23371 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54329
#line 54330 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54330
  friend class ::CCExprResolve;
 
54331
  friend class ::CExprResolve;
23371
54332
  friend class ::WinIfExists;
23372
54333
  friend class ::WinImportHandler;
23373
54334
  friend class ::WinMacros;
23374
 
  friend class ::CMatchSyntax;
23375
 
  friend class ::ExtGnu;
 
54335
  friend class ::WinAsm;
 
54336
  friend class ::WinDeclSpecs;
 
54337
  friend class ::WinMemberExplSpec;
 
54338
  friend class ::WinTypeKeywords;
 
54339
  friend class ::WinFriend;
23376
54340
  friend class ::ExtAC;
23377
54341
  friend class ::ExtACBuilderCoupling;
23378
54342
  friend class ::ExtACSyntaxCoupling;
23379
54343
  friend class ::ExtACTree;
23380
54344
  friend class ::ExtACKeywords;
23381
 
  friend class ::WinAsm;
23382
 
  friend class ::WinDeclSpecs;
23383
 
  friend class ::WinMemberExplSpec;
23384
 
  friend class ::WinTypeKeywords;
 
54345
  friend class ::ExtGnu;
23385
54346
  friend class ::PragmaOnceUnitState;
23386
54347
  friend class ::PragmaOnce;
23387
 
  friend class ::CCExprResolve;
23388
 
  friend class ::CExprResolve;
23389
 
 
23390
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23391
 
 
23392
 
  CTree *sons[2]; // declarator, init
 
54348
  friend class ::CMatchSyntax;
 
54349
 
 
54350
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54351
 
 
54352
  CTree *sons[3]; // declarator, ext, init
23393
54353
  CTree *obj_decl;
23394
54354
 
23395
54355
public:
23396
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
23397
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
 
54356
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
54357
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
54358
    AddSon (obj_decl, 0); 
23398
54359
  }
 
54360
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23399
54361
  static const char *NodeId ();
 
54362
  /** Get the name of the node. Can be compared with NodeId(). */
23400
54363
  const char *NodeName () const { return NodeId (); }
23401
 
  int Sons () const { return CTree::Sons (sons, 2); }
23402
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
54364
  /** Get the number of sons. */
 
54365
  int Sons () const { return CTree::Sons (sons, 3); }
 
54366
  /** Get the n-th son.
 
54367
   *  \param n The index of the son.
 
54368
   *  \return The n-th son or NULL. */
 
54369
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
23403
54370
  CTree *Declarator () const { return sons[0]; }
23404
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
54371
  CTree *Extension () const { return sons[1]; }
 
54372
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
23405
54373
  CSemObject *SemObject () const { return (CSemObject*)this; }
23406
54374
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
23407
 
  void Initializer (CTree* i) { sons[1] = i; }
23408
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
54375
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
54376
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
54377
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
54378
  /** Replace a son.
 
54379
   *  \param old_son The son to replace.
 
54380
   *  \param new_son The new son. */
23409
54381
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23410
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
54382
    CTree::ReplaceSon (sons, 3, old_son, new_son);
23411
54383
  }
23412
54384
};
23413
54385
 
23414
54386
 
23415
 
#line 23416 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54387
#line 54388 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
23416
54388
} // closed Puma
 
54389
class CCExprResolve;
 
54390
class CExprResolve;
23417
54391
class WinIfExists;
23418
54392
class WinImportHandler;
23419
54393
class WinMacros;
23420
 
class CMatchSyntax;
23421
 
class ExtGnu;
 
54394
class WinAsm;
 
54395
class WinDeclSpecs;
 
54396
class WinMemberExplSpec;
 
54397
class WinTypeKeywords;
 
54398
class WinFriend;
23422
54399
class ExtAC;
23423
54400
class ExtACBuilderCoupling;
23424
54401
class ExtACSyntaxCoupling;
23425
54402
class ExtACTree;
23426
54403
class ExtACKeywords;
23427
 
class WinAsm;
23428
 
class WinDeclSpecs;
23429
 
class WinMemberExplSpec;
23430
 
class WinTypeKeywords;
 
54404
class ExtGnu;
23431
54405
class PragmaOnceUnitState;
23432
54406
class PragmaOnce;
23433
 
class CCExprResolve;
23434
 
class CExprResolve;
 
54407
class CMatchSyntax;
23435
54408
namespace Puma {
23436
54409
 
23437
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54410
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23438
54411
class CT_BracedDeclarator : public CT_Declarator {
23439
 
#line 23440 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54412
#line 54413 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54413
  friend class ::CCExprResolve;
 
54414
  friend class ::CExprResolve;
23440
54415
  friend class ::WinIfExists;
23441
54416
  friend class ::WinImportHandler;
23442
54417
  friend class ::WinMacros;
23443
 
  friend class ::CMatchSyntax;
23444
 
  friend class ::ExtGnu;
 
54418
  friend class ::WinAsm;
 
54419
  friend class ::WinDeclSpecs;
 
54420
  friend class ::WinMemberExplSpec;
 
54421
  friend class ::WinTypeKeywords;
 
54422
  friend class ::WinFriend;
23445
54423
  friend class ::ExtAC;
23446
54424
  friend class ::ExtACBuilderCoupling;
23447
54425
  friend class ::ExtACSyntaxCoupling;
23448
54426
  friend class ::ExtACTree;
23449
54427
  friend class ::ExtACKeywords;
23450
 
  friend class ::WinAsm;
23451
 
  friend class ::WinDeclSpecs;
23452
 
  friend class ::WinMemberExplSpec;
23453
 
  friend class ::WinTypeKeywords;
 
54428
  friend class ::ExtGnu;
23454
54429
  friend class ::PragmaOnceUnitState;
23455
54430
  friend class ::PragmaOnce;
23456
 
  friend class ::CCExprResolve;
23457
 
  friend class ::CExprResolve;
 
54431
  friend class ::CMatchSyntax;
23458
54432
 
23459
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54433
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23460
54434
 
23461
54435
  CTree *sons[4]; // open, win_specs, declarator, close
23462
54436
 
23463
54437
public:
23464
54438
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
23465
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
 
54439
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
54440
    AddSon (sons[2], d); AddSon (sons[3], c); 
23466
54441
  }
23467
54442
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
23468
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
 
54443
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
54444
    AddSon (sons[2], d); AddSon (sons[3], c); 
23469
54445
  }
 
54446
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23470
54447
  static const char *NodeId ();
 
54448
  /** Get the name of the node. Can be compared with NodeId(). */
23471
54449
  const char *NodeName () const { return NodeId (); }
 
54450
  /** Get the number of sons. */
23472
54451
  int Sons () const { return CTree::Sons (sons, 4); }
 
54452
  /** Get the n-th son.
 
54453
   *  \param n The index of the son.
 
54454
   *  \return The n-th son or NULL. */
23473
54455
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
23474
54456
  CTree *Declarator () const { return sons[2]; }
 
54457
  /** Replace a son.
 
54458
   *  \param old_son The son to replace.
 
54459
   *  \param new_son The new son. */
23475
54460
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23476
54461
    CTree::ReplaceSon (sons, 4, old_son, new_son);
23477
54462
  }
23478
54463
};
23479
54464
 
23480
54465
 
23481
 
#line 23482 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54466
#line 54467 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
23482
54467
} // closed Puma
 
54468
class CCExprResolve;
 
54469
class CExprResolve;
23483
54470
class WinIfExists;
23484
54471
class WinImportHandler;
23485
54472
class WinMacros;
23486
 
class CMatchSyntax;
23487
 
class ExtGnu;
 
54473
class WinAsm;
 
54474
class WinDeclSpecs;
 
54475
class WinMemberExplSpec;
 
54476
class WinTypeKeywords;
 
54477
class WinFriend;
23488
54478
class ExtAC;
23489
54479
class ExtACBuilderCoupling;
23490
54480
class ExtACSyntaxCoupling;
23491
54481
class ExtACTree;
23492
54482
class ExtACKeywords;
23493
 
class WinAsm;
23494
 
class WinDeclSpecs;
23495
 
class WinMemberExplSpec;
23496
 
class WinTypeKeywords;
 
54483
class ExtGnu;
23497
54484
class PragmaOnceUnitState;
23498
54485
class PragmaOnce;
23499
 
class CCExprResolve;
23500
 
class CExprResolve;
 
54486
class CMatchSyntax;
23501
54487
namespace Puma {
23502
54488
 
23503
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54489
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23504
54490
class CT_ArrayDelimiter : public CTree {
23505
 
#line 23506 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54491
#line 54492 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54492
  friend class ::CCExprResolve;
 
54493
  friend class ::CExprResolve;
23506
54494
  friend class ::WinIfExists;
23507
54495
  friend class ::WinImportHandler;
23508
54496
  friend class ::WinMacros;
23509
 
  friend class ::CMatchSyntax;
23510
 
  friend class ::ExtGnu;
 
54497
  friend class ::WinAsm;
 
54498
  friend class ::WinDeclSpecs;
 
54499
  friend class ::WinMemberExplSpec;
 
54500
  friend class ::WinTypeKeywords;
 
54501
  friend class ::WinFriend;
23511
54502
  friend class ::ExtAC;
23512
54503
  friend class ::ExtACBuilderCoupling;
23513
54504
  friend class ::ExtACSyntaxCoupling;
23514
54505
  friend class ::ExtACTree;
23515
54506
  friend class ::ExtACKeywords;
23516
 
  friend class ::WinAsm;
23517
 
  friend class ::WinDeclSpecs;
23518
 
  friend class ::WinMemberExplSpec;
23519
 
  friend class ::WinTypeKeywords;
 
54507
  friend class ::ExtGnu;
23520
54508
  friend class ::PragmaOnceUnitState;
23521
54509
  friend class ::PragmaOnce;
23522
 
  friend class ::CCExprResolve;
23523
 
  friend class ::CExprResolve;
 
54510
  friend class ::CMatchSyntax;
23524
54511
 
23525
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54512
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23526
54513
 
23527
54514
  CTree *sons[4]; // star, static, quals, expr
23528
54515
  bool pos0;
23529
54516
 
23530
54517
public:
23531
54518
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
23532
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
 
54519
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
54520
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
23533
54521
  }
 
54522
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23534
54523
  static const char *NodeId ();
 
54524
  /** Get the name of the node. Can be compared with NodeId(). */
23535
54525
  const char *NodeName () const { return NodeId (); }
 
54526
  /** Get the number of sons. */
23536
54527
  int Sons () const { return CTree::Sons (sons, 4); }
 
54528
  /** Get the n-th son.
 
54529
   *  \param n The index of the son.
 
54530
   *  \return The n-th son or NULL. */
23537
54531
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
23538
54532
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
23539
54533
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
23540
54534
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
23541
54535
  CTree *Expr () const { return sons[3]; }
 
54536
  /** Replace a son.
 
54537
   *  \param old_son The son to replace.
 
54538
   *  \param new_son The new son. */
23542
54539
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23543
54540
    CTree::ReplaceSon (sons, 4, old_son, new_son);
23544
54541
  }
23545
54542
};
23546
54543
 
23547
54544
 
23548
 
#line 23549 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54545
#line 54546 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
23549
54546
} // closed Puma
 
54547
class CCExprResolve;
 
54548
class CExprResolve;
23550
54549
class WinIfExists;
23551
54550
class WinImportHandler;
23552
54551
class WinMacros;
23553
 
class CMatchSyntax;
23554
 
class ExtGnu;
 
54552
class WinAsm;
 
54553
class WinDeclSpecs;
 
54554
class WinMemberExplSpec;
 
54555
class WinTypeKeywords;
 
54556
class WinFriend;
23555
54557
class ExtAC;
23556
54558
class ExtACBuilderCoupling;
23557
54559
class ExtACSyntaxCoupling;
23558
54560
class ExtACTree;
23559
54561
class ExtACKeywords;
23560
 
class WinAsm;
23561
 
class WinDeclSpecs;
23562
 
class WinMemberExplSpec;
23563
 
class WinTypeKeywords;
 
54562
class ExtGnu;
23564
54563
class PragmaOnceUnitState;
23565
54564
class PragmaOnce;
23566
 
class CCExprResolve;
23567
 
class CExprResolve;
 
54565
class CMatchSyntax;
23568
54566
namespace Puma {
23569
54567
 
23570
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54568
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23571
54569
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
23572
 
#line 23573 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54570
#line 54571 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54571
  friend class ::CCExprResolve;
 
54572
  friend class ::CExprResolve;
23573
54573
  friend class ::WinIfExists;
23574
54574
  friend class ::WinImportHandler;
23575
54575
  friend class ::WinMacros;
23576
 
  friend class ::CMatchSyntax;
23577
 
  friend class ::ExtGnu;
 
54576
  friend class ::WinAsm;
 
54577
  friend class ::WinDeclSpecs;
 
54578
  friend class ::WinMemberExplSpec;
 
54579
  friend class ::WinTypeKeywords;
 
54580
  friend class ::WinFriend;
23578
54581
  friend class ::ExtAC;
23579
54582
  friend class ::ExtACBuilderCoupling;
23580
54583
  friend class ::ExtACSyntaxCoupling;
23581
54584
  friend class ::ExtACTree;
23582
54585
  friend class ::ExtACKeywords;
23583
 
  friend class ::WinAsm;
23584
 
  friend class ::WinDeclSpecs;
23585
 
  friend class ::WinMemberExplSpec;
23586
 
  friend class ::WinTypeKeywords;
 
54586
  friend class ::ExtGnu;
23587
54587
  friend class ::PragmaOnceUnitState;
23588
54588
  friend class ::PragmaOnce;
23589
 
  friend class ::CCExprResolve;
23590
 
  friend class ::CExprResolve;
 
54589
  friend class ::CMatchSyntax;
23591
54590
 
23592
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54591
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23593
54592
 
23594
54593
  CTree *sons[4]; // declarator, open, delim, close
23595
54594
 
23596
54595
public:
23597
54596
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
23598
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
 
54597
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
54598
    AddSon (sons[2], ad); AddSon (sons[3], c); 
23599
54599
  }
 
54600
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23600
54601
  static const char *NodeId ();
 
54602
  /** Get the name of the node. Can be compared with NodeId(). */
23601
54603
  const char *NodeName () const { return NodeId (); }
 
54604
  /** Get the number of sons. */
23602
54605
  int Sons () const { return 4; }
 
54606
  /** Get the n-th son.
 
54607
   *  \param n The index of the son.
 
54608
   *  \return The n-th son or NULL. */
23603
54609
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
23604
54610
  CTree *Declarator () const { return sons[0]; }
23605
54611
  CT_ArrayDelimiter *Delimiter () const 
23606
54612
   { return (CT_ArrayDelimiter*)sons[2]; }
 
54613
  /** Replace a son.
 
54614
   *  \param old_son The son to replace.
 
54615
   *  \param new_son The new son. */
23607
54616
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23608
54617
    CTree::ReplaceSon (sons, 4, old_son, new_son);
23609
54618
  }
23613
54622
};
23614
54623
 
23615
54624
 
23616
 
#line 23617 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54625
#line 54626 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
23617
54626
} // closed Puma
 
54627
class CCExprResolve;
 
54628
class CExprResolve;
23618
54629
class WinIfExists;
23619
54630
class WinImportHandler;
23620
54631
class WinMacros;
23621
 
class CMatchSyntax;
23622
 
class ExtGnu;
 
54632
class WinAsm;
 
54633
class WinDeclSpecs;
 
54634
class WinMemberExplSpec;
 
54635
class WinTypeKeywords;
 
54636
class WinFriend;
23623
54637
class ExtAC;
23624
54638
class ExtACBuilderCoupling;
23625
54639
class ExtACSyntaxCoupling;
23626
54640
class ExtACTree;
23627
54641
class ExtACKeywords;
23628
 
class WinAsm;
23629
 
class WinDeclSpecs;
23630
 
class WinMemberExplSpec;
23631
 
class WinTypeKeywords;
 
54642
class ExtGnu;
23632
54643
class PragmaOnceUnitState;
23633
54644
class PragmaOnce;
23634
 
class CCExprResolve;
23635
 
class CExprResolve;
 
54645
class CMatchSyntax;
23636
54646
namespace Puma {
23637
54647
 
23638
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54648
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23639
54649
class CT_FctDeclarator : public CT_Declarator {
23640
 
#line 23641 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54650
#line 54651 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54651
  friend class ::CCExprResolve;
 
54652
  friend class ::CExprResolve;
23641
54653
  friend class ::WinIfExists;
23642
54654
  friend class ::WinImportHandler;
23643
54655
  friend class ::WinMacros;
23644
 
  friend class ::CMatchSyntax;
23645
 
  friend class ::ExtGnu;
 
54656
  friend class ::WinAsm;
 
54657
  friend class ::WinDeclSpecs;
 
54658
  friend class ::WinMemberExplSpec;
 
54659
  friend class ::WinTypeKeywords;
 
54660
  friend class ::WinFriend;
23646
54661
  friend class ::ExtAC;
23647
54662
  friend class ::ExtACBuilderCoupling;
23648
54663
  friend class ::ExtACSyntaxCoupling;
23649
54664
  friend class ::ExtACTree;
23650
54665
  friend class ::ExtACKeywords;
23651
 
  friend class ::WinAsm;
23652
 
  friend class ::WinDeclSpecs;
23653
 
  friend class ::WinMemberExplSpec;
23654
 
  friend class ::WinTypeKeywords;
 
54666
  friend class ::ExtGnu;
23655
54667
  friend class ::PragmaOnceUnitState;
23656
54668
  friend class ::PragmaOnce;
23657
 
  friend class ::CCExprResolve;
23658
 
  friend class ::CExprResolve;
 
54669
  friend class ::CMatchSyntax;
23659
54670
 
23660
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54671
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23661
54672
 
23662
54673
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
23663
54674
 
23664
54675
public:
23665
54676
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
23666
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
 
54677
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
54678
    AddSon (sons[2], cv); AddSon (sons[3], es); 
23667
54679
  }
 
54680
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23668
54681
  static const char *NodeId ();
 
54682
  /** Get the name of the node. Can be compared with NodeId(). */
23669
54683
  const char *NodeName () const { return NodeId (); }
 
54684
  /** Get the number of sons. */
23670
54685
  int Sons () const { return CTree::Sons (sons, 4); }
 
54686
  /** Get the n-th son.
 
54687
   *  \param n The index of the son.
 
54688
   *  \return The n-th son or NULL. */
23671
54689
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
23672
54690
  CTree *Declarator () const { return sons[0]; }
23673
54691
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
23674
54692
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
23675
54693
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
54694
  /** Replace a son.
 
54695
   *  \param old_son The son to replace.
 
54696
   *  \param new_son The new son. */
23676
54697
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23677
54698
    CTree::ReplaceSon (sons, 4, old_son, new_son);
23678
54699
  }
23679
54700
};
23680
54701
 
23681
54702
 
23682
 
#line 23683 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54703
#line 54704 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
23683
54704
} // closed Puma
 
54705
class CCExprResolve;
 
54706
class CExprResolve;
23684
54707
class WinIfExists;
23685
54708
class WinImportHandler;
23686
54709
class WinMacros;
23687
 
class CMatchSyntax;
23688
 
class ExtGnu;
 
54710
class WinAsm;
 
54711
class WinDeclSpecs;
 
54712
class WinMemberExplSpec;
 
54713
class WinTypeKeywords;
 
54714
class WinFriend;
23689
54715
class ExtAC;
23690
54716
class ExtACBuilderCoupling;
23691
54717
class ExtACSyntaxCoupling;
23692
54718
class ExtACTree;
23693
54719
class ExtACKeywords;
23694
 
class WinAsm;
23695
 
class WinDeclSpecs;
23696
 
class WinMemberExplSpec;
23697
 
class WinTypeKeywords;
 
54720
class ExtGnu;
23698
54721
class PragmaOnceUnitState;
23699
54722
class PragmaOnce;
23700
 
class CCExprResolve;
23701
 
class CExprResolve;
 
54723
class CMatchSyntax;
23702
54724
namespace Puma {
23703
54725
 
23704
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54726
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23705
54727
class CT_RefDeclarator : public CT_Declarator {
23706
 
#line 23707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54728
#line 54729 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54729
  friend class ::CCExprResolve;
 
54730
  friend class ::CExprResolve;
23707
54731
  friend class ::WinIfExists;
23708
54732
  friend class ::WinImportHandler;
23709
54733
  friend class ::WinMacros;
23710
 
  friend class ::CMatchSyntax;
23711
 
  friend class ::ExtGnu;
 
54734
  friend class ::WinAsm;
 
54735
  friend class ::WinDeclSpecs;
 
54736
  friend class ::WinMemberExplSpec;
 
54737
  friend class ::WinTypeKeywords;
 
54738
  friend class ::WinFriend;
23712
54739
  friend class ::ExtAC;
23713
54740
  friend class ::ExtACBuilderCoupling;
23714
54741
  friend class ::ExtACSyntaxCoupling;
23715
54742
  friend class ::ExtACTree;
23716
54743
  friend class ::ExtACKeywords;
23717
 
  friend class ::WinAsm;
23718
 
  friend class ::WinDeclSpecs;
23719
 
  friend class ::WinMemberExplSpec;
23720
 
  friend class ::WinTypeKeywords;
 
54744
  friend class ::ExtGnu;
23721
54745
  friend class ::PragmaOnceUnitState;
23722
54746
  friend class ::PragmaOnce;
23723
 
  friend class ::CCExprResolve;
23724
 
  friend class ::CExprResolve;
 
54747
  friend class ::CMatchSyntax;
23725
54748
 
23726
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54749
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23727
54750
 
23728
54751
  CTree *sons[2]; // ref, declarator
23729
54752
 
23730
54753
public:
23731
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
 
54754
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
54755
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23732
54756
  static const char *NodeId ();
 
54757
  /** Get the name of the node. Can be compared with NodeId(). */
23733
54758
  const char *NodeName () const { return NodeId (); }
 
54759
  /** Get the number of sons. */
23734
54760
  int Sons () const { return 2; }
 
54761
  /** Get the n-th son.
 
54762
   *  \param n The index of the son.
 
54763
   *  \return The n-th son or NULL. */
23735
54764
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
23736
54765
  CTree *Declarator () const { return sons[1]; }
 
54766
  /** Replace a son.
 
54767
   *  \param old_son The son to replace.
 
54768
   *  \param new_son The new son. */
23737
54769
  void ReplaceSon (CTree *old_son, CTree *new_son) {
23738
54770
    CTree::ReplaceSon (sons, 2, old_son, new_son);
23739
54771
  }
23740
54772
};
23741
54773
 
23742
54774
 
23743
 
#line 23744 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54775
#line 54776 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
23744
54776
} // closed Puma
 
54777
class CCExprResolve;
 
54778
class CExprResolve;
23745
54779
class WinIfExists;
23746
54780
class WinImportHandler;
23747
54781
class WinMacros;
23748
 
class CMatchSyntax;
23749
 
class ExtGnu;
 
54782
class WinAsm;
 
54783
class WinDeclSpecs;
 
54784
class WinMemberExplSpec;
 
54785
class WinTypeKeywords;
 
54786
class WinFriend;
23750
54787
class ExtAC;
23751
54788
class ExtACBuilderCoupling;
23752
54789
class ExtACSyntaxCoupling;
23753
54790
class ExtACTree;
23754
54791
class ExtACKeywords;
23755
 
class WinAsm;
23756
 
class WinDeclSpecs;
23757
 
class WinMemberExplSpec;
23758
 
class WinTypeKeywords;
 
54792
class ExtGnu;
23759
54793
class PragmaOnceUnitState;
23760
54794
class PragmaOnce;
23761
 
class CCExprResolve;
23762
 
class CExprResolve;
 
54795
class CMatchSyntax;
23763
54796
namespace Puma {
23764
54797
 
23765
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54798
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23766
54799
class CT_PtrDeclarator : public CT_Declarator {
23767
 
#line 23768 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54800
#line 54801 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54801
  friend class ::CCExprResolve;
 
54802
  friend class ::CExprResolve;
23768
54803
  friend class ::WinIfExists;
23769
54804
  friend class ::WinImportHandler;
23770
54805
  friend class ::WinMacros;
23771
 
  friend class ::CMatchSyntax;
23772
 
  friend class ::ExtGnu;
 
54806
  friend class ::WinAsm;
 
54807
  friend class ::WinDeclSpecs;
 
54808
  friend class ::WinMemberExplSpec;
 
54809
  friend class ::WinTypeKeywords;
 
54810
  friend class ::WinFriend;
23773
54811
  friend class ::ExtAC;
23774
54812
  friend class ::ExtACBuilderCoupling;
23775
54813
  friend class ::ExtACSyntaxCoupling;
23776
54814
  friend class ::ExtACTree;
23777
54815
  friend class ::ExtACKeywords;
23778
 
  friend class ::WinAsm;
23779
 
  friend class ::WinDeclSpecs;
23780
 
  friend class ::WinMemberExplSpec;
23781
 
  friend class ::WinTypeKeywords;
 
54816
  friend class ::ExtGnu;
23782
54817
  friend class ::PragmaOnceUnitState;
23783
54818
  friend class ::PragmaOnce;
23784
 
  friend class ::CCExprResolve;
23785
 
  friend class ::CExprResolve;
 
54819
  friend class ::CMatchSyntax;
23786
54820
 
23787
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54821
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23788
54822
 
23789
54823
  CTree *sons[3]; // ptr, cv_quals, declarator
23790
54824
 
23791
54825
public:
23792
54826
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
23793
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
 
54827
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
23794
54828
  }
 
54829
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23795
54830
  static const char *NodeId ();
 
54831
  /** Get the name of the node. Can be compared with NodeId(). */
23796
54832
  const char *NodeName () const { return NodeId (); }
 
54833
  /** Get the number of sons. */
23797
54834
  int Sons () const { return CTree::Sons (sons, 3); }
 
54835
  /** Get the n-th son.
 
54836
   *  \param n The index of the son.
 
54837
   *  \return The n-th son or NULL. */
23798
54838
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
23799
54839
  CTree *Declarator () const { return sons[2]; }
23800
54840
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
54841
  /** Replace a son.
 
54842
   *  \param old_son The son to replace.
 
54843
   *  \param new_son The new son. */
23801
54844
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23802
54845
    CTree::ReplaceSon (sons, 3, old_son, new_son);
23803
54846
  }
23804
54847
};
23805
54848
 
23806
54849
 
23807
 
#line 23808 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54850
#line 54851 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
23808
54851
} // closed Puma
 
54852
class CCExprResolve;
 
54853
class CExprResolve;
23809
54854
class WinIfExists;
23810
54855
class WinImportHandler;
23811
54856
class WinMacros;
23812
 
class CMatchSyntax;
23813
 
class ExtGnu;
 
54857
class WinAsm;
 
54858
class WinDeclSpecs;
 
54859
class WinMemberExplSpec;
 
54860
class WinTypeKeywords;
 
54861
class WinFriend;
23814
54862
class ExtAC;
23815
54863
class ExtACBuilderCoupling;
23816
54864
class ExtACSyntaxCoupling;
23817
54865
class ExtACTree;
23818
54866
class ExtACKeywords;
23819
 
class WinAsm;
23820
 
class WinDeclSpecs;
23821
 
class WinMemberExplSpec;
23822
 
class WinTypeKeywords;
 
54867
class ExtGnu;
23823
54868
class PragmaOnceUnitState;
23824
54869
class PragmaOnce;
23825
 
class CCExprResolve;
23826
 
class CExprResolve;
 
54870
class CMatchSyntax;
23827
54871
namespace Puma {
23828
54872
 
23829
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54873
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23830
54874
class CT_MembPtrDeclarator : public CT_Declarator {
23831
 
#line 23832 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54875
#line 54876 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54876
  friend class ::CCExprResolve;
 
54877
  friend class ::CExprResolve;
23832
54878
  friend class ::WinIfExists;
23833
54879
  friend class ::WinImportHandler;
23834
54880
  friend class ::WinMacros;
23835
 
  friend class ::CMatchSyntax;
23836
 
  friend class ::ExtGnu;
 
54881
  friend class ::WinAsm;
 
54882
  friend class ::WinDeclSpecs;
 
54883
  friend class ::WinMemberExplSpec;
 
54884
  friend class ::WinTypeKeywords;
 
54885
  friend class ::WinFriend;
23837
54886
  friend class ::ExtAC;
23838
54887
  friend class ::ExtACBuilderCoupling;
23839
54888
  friend class ::ExtACSyntaxCoupling;
23840
54889
  friend class ::ExtACTree;
23841
54890
  friend class ::ExtACKeywords;
23842
 
  friend class ::WinAsm;
23843
 
  friend class ::WinDeclSpecs;
23844
 
  friend class ::WinMemberExplSpec;
23845
 
  friend class ::WinTypeKeywords;
 
54891
  friend class ::ExtGnu;
23846
54892
  friend class ::PragmaOnceUnitState;
23847
54893
  friend class ::PragmaOnce;
23848
 
  friend class ::CCExprResolve;
23849
 
  friend class ::CExprResolve;
 
54894
  friend class ::CMatchSyntax;
23850
54895
 
23851
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54896
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23852
54897
 
23853
54898
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
23854
54899
 
23855
54900
public:
23856
54901
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
23857
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
 
54902
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
54903
    AddSon (sons[3], q); AddSon (sons[4], d); 
23858
54904
  }
 
54905
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23859
54906
  static const char *NodeId ();
 
54907
  /** Get the name of the node. Can be compared with NodeId(). */
23860
54908
  const char *NodeName () const { return NodeId (); }
 
54909
  /** Get the number of sons. */
23861
54910
  int Sons () const { return CTree::Sons (sons, 5); }
 
54911
  /** Get the n-th son.
 
54912
   *  \param n The index of the son.
 
54913
   *  \return The n-th son or NULL. */
23862
54914
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
23863
54915
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
23864
54916
  CTree *Declarator () const { return sons[4]; }
23865
54917
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
54918
  /** Replace a son.
 
54919
   *  \param old_son The son to replace.
 
54920
   *  \param new_son The new son. */
23866
54921
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23867
54922
    CTree::ReplaceSon (sons, 5, old_son, new_son);
23868
54923
  }
23869
54924
};
23870
54925
 
23871
54926
 
23872
 
#line 23873 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54927
#line 54928 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
23873
54928
} // closed Puma
 
54929
class CCExprResolve;
 
54930
class CExprResolve;
23874
54931
class WinIfExists;
23875
54932
class WinImportHandler;
23876
54933
class WinMacros;
23877
 
class CMatchSyntax;
23878
 
class ExtGnu;
 
54934
class WinAsm;
 
54935
class WinDeclSpecs;
 
54936
class WinMemberExplSpec;
 
54937
class WinTypeKeywords;
 
54938
class WinFriend;
23879
54939
class ExtAC;
23880
54940
class ExtACBuilderCoupling;
23881
54941
class ExtACSyntaxCoupling;
23882
54942
class ExtACTree;
23883
54943
class ExtACKeywords;
23884
 
class WinAsm;
23885
 
class WinDeclSpecs;
23886
 
class WinMemberExplSpec;
23887
 
class WinTypeKeywords;
 
54944
class ExtGnu;
23888
54945
class PragmaOnceUnitState;
23889
54946
class PragmaOnce;
23890
 
class CCExprResolve;
23891
 
class CExprResolve;
 
54947
class CMatchSyntax;
23892
54948
namespace Puma {
23893
54949
 
23894
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54950
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23895
54951
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
23896
 
#line 23897 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54952
#line 54953 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
54953
  friend class ::CCExprResolve;
 
54954
  friend class ::CExprResolve;
23897
54955
  friend class ::WinIfExists;
23898
54956
  friend class ::WinImportHandler;
23899
54957
  friend class ::WinMacros;
23900
 
  friend class ::CMatchSyntax;
23901
 
  friend class ::ExtGnu;
 
54958
  friend class ::WinAsm;
 
54959
  friend class ::WinDeclSpecs;
 
54960
  friend class ::WinMemberExplSpec;
 
54961
  friend class ::WinTypeKeywords;
 
54962
  friend class ::WinFriend;
23902
54963
  friend class ::ExtAC;
23903
54964
  friend class ::ExtACBuilderCoupling;
23904
54965
  friend class ::ExtACSyntaxCoupling;
23905
54966
  friend class ::ExtACTree;
23906
54967
  friend class ::ExtACKeywords;
23907
 
  friend class ::WinAsm;
23908
 
  friend class ::WinDeclSpecs;
23909
 
  friend class ::WinMemberExplSpec;
23910
 
  friend class ::WinTypeKeywords;
 
54968
  friend class ::ExtGnu;
23911
54969
  friend class ::PragmaOnceUnitState;
23912
54970
  friend class ::PragmaOnce;
23913
 
  friend class ::CCExprResolve;
23914
 
  friend class ::CExprResolve;
 
54971
  friend class ::CMatchSyntax;
23915
54972
 
23916
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54973
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23917
54974
 
23918
54975
  CTree *sons[3]; // declarator, colon, expr
23919
54976
 
23920
54977
public:
23921
54978
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
23922
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
 
54979
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
23923
54980
  }
 
54981
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23924
54982
  static const char *NodeId ();
 
54983
  /** Get the name of the node. Can be compared with NodeId(). */
23925
54984
  const char *NodeName () const { return NodeId (); }
 
54985
  /** Get the number of sons. */
23926
54986
  int Sons () const { return CTree::Sons (sons, 3); }
 
54987
  /** Get the n-th son.
 
54988
   *  \param n The index of the son.
 
54989
   *  \return The n-th son or NULL. */
23927
54990
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
23928
54991
  CTree *Declarator () const { return sons[0]; }
23929
54992
  CTree *Expr () const { return sons[2]; }
23930
 
  void FieldSize (CTree *s) { sons[2] = s; }
 
54993
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
23931
54994
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
54995
  /** Replace a son.
 
54996
   *  \param old_son The son to replace.
 
54997
   *  \param new_son The new son. */
23932
54998
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23933
54999
    CTree::ReplaceSon (sons, 3, old_son, new_son);
23934
55000
  }
23941
55007
/*****************************************************************************/
23942
55008
 
23943
55009
 
23944
 
#line 23945 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55010
#line 55011 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
23945
55011
} // closed Puma
 
55012
class CCExprResolve;
 
55013
class CExprResolve;
23946
55014
class WinIfExists;
23947
55015
class WinImportHandler;
23948
55016
class WinMacros;
23949
 
class CMatchSyntax;
23950
 
class ExtGnu;
 
55017
class WinAsm;
 
55018
class WinDeclSpecs;
 
55019
class WinMemberExplSpec;
 
55020
class WinTypeKeywords;
 
55021
class WinFriend;
23951
55022
class ExtAC;
23952
55023
class ExtACBuilderCoupling;
23953
55024
class ExtACSyntaxCoupling;
23954
55025
class ExtACTree;
23955
55026
class ExtACKeywords;
23956
 
class WinAsm;
23957
 
class WinDeclSpecs;
23958
 
class WinMemberExplSpec;
23959
 
class WinTypeKeywords;
 
55027
class ExtGnu;
23960
55028
class PragmaOnceUnitState;
23961
55029
class PragmaOnce;
23962
 
class CCExprResolve;
23963
 
class CExprResolve;
 
55030
class CMatchSyntax;
23964
55031
namespace Puma {
23965
55032
 
23966
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55033
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23967
55034
class CT_Statement : public CTree {
23968
 
#line 23969 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55035
#line 55036 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55036
  friend class ::CCExprResolve;
 
55037
  friend class ::CExprResolve;
23969
55038
  friend class ::WinIfExists;
23970
55039
  friend class ::WinImportHandler;
23971
55040
  friend class ::WinMacros;
23972
 
  friend class ::CMatchSyntax;
23973
 
  friend class ::ExtGnu;
 
55041
  friend class ::WinAsm;
 
55042
  friend class ::WinDeclSpecs;
 
55043
  friend class ::WinMemberExplSpec;
 
55044
  friend class ::WinTypeKeywords;
 
55045
  friend class ::WinFriend;
23974
55046
  friend class ::ExtAC;
23975
55047
  friend class ::ExtACBuilderCoupling;
23976
55048
  friend class ::ExtACSyntaxCoupling;
23977
55049
  friend class ::ExtACTree;
23978
55050
  friend class ::ExtACKeywords;
23979
 
  friend class ::WinAsm;
23980
 
  friend class ::WinDeclSpecs;
23981
 
  friend class ::WinMemberExplSpec;
23982
 
  friend class ::WinTypeKeywords;
 
55051
  friend class ::ExtGnu;
23983
55052
  friend class ::PragmaOnceUnitState;
23984
55053
  friend class ::PragmaOnce;
23985
 
  friend class ::CCExprResolve;
23986
 
  friend class ::CExprResolve;
 
55054
  friend class ::CMatchSyntax;
23987
55055
 
23988
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55056
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23989
55057
 
23990
55058
protected:
23991
55059
  CT_Statement () {}
 
55060
  virtual CT_Statement *IsStatement () { return this; }
23992
55061
};
23993
55062
 
23994
55063
 
23995
 
#line 23996 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55064
#line 55065 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
23996
55065
} // closed Puma
 
55066
class CCExprResolve;
 
55067
class CExprResolve;
23997
55068
class WinIfExists;
23998
55069
class WinImportHandler;
23999
55070
class WinMacros;
24000
 
class CMatchSyntax;
24001
 
class ExtGnu;
 
55071
class WinAsm;
 
55072
class WinDeclSpecs;
 
55073
class WinMemberExplSpec;
 
55074
class WinTypeKeywords;
 
55075
class WinFriend;
24002
55076
class ExtAC;
24003
55077
class ExtACBuilderCoupling;
24004
55078
class ExtACSyntaxCoupling;
24005
55079
class ExtACTree;
24006
55080
class ExtACKeywords;
24007
 
class WinAsm;
24008
 
class WinDeclSpecs;
24009
 
class WinMemberExplSpec;
24010
 
class WinTypeKeywords;
 
55081
class ExtGnu;
24011
55082
class PragmaOnceUnitState;
24012
55083
class PragmaOnce;
24013
 
class CCExprResolve;
24014
 
class CExprResolve;
 
55084
class CMatchSyntax;
24015
55085
namespace Puma {
24016
55086
 
24017
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55087
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24018
55088
class CT_LabelStmt : public CT_Statement {
24019
 
#line 24020 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55089
#line 55090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55090
  friend class ::CCExprResolve;
 
55091
  friend class ::CExprResolve;
24020
55092
  friend class ::WinIfExists;
24021
55093
  friend class ::WinImportHandler;
24022
55094
  friend class ::WinMacros;
24023
 
  friend class ::CMatchSyntax;
24024
 
  friend class ::ExtGnu;
 
55095
  friend class ::WinAsm;
 
55096
  friend class ::WinDeclSpecs;
 
55097
  friend class ::WinMemberExplSpec;
 
55098
  friend class ::WinTypeKeywords;
 
55099
  friend class ::WinFriend;
24025
55100
  friend class ::ExtAC;
24026
55101
  friend class ::ExtACBuilderCoupling;
24027
55102
  friend class ::ExtACSyntaxCoupling;
24028
55103
  friend class ::ExtACTree;
24029
55104
  friend class ::ExtACKeywords;
24030
 
  friend class ::WinAsm;
24031
 
  friend class ::WinDeclSpecs;
24032
 
  friend class ::WinMemberExplSpec;
24033
 
  friend class ::WinTypeKeywords;
 
55105
  friend class ::ExtGnu;
24034
55106
  friend class ::PragmaOnceUnitState;
24035
55107
  friend class ::PragmaOnce;
24036
 
  friend class ::CCExprResolve;
24037
 
  friend class ::CExprResolve;
 
55108
  friend class ::CMatchSyntax;
24038
55109
 
24039
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55110
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24040
55111
 
24041
55112
  CTree *sons[3]; // id, colon, stmt
24042
55113
 
24043
55114
public:
24044
55115
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
24045
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
 
55116
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
24046
55117
  }
 
55118
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24047
55119
  static const char *NodeId ();
 
55120
  /** Get the name of the node. Can be compared with NodeId(). */
24048
55121
  const char *NodeName () const { return NodeId (); }
 
55122
  /** Get the number of sons. */
24049
55123
  int Sons () const { return 3; }
 
55124
  /** Get the n-th son.
 
55125
   *  \param n The index of the son.
 
55126
   *  \return The n-th son or NULL. */
24050
55127
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
24051
55128
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
24052
55129
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
55130
  /** Replace a son.
 
55131
   *  \param old_son The son to replace.
 
55132
   *  \param new_son The new son. */
24053
55133
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24054
55134
    CTree::ReplaceSon (sons, 3, old_son, new_son);
24055
55135
  }
24056
55136
};
24057
55137
 
24058
55138
 
24059
 
#line 24060 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55139
#line 55140 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
24060
55140
} // closed Puma
 
55141
class CCExprResolve;
 
55142
class CExprResolve;
24061
55143
class WinIfExists;
24062
55144
class WinImportHandler;
24063
55145
class WinMacros;
24064
 
class CMatchSyntax;
24065
 
class ExtGnu;
 
55146
class WinAsm;
 
55147
class WinDeclSpecs;
 
55148
class WinMemberExplSpec;
 
55149
class WinTypeKeywords;
 
55150
class WinFriend;
24066
55151
class ExtAC;
24067
55152
class ExtACBuilderCoupling;
24068
55153
class ExtACSyntaxCoupling;
24069
55154
class ExtACTree;
24070
55155
class ExtACKeywords;
24071
 
class WinAsm;
24072
 
class WinDeclSpecs;
24073
 
class WinMemberExplSpec;
24074
 
class WinTypeKeywords;
 
55156
class ExtGnu;
24075
55157
class PragmaOnceUnitState;
24076
55158
class PragmaOnce;
24077
 
class CCExprResolve;
24078
 
class CExprResolve;
 
55159
class CMatchSyntax;
24079
55160
namespace Puma {
24080
55161
 
24081
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55162
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24082
55163
class CT_DefaultStmt : public CT_Statement {
24083
 
#line 24084 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55164
#line 55165 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55165
  friend class ::CCExprResolve;
 
55166
  friend class ::CExprResolve;
24084
55167
  friend class ::WinIfExists;
24085
55168
  friend class ::WinImportHandler;
24086
55169
  friend class ::WinMacros;
24087
 
  friend class ::CMatchSyntax;
24088
 
  friend class ::ExtGnu;
 
55170
  friend class ::WinAsm;
 
55171
  friend class ::WinDeclSpecs;
 
55172
  friend class ::WinMemberExplSpec;
 
55173
  friend class ::WinTypeKeywords;
 
55174
  friend class ::WinFriend;
24089
55175
  friend class ::ExtAC;
24090
55176
  friend class ::ExtACBuilderCoupling;
24091
55177
  friend class ::ExtACSyntaxCoupling;
24092
55178
  friend class ::ExtACTree;
24093
55179
  friend class ::ExtACKeywords;
24094
 
  friend class ::WinAsm;
24095
 
  friend class ::WinDeclSpecs;
24096
 
  friend class ::WinMemberExplSpec;
24097
 
  friend class ::WinTypeKeywords;
 
55180
  friend class ::ExtGnu;
24098
55181
  friend class ::PragmaOnceUnitState;
24099
55182
  friend class ::PragmaOnce;
24100
 
  friend class ::CCExprResolve;
24101
 
  friend class ::CExprResolve;
 
55183
  friend class ::CMatchSyntax;
24102
55184
 
24103
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55185
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24104
55186
 
24105
55187
  CTree *sons[3]; // keyword, colon, stmt
24106
55188
 
24107
55189
public:
24108
55190
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
24109
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
 
55191
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
24110
55192
  }
 
55193
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24111
55194
  static const char *NodeId ();
 
55195
  /** Get the name of the node. Can be compared with NodeId(). */
24112
55196
  const char *NodeName () const { return NodeId (); }
 
55197
  /** Get the number of sons. */
24113
55198
  int Sons () const { return 3; }
 
55199
  /** Get the n-th son.
 
55200
   *  \param n The index of the son.
 
55201
   *  \return The n-th son or NULL. */
24114
55202
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
24115
55203
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
55204
  /** Replace a son.
 
55205
   *  \param old_son The son to replace.
 
55206
   *  \param new_son The new son. */
24116
55207
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24117
55208
    CTree::ReplaceSon (sons, 3, old_son, new_son);
24118
55209
  }
24119
55210
};
24120
55211
 
24121
55212
 
24122
 
#line 24123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55213
#line 55214 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
24123
55214
} // closed Puma
 
55215
class CCExprResolve;
 
55216
class CExprResolve;
24124
55217
class WinIfExists;
24125
55218
class WinImportHandler;
24126
55219
class WinMacros;
24127
 
class CMatchSyntax;
24128
 
class ExtGnu;
 
55220
class WinAsm;
 
55221
class WinDeclSpecs;
 
55222
class WinMemberExplSpec;
 
55223
class WinTypeKeywords;
 
55224
class WinFriend;
24129
55225
class ExtAC;
24130
55226
class ExtACBuilderCoupling;
24131
55227
class ExtACSyntaxCoupling;
24132
55228
class ExtACTree;
24133
55229
class ExtACKeywords;
24134
 
class WinAsm;
24135
 
class WinDeclSpecs;
24136
 
class WinMemberExplSpec;
24137
 
class WinTypeKeywords;
 
55230
class ExtGnu;
24138
55231
class PragmaOnceUnitState;
24139
55232
class PragmaOnce;
24140
 
class CCExprResolve;
24141
 
class CExprResolve;
 
55233
class CMatchSyntax;
24142
55234
namespace Puma {
24143
55235
 
24144
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55236
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24145
55237
class CT_TryStmt : public CT_Statement {
24146
 
#line 24147 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55238
#line 55239 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55239
  friend class ::CCExprResolve;
 
55240
  friend class ::CExprResolve;
24147
55241
  friend class ::WinIfExists;
24148
55242
  friend class ::WinImportHandler;
24149
55243
  friend class ::WinMacros;
24150
 
  friend class ::CMatchSyntax;
24151
 
  friend class ::ExtGnu;
 
55244
  friend class ::WinAsm;
 
55245
  friend class ::WinDeclSpecs;
 
55246
  friend class ::WinMemberExplSpec;
 
55247
  friend class ::WinTypeKeywords;
 
55248
  friend class ::WinFriend;
24152
55249
  friend class ::ExtAC;
24153
55250
  friend class ::ExtACBuilderCoupling;
24154
55251
  friend class ::ExtACSyntaxCoupling;
24155
55252
  friend class ::ExtACTree;
24156
55253
  friend class ::ExtACKeywords;
24157
 
  friend class ::WinAsm;
24158
 
  friend class ::WinDeclSpecs;
24159
 
  friend class ::WinMemberExplSpec;
24160
 
  friend class ::WinTypeKeywords;
 
55254
  friend class ::ExtGnu;
24161
55255
  friend class ::PragmaOnceUnitState;
24162
55256
  friend class ::PragmaOnce;
24163
 
  friend class ::CCExprResolve;
24164
 
  friend class ::CExprResolve;
 
55257
  friend class ::CMatchSyntax;
24165
55258
 
24166
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55259
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24167
55260
 
24168
55261
  CTree *sons[3]; // try, stmt, handlers
24169
55262
 
24170
55263
public:
24171
55264
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
24172
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
 
55265
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
24173
55266
  }
 
55267
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24174
55268
  static const char *NodeId ();
 
55269
  /** Get the name of the node. Can be compared with NodeId(). */
24175
55270
  const char *NodeName () const { return NodeId (); }
 
55271
  /** Get the number of sons. */
24176
55272
  int Sons () const { return 3; }
 
55273
  /** Get the n-th son.
 
55274
   *  \param n The index of the son.
 
55275
   *  \return The n-th son or NULL. */
24177
55276
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
24178
55277
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
24179
55278
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
55279
  /** Replace a son.
 
55280
   *  \param old_son The son to replace.
 
55281
   *  \param new_son The new son. */
24180
55282
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24181
55283
    CTree::ReplaceSon (sons, 3, old_son, new_son);
24182
55284
  }
24183
55285
};
24184
55286
 
24185
55287
 
24186
 
#line 24187 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55288
#line 55289 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
24187
55289
} // closed Puma
 
55290
class CCExprResolve;
 
55291
class CExprResolve;
24188
55292
class WinIfExists;
24189
55293
class WinImportHandler;
24190
55294
class WinMacros;
24191
 
class CMatchSyntax;
24192
 
class ExtGnu;
 
55295
class WinAsm;
 
55296
class WinDeclSpecs;
 
55297
class WinMemberExplSpec;
 
55298
class WinTypeKeywords;
 
55299
class WinFriend;
24193
55300
class ExtAC;
24194
55301
class ExtACBuilderCoupling;
24195
55302
class ExtACSyntaxCoupling;
24196
55303
class ExtACTree;
24197
55304
class ExtACKeywords;
24198
 
class WinAsm;
24199
 
class WinDeclSpecs;
24200
 
class WinMemberExplSpec;
24201
 
class WinTypeKeywords;
 
55305
class ExtGnu;
24202
55306
class PragmaOnceUnitState;
24203
55307
class PragmaOnce;
24204
 
class CCExprResolve;
24205
 
class CExprResolve;
 
55308
class CMatchSyntax;
24206
55309
namespace Puma {
24207
55310
 
24208
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55311
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24209
55312
class CT_CaseStmt : public CT_Statement {
24210
 
#line 24211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55313
#line 55314 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55314
  friend class ::CCExprResolve;
 
55315
  friend class ::CExprResolve;
24211
55316
  friend class ::WinIfExists;
24212
55317
  friend class ::WinImportHandler;
24213
55318
  friend class ::WinMacros;
24214
 
  friend class ::CMatchSyntax;
24215
 
  friend class ::ExtGnu;
 
55319
  friend class ::WinAsm;
 
55320
  friend class ::WinDeclSpecs;
 
55321
  friend class ::WinMemberExplSpec;
 
55322
  friend class ::WinTypeKeywords;
 
55323
  friend class ::WinFriend;
24216
55324
  friend class ::ExtAC;
24217
55325
  friend class ::ExtACBuilderCoupling;
24218
55326
  friend class ::ExtACSyntaxCoupling;
24219
55327
  friend class ::ExtACTree;
24220
55328
  friend class ::ExtACKeywords;
24221
 
  friend class ::WinAsm;
24222
 
  friend class ::WinDeclSpecs;
24223
 
  friend class ::WinMemberExplSpec;
24224
 
  friend class ::WinTypeKeywords;
 
55329
  friend class ::ExtGnu;
24225
55330
  friend class ::PragmaOnceUnitState;
24226
55331
  friend class ::PragmaOnce;
24227
 
  friend class ::CCExprResolve;
24228
 
  friend class ::CExprResolve;
 
55332
  friend class ::CMatchSyntax;
24229
55333
 
24230
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55334
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24231
55335
 
24232
55336
  CTree *sons[4]; // keyword, expr, colon, stmt
24233
55337
 
24234
55338
public:
24235
55339
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
24236
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
 
55340
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
55341
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
24237
55342
  }
 
55343
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24238
55344
  static const char *NodeId ();
 
55345
  /** Get the name of the node. Can be compared with NodeId(). */
24239
55346
  const char *NodeName () const { return NodeId (); }
 
55347
  /** Get the number of sons. */
24240
55348
  int Sons () const { return 4; }
 
55349
  /** Get the n-th son.
 
55350
   *  \param n The index of the son.
 
55351
   *  \return The n-th son or NULL. */
24241
55352
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
24242
55353
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
24243
55354
  CTree *Expr () const { return sons[1]; }
 
55355
  /** Replace a son.
 
55356
   *  \param old_son The son to replace.
 
55357
   *  \param new_son The new son. */
24244
55358
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24245
55359
    CTree::ReplaceSon (sons, 4, old_son, new_son);
24246
55360
  }
24247
55361
};
24248
55362
 
24249
55363
 
24250
 
#line 24251 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55364
#line 55365 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
24251
55365
} // closed Puma
 
55366
class CCExprResolve;
 
55367
class CExprResolve;
24252
55368
class WinIfExists;
24253
55369
class WinImportHandler;
24254
55370
class WinMacros;
24255
 
class CMatchSyntax;
24256
 
class ExtGnu;
 
55371
class WinAsm;
 
55372
class WinDeclSpecs;
 
55373
class WinMemberExplSpec;
 
55374
class WinTypeKeywords;
 
55375
class WinFriend;
24257
55376
class ExtAC;
24258
55377
class ExtACBuilderCoupling;
24259
55378
class ExtACSyntaxCoupling;
24260
55379
class ExtACTree;
24261
55380
class ExtACKeywords;
24262
 
class WinAsm;
24263
 
class WinDeclSpecs;
24264
 
class WinMemberExplSpec;
24265
 
class WinTypeKeywords;
 
55381
class ExtGnu;
24266
55382
class PragmaOnceUnitState;
24267
55383
class PragmaOnce;
24268
 
class CCExprResolve;
24269
 
class CExprResolve;
 
55384
class CMatchSyntax;
24270
55385
namespace Puma {
24271
55386
 
24272
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55387
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24273
55388
class CT_ExprStmt : public CT_Statement {
24274
 
#line 24275 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55389
#line 55390 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55390
  friend class ::CCExprResolve;
 
55391
  friend class ::CExprResolve;
24275
55392
  friend class ::WinIfExists;
24276
55393
  friend class ::WinImportHandler;
24277
55394
  friend class ::WinMacros;
24278
 
  friend class ::CMatchSyntax;
24279
 
  friend class ::ExtGnu;
 
55395
  friend class ::WinAsm;
 
55396
  friend class ::WinDeclSpecs;
 
55397
  friend class ::WinMemberExplSpec;
 
55398
  friend class ::WinTypeKeywords;
 
55399
  friend class ::WinFriend;
24280
55400
  friend class ::ExtAC;
24281
55401
  friend class ::ExtACBuilderCoupling;
24282
55402
  friend class ::ExtACSyntaxCoupling;
24283
55403
  friend class ::ExtACTree;
24284
55404
  friend class ::ExtACKeywords;
24285
 
  friend class ::WinAsm;
24286
 
  friend class ::WinDeclSpecs;
24287
 
  friend class ::WinMemberExplSpec;
24288
 
  friend class ::WinTypeKeywords;
 
55405
  friend class ::ExtGnu;
24289
55406
  friend class ::PragmaOnceUnitState;
24290
55407
  friend class ::PragmaOnce;
24291
 
  friend class ::CCExprResolve;
24292
 
  friend class ::CExprResolve;
 
55408
  friend class ::CMatchSyntax;
24293
55409
 
24294
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55410
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24295
55411
 
24296
55412
  CTree *sons[2]; // expr, semi_colon
24297
55413
 
24298
55414
public:
24299
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
 
55415
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
55416
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24300
55417
  static const char *NodeId ();
 
55418
  /** Get the name of the node. Can be compared with NodeId(). */
24301
55419
  const char *NodeName () const { return NodeId (); }
 
55420
  /** Get the number of sons. */
24302
55421
  int Sons () const { return CTree::Sons (sons, 2); }
 
55422
  /** Get the n-th son.
 
55423
   *  \param n The index of the son.
 
55424
   *  \return The n-th son or NULL. */
24303
55425
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
24304
55426
  CTree *Expr () const { return sons[0]; }
 
55427
  /** Replace a son.
 
55428
   *  \param old_son The son to replace.
 
55429
   *  \param new_son The new son. */
24305
55430
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24306
55431
    CTree::ReplaceSon (sons, 2, old_son, new_son);
24307
55432
  }
24308
55433
};
24309
55434
 
24310
55435
 
24311
 
#line 24312 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55436
#line 55437 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
24312
55437
} // closed Puma
 
55438
class CCExprResolve;
 
55439
class CExprResolve;
24313
55440
class WinIfExists;
24314
55441
class WinImportHandler;
24315
55442
class WinMacros;
24316
 
class CMatchSyntax;
24317
 
class ExtGnu;
 
55443
class WinAsm;
 
55444
class WinDeclSpecs;
 
55445
class WinMemberExplSpec;
 
55446
class WinTypeKeywords;
 
55447
class WinFriend;
24318
55448
class ExtAC;
24319
55449
class ExtACBuilderCoupling;
24320
55450
class ExtACSyntaxCoupling;
24321
55451
class ExtACTree;
24322
55452
class ExtACKeywords;
24323
 
class WinAsm;
24324
 
class WinDeclSpecs;
24325
 
class WinMemberExplSpec;
24326
 
class WinTypeKeywords;
 
55453
class ExtGnu;
24327
55454
class PragmaOnceUnitState;
24328
55455
class PragmaOnce;
24329
 
class CCExprResolve;
24330
 
class CExprResolve;
 
55456
class CMatchSyntax;
24331
55457
namespace Puma {
24332
55458
 
24333
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55459
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24334
55460
class CT_DeclStmt : public CT_Statement {
24335
 
#line 24336 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55461
#line 55462 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55462
  friend class ::CCExprResolve;
 
55463
  friend class ::CExprResolve;
24336
55464
  friend class ::WinIfExists;
24337
55465
  friend class ::WinImportHandler;
24338
55466
  friend class ::WinMacros;
24339
 
  friend class ::CMatchSyntax;
24340
 
  friend class ::ExtGnu;
 
55467
  friend class ::WinAsm;
 
55468
  friend class ::WinDeclSpecs;
 
55469
  friend class ::WinMemberExplSpec;
 
55470
  friend class ::WinTypeKeywords;
 
55471
  friend class ::WinFriend;
24341
55472
  friend class ::ExtAC;
24342
55473
  friend class ::ExtACBuilderCoupling;
24343
55474
  friend class ::ExtACSyntaxCoupling;
24344
55475
  friend class ::ExtACTree;
24345
55476
  friend class ::ExtACKeywords;
24346
 
  friend class ::WinAsm;
24347
 
  friend class ::WinDeclSpecs;
24348
 
  friend class ::WinMemberExplSpec;
24349
 
  friend class ::WinTypeKeywords;
 
55477
  friend class ::ExtGnu;
24350
55478
  friend class ::PragmaOnceUnitState;
24351
55479
  friend class ::PragmaOnce;
24352
 
  friend class ::CCExprResolve;
24353
 
  friend class ::CExprResolve;
 
55480
  friend class ::CMatchSyntax;
24354
55481
 
24355
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55482
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24356
55483
 
24357
55484
  CTree *_decl;
24358
55485
 
24359
55486
public:
24360
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
 
55487
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
55488
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24361
55489
  static const char *NodeId ();
 
55490
  /** Get the name of the node. Can be compared with NodeId(). */
24362
55491
  const char *NodeName () const { return NodeId (); }
 
55492
  /** Get the number of sons. */
24363
55493
  int Sons () const { return 1; }
 
55494
  /** Get the n-th son.
 
55495
   *  \param n The index of the son.
 
55496
   *  \return The n-th son or NULL. */
24364
55497
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
55498
  /** Replace a son.
 
55499
   *  \param old_son The son to replace.
 
55500
   *  \param new_son The new son. */
24365
55501
  void ReplaceSon (CTree *old_son, CTree *new_son) 
24366
 
   { if (old_son == _decl) _decl = new_son; }
 
55502
   { CTree::ReplaceSon (_decl, old_son, new_son); }
24367
55503
};
24368
55504
 
24369
55505
 
24370
 
#line 24371 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55506
#line 55507 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
24371
55507
} // closed Puma
 
55508
class CCExprResolve;
 
55509
class CExprResolve;
24372
55510
class WinIfExists;
24373
55511
class WinImportHandler;
24374
55512
class WinMacros;
24375
 
class CMatchSyntax;
24376
 
class ExtGnu;
 
55513
class WinAsm;
 
55514
class WinDeclSpecs;
 
55515
class WinMemberExplSpec;
 
55516
class WinTypeKeywords;
 
55517
class WinFriend;
24377
55518
class ExtAC;
24378
55519
class ExtACBuilderCoupling;
24379
55520
class ExtACSyntaxCoupling;
24380
55521
class ExtACTree;
24381
55522
class ExtACKeywords;
24382
 
class WinAsm;
24383
 
class WinDeclSpecs;
24384
 
class WinMemberExplSpec;
24385
 
class WinTypeKeywords;
 
55523
class ExtGnu;
24386
55524
class PragmaOnceUnitState;
24387
55525
class PragmaOnce;
24388
 
class CCExprResolve;
24389
 
class CExprResolve;
 
55526
class CMatchSyntax;
24390
55527
namespace Puma {
24391
55528
 
24392
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55529
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24393
55530
class CT_SwitchStmt : public CT_Statement, public CSemScope {
24394
 
#line 24395 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55531
#line 55532 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55532
  friend class ::CCExprResolve;
 
55533
  friend class ::CExprResolve;
24395
55534
  friend class ::WinIfExists;
24396
55535
  friend class ::WinImportHandler;
24397
55536
  friend class ::WinMacros;
24398
 
  friend class ::CMatchSyntax;
24399
 
  friend class ::ExtGnu;
 
55537
  friend class ::WinAsm;
 
55538
  friend class ::WinDeclSpecs;
 
55539
  friend class ::WinMemberExplSpec;
 
55540
  friend class ::WinTypeKeywords;
 
55541
  friend class ::WinFriend;
24400
55542
  friend class ::ExtAC;
24401
55543
  friend class ::ExtACBuilderCoupling;
24402
55544
  friend class ::ExtACSyntaxCoupling;
24403
55545
  friend class ::ExtACTree;
24404
55546
  friend class ::ExtACKeywords;
24405
 
  friend class ::WinAsm;
24406
 
  friend class ::WinDeclSpecs;
24407
 
  friend class ::WinMemberExplSpec;
24408
 
  friend class ::WinTypeKeywords;
 
55547
  friend class ::ExtGnu;
24409
55548
  friend class ::PragmaOnceUnitState;
24410
55549
  friend class ::PragmaOnce;
24411
 
  friend class ::CCExprResolve;
24412
 
  friend class ::CExprResolve;
 
55550
  friend class ::CMatchSyntax;
24413
55551
 
24414
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55552
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24415
55553
 
24416
55554
  CTree *sons[5]; // keyword, open, cond, close, stmt
24417
55555
 
24418
55556
public:
24419
55557
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
24420
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
55558
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
55559
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
24421
55560
  }
 
55561
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24422
55562
  static const char *NodeId ();
 
55563
  /** Get the name of the node. Can be compared with NodeId(). */
24423
55564
  const char *NodeName () const { return NodeId (); }
 
55565
  /** Get the number of sons. */
24424
55566
  int Sons () const { return 5; }
 
55567
  /** Get the n-th son.
 
55568
   *  \param n The index of the son.
 
55569
   *  \return The n-th son or NULL. */
24425
55570
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
24426
55571
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
24427
55572
  CTree *Condition () const { return sons[2]; }
 
55573
  /** Replace a son.
 
55574
   *  \param old_son The son to replace.
 
55575
   *  \param new_son The new son. */
24428
55576
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24429
55577
    CTree::ReplaceSon (sons, 5, old_son, new_son);
24430
55578
  }
 
55579
  CSemScope *SemScope () const { return (CSemScope*)this; }
24431
55580
};
24432
55581
 
24433
55582
 
24434
 
#line 24435 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55583
#line 55584 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
24435
55584
} // closed Puma
 
55585
class CCExprResolve;
 
55586
class CExprResolve;
24436
55587
class WinIfExists;
24437
55588
class WinImportHandler;
24438
55589
class WinMacros;
24439
 
class CMatchSyntax;
24440
 
class ExtGnu;
 
55590
class WinAsm;
 
55591
class WinDeclSpecs;
 
55592
class WinMemberExplSpec;
 
55593
class WinTypeKeywords;
 
55594
class WinFriend;
24441
55595
class ExtAC;
24442
55596
class ExtACBuilderCoupling;
24443
55597
class ExtACSyntaxCoupling;
24444
55598
class ExtACTree;
24445
55599
class ExtACKeywords;
24446
 
class WinAsm;
24447
 
class WinDeclSpecs;
24448
 
class WinMemberExplSpec;
24449
 
class WinTypeKeywords;
 
55600
class ExtGnu;
24450
55601
class PragmaOnceUnitState;
24451
55602
class PragmaOnce;
24452
 
class CCExprResolve;
24453
 
class CExprResolve;
 
55603
class CMatchSyntax;
24454
55604
namespace Puma {
24455
55605
 
24456
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55606
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24457
55607
class CT_IfStmt : public CT_Statement, public CSemScope {
24458
 
#line 24459 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55608
#line 55609 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55609
  friend class ::CCExprResolve;
 
55610
  friend class ::CExprResolve;
24459
55611
  friend class ::WinIfExists;
24460
55612
  friend class ::WinImportHandler;
24461
55613
  friend class ::WinMacros;
24462
 
  friend class ::CMatchSyntax;
24463
 
  friend class ::ExtGnu;
 
55614
  friend class ::WinAsm;
 
55615
  friend class ::WinDeclSpecs;
 
55616
  friend class ::WinMemberExplSpec;
 
55617
  friend class ::WinTypeKeywords;
 
55618
  friend class ::WinFriend;
24464
55619
  friend class ::ExtAC;
24465
55620
  friend class ::ExtACBuilderCoupling;
24466
55621
  friend class ::ExtACSyntaxCoupling;
24467
55622
  friend class ::ExtACTree;
24468
55623
  friend class ::ExtACKeywords;
24469
 
  friend class ::WinAsm;
24470
 
  friend class ::WinDeclSpecs;
24471
 
  friend class ::WinMemberExplSpec;
24472
 
  friend class ::WinTypeKeywords;
 
55624
  friend class ::ExtGnu;
24473
55625
  friend class ::PragmaOnceUnitState;
24474
55626
  friend class ::PragmaOnce;
24475
 
  friend class ::CCExprResolve;
24476
 
  friend class ::CExprResolve;
 
55627
  friend class ::CMatchSyntax;
24477
55628
 
24478
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55629
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24479
55630
 
24480
55631
  CTree *sons[5]; // keyword, open, cond, close, stmt
24481
55632
 
24482
55633
public:
24483
55634
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
24484
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
55635
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
55636
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
24485
55637
  }
 
55638
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24486
55639
  static const char *NodeId ();
 
55640
  /** Get the name of the node. Can be compared with NodeId(). */
24487
55641
  const char *NodeName () const { return NodeId (); }
 
55642
  /** Get the number of sons. */
24488
55643
  int Sons () const { return 5; }
 
55644
  /** Get the n-th son.
 
55645
   *  \param n The index of the son.
 
55646
   *  \return The n-th son or NULL. */
24489
55647
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
24490
55648
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
24491
55649
  CTree *Condition () const { return sons[2]; }
 
55650
  /** Replace a son.
 
55651
   *  \param old_son The son to replace.
 
55652
   *  \param new_son The new son. */
24492
55653
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24493
55654
    CTree::ReplaceSon (sons, 5, old_son, new_son);
24494
55655
  }
 
55656
  CSemScope *SemScope () const { return (CSemScope*)this; }
24495
55657
};
24496
55658
 
24497
55659
 
24498
 
#line 24499 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55660
#line 55661 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
24499
55661
} // closed Puma
 
55662
class CCExprResolve;
 
55663
class CExprResolve;
24500
55664
class WinIfExists;
24501
55665
class WinImportHandler;
24502
55666
class WinMacros;
24503
 
class CMatchSyntax;
24504
 
class ExtGnu;
 
55667
class WinAsm;
 
55668
class WinDeclSpecs;
 
55669
class WinMemberExplSpec;
 
55670
class WinTypeKeywords;
 
55671
class WinFriend;
24505
55672
class ExtAC;
24506
55673
class ExtACBuilderCoupling;
24507
55674
class ExtACSyntaxCoupling;
24508
55675
class ExtACTree;
24509
55676
class ExtACKeywords;
24510
 
class WinAsm;
24511
 
class WinDeclSpecs;
24512
 
class WinMemberExplSpec;
24513
 
class WinTypeKeywords;
 
55677
class ExtGnu;
24514
55678
class PragmaOnceUnitState;
24515
55679
class PragmaOnce;
24516
 
class CCExprResolve;
24517
 
class CExprResolve;
 
55680
class CMatchSyntax;
24518
55681
namespace Puma {
24519
55682
 
24520
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55683
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24521
55684
class CT_IfElseStmt : public CT_Statement, public CSemScope {
24522
 
#line 24523 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55685
#line 55686 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55686
  friend class ::CCExprResolve;
 
55687
  friend class ::CExprResolve;
24523
55688
  friend class ::WinIfExists;
24524
55689
  friend class ::WinImportHandler;
24525
55690
  friend class ::WinMacros;
24526
 
  friend class ::CMatchSyntax;
24527
 
  friend class ::ExtGnu;
 
55691
  friend class ::WinAsm;
 
55692
  friend class ::WinDeclSpecs;
 
55693
  friend class ::WinMemberExplSpec;
 
55694
  friend class ::WinTypeKeywords;
 
55695
  friend class ::WinFriend;
24528
55696
  friend class ::ExtAC;
24529
55697
  friend class ::ExtACBuilderCoupling;
24530
55698
  friend class ::ExtACSyntaxCoupling;
24531
55699
  friend class ::ExtACTree;
24532
55700
  friend class ::ExtACKeywords;
24533
 
  friend class ::WinAsm;
24534
 
  friend class ::WinDeclSpecs;
24535
 
  friend class ::WinMemberExplSpec;
24536
 
  friend class ::WinTypeKeywords;
 
55701
  friend class ::ExtGnu;
24537
55702
  friend class ::PragmaOnceUnitState;
24538
55703
  friend class ::PragmaOnce;
24539
 
  friend class ::CCExprResolve;
24540
 
  friend class ::CExprResolve;
 
55704
  friend class ::CMatchSyntax;
24541
55705
 
24542
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55706
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24543
55707
 
24544
55708
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
24545
55709
 
24546
55710
public:
24547
55711
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
24548
55712
                 CTree *is, CTree *e, CTree *es) {
24549
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
24550
 
    sons[5] = e; sons[6] = es; 
 
55713
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
55714
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
55715
    AddSon (sons[6], es); 
24551
55716
  }
 
55717
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24552
55718
  static const char *NodeId ();
 
55719
  /** Get the name of the node. Can be compared with NodeId(). */
24553
55720
  const char *NodeName () const { return NodeId (); }
 
55721
  /** Get the number of sons. */
24554
55722
  int Sons () const { return 7; }
 
55723
  /** Get the n-th son.
 
55724
   *  \param n The index of the son.
 
55725
   *  \return The n-th son or NULL. */
24555
55726
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
24556
55727
  CTree *Condition () const { return sons[2]; }
24557
55728
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
24558
55729
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
55730
  /** Replace a son.
 
55731
   *  \param old_son The son to replace.
 
55732
   *  \param new_son The new son. */
24559
55733
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24560
55734
    CTree::ReplaceSon (sons, 7, old_son, new_son);
24561
55735
  }
 
55736
  CSemScope *SemScope () const { return (CSemScope*)this; }
24562
55737
};
24563
55738
 
24564
55739
 
24565
 
#line 24566 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55740
#line 55741 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
24566
55741
} // closed Puma
 
55742
class CCExprResolve;
 
55743
class CExprResolve;
24567
55744
class WinIfExists;
24568
55745
class WinImportHandler;
24569
55746
class WinMacros;
24570
 
class CMatchSyntax;
24571
 
class ExtGnu;
 
55747
class WinAsm;
 
55748
class WinDeclSpecs;
 
55749
class WinMemberExplSpec;
 
55750
class WinTypeKeywords;
 
55751
class WinFriend;
24572
55752
class ExtAC;
24573
55753
class ExtACBuilderCoupling;
24574
55754
class ExtACSyntaxCoupling;
24575
55755
class ExtACTree;
24576
55756
class ExtACKeywords;
24577
 
class WinAsm;
24578
 
class WinDeclSpecs;
24579
 
class WinMemberExplSpec;
24580
 
class WinTypeKeywords;
 
55757
class ExtGnu;
24581
55758
class PragmaOnceUnitState;
24582
55759
class PragmaOnce;
24583
 
class CCExprResolve;
24584
 
class CExprResolve;
 
55760
class CMatchSyntax;
24585
55761
namespace Puma {
24586
55762
 
24587
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55763
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24588
55764
class CT_BreakStmt : public CT_Statement {
24589
 
#line 24590 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55765
#line 55766 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55766
  friend class ::CCExprResolve;
 
55767
  friend class ::CExprResolve;
24590
55768
  friend class ::WinIfExists;
24591
55769
  friend class ::WinImportHandler;
24592
55770
  friend class ::WinMacros;
24593
 
  friend class ::CMatchSyntax;
24594
 
  friend class ::ExtGnu;
 
55771
  friend class ::WinAsm;
 
55772
  friend class ::WinDeclSpecs;
 
55773
  friend class ::WinMemberExplSpec;
 
55774
  friend class ::WinTypeKeywords;
 
55775
  friend class ::WinFriend;
24595
55776
  friend class ::ExtAC;
24596
55777
  friend class ::ExtACBuilderCoupling;
24597
55778
  friend class ::ExtACSyntaxCoupling;
24598
55779
  friend class ::ExtACTree;
24599
55780
  friend class ::ExtACKeywords;
24600
 
  friend class ::WinAsm;
24601
 
  friend class ::WinDeclSpecs;
24602
 
  friend class ::WinMemberExplSpec;
24603
 
  friend class ::WinTypeKeywords;
 
55781
  friend class ::ExtGnu;
24604
55782
  friend class ::PragmaOnceUnitState;
24605
55783
  friend class ::PragmaOnce;
24606
 
  friend class ::CCExprResolve;
24607
 
  friend class ::CExprResolve;
 
55784
  friend class ::CMatchSyntax;
24608
55785
 
24609
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55786
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24610
55787
 
24611
55788
  CTree *sons[2]; // key, semi_colon
24612
55789
 
24613
55790
public:
24614
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
55791
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
55792
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24615
55793
  static const char *NodeId ();
 
55794
  /** Get the name of the node. Can be compared with NodeId(). */
24616
55795
  const char *NodeName () const { return NodeId (); }
 
55796
  /** Get the number of sons. */
24617
55797
  int Sons () const { return 2; }
 
55798
  /** Get the n-th son.
 
55799
   *  \param n The index of the son.
 
55800
   *  \return The n-th son or NULL. */
24618
55801
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
55802
  /** Replace a son.
 
55803
   *  \param old_son The son to replace.
 
55804
   *  \param new_son The new son. */
24619
55805
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24620
55806
    CTree::ReplaceSon (sons, 2, old_son, new_son);
24621
55807
  }
24622
55808
};
24623
55809
 
24624
55810
 
24625
 
#line 24626 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55811
#line 55812 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
24626
55812
} // closed Puma
 
55813
class CCExprResolve;
 
55814
class CExprResolve;
24627
55815
class WinIfExists;
24628
55816
class WinImportHandler;
24629
55817
class WinMacros;
24630
 
class CMatchSyntax;
24631
 
class ExtGnu;
 
55818
class WinAsm;
 
55819
class WinDeclSpecs;
 
55820
class WinMemberExplSpec;
 
55821
class WinTypeKeywords;
 
55822
class WinFriend;
24632
55823
class ExtAC;
24633
55824
class ExtACBuilderCoupling;
24634
55825
class ExtACSyntaxCoupling;
24635
55826
class ExtACTree;
24636
55827
class ExtACKeywords;
24637
 
class WinAsm;
24638
 
class WinDeclSpecs;
24639
 
class WinMemberExplSpec;
24640
 
class WinTypeKeywords;
 
55828
class ExtGnu;
24641
55829
class PragmaOnceUnitState;
24642
55830
class PragmaOnce;
24643
 
class CCExprResolve;
24644
 
class CExprResolve;
 
55831
class CMatchSyntax;
24645
55832
namespace Puma {
24646
55833
 
24647
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55834
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24648
55835
class CT_ContinueStmt : public CT_Statement {
24649
 
#line 24650 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55836
#line 55837 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55837
  friend class ::CCExprResolve;
 
55838
  friend class ::CExprResolve;
24650
55839
  friend class ::WinIfExists;
24651
55840
  friend class ::WinImportHandler;
24652
55841
  friend class ::WinMacros;
24653
 
  friend class ::CMatchSyntax;
24654
 
  friend class ::ExtGnu;
 
55842
  friend class ::WinAsm;
 
55843
  friend class ::WinDeclSpecs;
 
55844
  friend class ::WinMemberExplSpec;
 
55845
  friend class ::WinTypeKeywords;
 
55846
  friend class ::WinFriend;
24655
55847
  friend class ::ExtAC;
24656
55848
  friend class ::ExtACBuilderCoupling;
24657
55849
  friend class ::ExtACSyntaxCoupling;
24658
55850
  friend class ::ExtACTree;
24659
55851
  friend class ::ExtACKeywords;
24660
 
  friend class ::WinAsm;
24661
 
  friend class ::WinDeclSpecs;
24662
 
  friend class ::WinMemberExplSpec;
24663
 
  friend class ::WinTypeKeywords;
 
55852
  friend class ::ExtGnu;
24664
55853
  friend class ::PragmaOnceUnitState;
24665
55854
  friend class ::PragmaOnce;
24666
 
  friend class ::CCExprResolve;
24667
 
  friend class ::CExprResolve;
 
55855
  friend class ::CMatchSyntax;
24668
55856
 
24669
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55857
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24670
55858
 
24671
55859
  CTree *sons[2]; // key, semi_colon
24672
55860
 
24673
55861
public:
24674
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
55862
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
55863
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24675
55864
  static const char *NodeId ();
 
55865
  /** Get the name of the node. Can be compared with NodeId(). */
24676
55866
  const char *NodeName () const { return NodeId (); }
 
55867
  /** Get the number of sons. */
24677
55868
  int Sons () const { return 2; }
 
55869
  /** Get the n-th son.
 
55870
   *  \param n The index of the son.
 
55871
   *  \return The n-th son or NULL. */
24678
55872
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
55873
  /** Replace a son.
 
55874
   *  \param old_son The son to replace.
 
55875
   *  \param new_son The new son. */
24679
55876
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24680
55877
    CTree::ReplaceSon (sons, 2, old_son, new_son);
24681
55878
  }
24682
55879
};
24683
55880
 
24684
55881
 
24685
 
#line 24686 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55882
#line 55883 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
24686
55883
} // closed Puma
 
55884
class CCExprResolve;
 
55885
class CExprResolve;
24687
55886
class WinIfExists;
24688
55887
class WinImportHandler;
24689
55888
class WinMacros;
24690
 
class CMatchSyntax;
24691
 
class ExtGnu;
 
55889
class WinAsm;
 
55890
class WinDeclSpecs;
 
55891
class WinMemberExplSpec;
 
55892
class WinTypeKeywords;
 
55893
class WinFriend;
24692
55894
class ExtAC;
24693
55895
class ExtACBuilderCoupling;
24694
55896
class ExtACSyntaxCoupling;
24695
55897
class ExtACTree;
24696
55898
class ExtACKeywords;
24697
 
class WinAsm;
24698
 
class WinDeclSpecs;
24699
 
class WinMemberExplSpec;
24700
 
class WinTypeKeywords;
 
55899
class ExtGnu;
24701
55900
class PragmaOnceUnitState;
24702
55901
class PragmaOnce;
24703
 
class CCExprResolve;
24704
 
class CExprResolve;
 
55902
class CMatchSyntax;
24705
55903
namespace Puma {
24706
55904
 
24707
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55905
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24708
55906
class CT_GotoStmt : public CT_Statement {
24709
 
#line 24710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55907
#line 55908 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55908
  friend class ::CCExprResolve;
 
55909
  friend class ::CExprResolve;
24710
55910
  friend class ::WinIfExists;
24711
55911
  friend class ::WinImportHandler;
24712
55912
  friend class ::WinMacros;
24713
 
  friend class ::CMatchSyntax;
24714
 
  friend class ::ExtGnu;
 
55913
  friend class ::WinAsm;
 
55914
  friend class ::WinDeclSpecs;
 
55915
  friend class ::WinMemberExplSpec;
 
55916
  friend class ::WinTypeKeywords;
 
55917
  friend class ::WinFriend;
24715
55918
  friend class ::ExtAC;
24716
55919
  friend class ::ExtACBuilderCoupling;
24717
55920
  friend class ::ExtACSyntaxCoupling;
24718
55921
  friend class ::ExtACTree;
24719
55922
  friend class ::ExtACKeywords;
24720
 
  friend class ::WinAsm;
24721
 
  friend class ::WinDeclSpecs;
24722
 
  friend class ::WinMemberExplSpec;
24723
 
  friend class ::WinTypeKeywords;
 
55923
  friend class ::ExtGnu;
24724
55924
  friend class ::PragmaOnceUnitState;
24725
55925
  friend class ::PragmaOnce;
24726
 
  friend class ::CCExprResolve;
24727
 
  friend class ::CExprResolve;
 
55926
  friend class ::CMatchSyntax;
24728
55927
 
24729
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55928
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24730
55929
 
24731
55930
  CTree *sons[3]; // key, label, semi_colon
24732
55931
 
24733
55932
public:
24734
55933
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
24735
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
 
55934
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
24736
55935
  }
 
55936
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24737
55937
  static const char *NodeId ();
 
55938
  /** Get the name of the node. Can be compared with NodeId(). */
24738
55939
  const char *NodeName () const { return NodeId (); }
 
55940
  /** Get the number of sons. */
24739
55941
  int Sons () const { return 3; }
 
55942
  /** Get the n-th son.
 
55943
   *  \param n The index of the son.
 
55944
   *  \return The n-th son or NULL. */
24740
55945
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
24741
55946
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
55947
  /** Replace a son.
 
55948
   *  \param old_son The son to replace.
 
55949
   *  \param new_son The new son. */
24742
55950
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24743
55951
    CTree::ReplaceSon (sons, 3, old_son, new_son);
24744
55952
  }
24745
55953
};
24746
55954
 
24747
55955
 
24748
 
#line 24749 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55956
#line 55957 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
24749
55957
} // closed Puma
 
55958
class CCExprResolve;
 
55959
class CExprResolve;
24750
55960
class WinIfExists;
24751
55961
class WinImportHandler;
24752
55962
class WinMacros;
24753
 
class CMatchSyntax;
24754
 
class ExtGnu;
 
55963
class WinAsm;
 
55964
class WinDeclSpecs;
 
55965
class WinMemberExplSpec;
 
55966
class WinTypeKeywords;
 
55967
class WinFriend;
24755
55968
class ExtAC;
24756
55969
class ExtACBuilderCoupling;
24757
55970
class ExtACSyntaxCoupling;
24758
55971
class ExtACTree;
24759
55972
class ExtACKeywords;
24760
 
class WinAsm;
24761
 
class WinDeclSpecs;
24762
 
class WinMemberExplSpec;
24763
 
class WinTypeKeywords;
 
55973
class ExtGnu;
24764
55974
class PragmaOnceUnitState;
24765
55975
class PragmaOnce;
24766
 
class CCExprResolve;
24767
 
class CExprResolve;
 
55976
class CMatchSyntax;
24768
55977
namespace Puma {
24769
55978
 
24770
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55979
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24771
55980
class CT_ReturnStmt : public CT_Statement {
24772
 
#line 24773 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55981
#line 55982 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
55982
  friend class ::CCExprResolve;
 
55983
  friend class ::CExprResolve;
24773
55984
  friend class ::WinIfExists;
24774
55985
  friend class ::WinImportHandler;
24775
55986
  friend class ::WinMacros;
24776
 
  friend class ::CMatchSyntax;
24777
 
  friend class ::ExtGnu;
 
55987
  friend class ::WinAsm;
 
55988
  friend class ::WinDeclSpecs;
 
55989
  friend class ::WinMemberExplSpec;
 
55990
  friend class ::WinTypeKeywords;
 
55991
  friend class ::WinFriend;
24778
55992
  friend class ::ExtAC;
24779
55993
  friend class ::ExtACBuilderCoupling;
24780
55994
  friend class ::ExtACSyntaxCoupling;
24781
55995
  friend class ::ExtACTree;
24782
55996
  friend class ::ExtACKeywords;
24783
 
  friend class ::WinAsm;
24784
 
  friend class ::WinDeclSpecs;
24785
 
  friend class ::WinMemberExplSpec;
24786
 
  friend class ::WinTypeKeywords;
 
55997
  friend class ::ExtGnu;
24787
55998
  friend class ::PragmaOnceUnitState;
24788
55999
  friend class ::PragmaOnce;
24789
 
  friend class ::CCExprResolve;
24790
 
  friend class ::CExprResolve;
 
56000
  friend class ::CMatchSyntax;
24791
56001
 
24792
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56002
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24793
56003
 
24794
56004
  CTree *sons[3]; // key, expr, semi_colon
24795
56005
 
24796
56006
public:
24797
56007
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
24798
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
 
56008
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
24799
56009
  }
 
56010
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24800
56011
  static const char *NodeId ();
 
56012
  /** Get the name of the node. Can be compared with NodeId(). */
24801
56013
  const char *NodeName () const { return NodeId (); }
 
56014
  /** Get the number of sons. */
24802
56015
  int Sons () const { return CTree::Sons (sons, 3); }
 
56016
  /** Get the n-th son.
 
56017
   *  \param n The index of the son.
 
56018
   *  \return The n-th son or NULL. */
24803
56019
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
24804
56020
  CTree *Expr () const { return sons[1]; }
 
56021
  /** Replace a son.
 
56022
   *  \param old_son The son to replace.
 
56023
   *  \param new_son The new son. */
24805
56024
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24806
56025
    CTree::ReplaceSon (sons, 3, old_son, new_son);
24807
56026
  }
24808
56027
};
24809
56028
 
24810
56029
 
24811
 
#line 24812 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56030
#line 56031 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
24812
56031
} // closed Puma
 
56032
class CCExprResolve;
 
56033
class CExprResolve;
24813
56034
class WinIfExists;
24814
56035
class WinImportHandler;
24815
56036
class WinMacros;
24816
 
class CMatchSyntax;
24817
 
class ExtGnu;
 
56037
class WinAsm;
 
56038
class WinDeclSpecs;
 
56039
class WinMemberExplSpec;
 
56040
class WinTypeKeywords;
 
56041
class WinFriend;
24818
56042
class ExtAC;
24819
56043
class ExtACBuilderCoupling;
24820
56044
class ExtACSyntaxCoupling;
24821
56045
class ExtACTree;
24822
56046
class ExtACKeywords;
24823
 
class WinAsm;
24824
 
class WinDeclSpecs;
24825
 
class WinMemberExplSpec;
24826
 
class WinTypeKeywords;
 
56047
class ExtGnu;
24827
56048
class PragmaOnceUnitState;
24828
56049
class PragmaOnce;
24829
 
class CCExprResolve;
24830
 
class CExprResolve;
 
56050
class CMatchSyntax;
24831
56051
namespace Puma {
24832
56052
 
24833
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56053
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24834
56054
class CT_WhileStmt : public CT_Statement, public CSemScope {
24835
 
#line 24836 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56055
#line 56056 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56056
  friend class ::CCExprResolve;
 
56057
  friend class ::CExprResolve;
24836
56058
  friend class ::WinIfExists;
24837
56059
  friend class ::WinImportHandler;
24838
56060
  friend class ::WinMacros;
24839
 
  friend class ::CMatchSyntax;
24840
 
  friend class ::ExtGnu;
 
56061
  friend class ::WinAsm;
 
56062
  friend class ::WinDeclSpecs;
 
56063
  friend class ::WinMemberExplSpec;
 
56064
  friend class ::WinTypeKeywords;
 
56065
  friend class ::WinFriend;
24841
56066
  friend class ::ExtAC;
24842
56067
  friend class ::ExtACBuilderCoupling;
24843
56068
  friend class ::ExtACSyntaxCoupling;
24844
56069
  friend class ::ExtACTree;
24845
56070
  friend class ::ExtACKeywords;
24846
 
  friend class ::WinAsm;
24847
 
  friend class ::WinDeclSpecs;
24848
 
  friend class ::WinMemberExplSpec;
24849
 
  friend class ::WinTypeKeywords;
 
56071
  friend class ::ExtGnu;
24850
56072
  friend class ::PragmaOnceUnitState;
24851
56073
  friend class ::PragmaOnce;
24852
 
  friend class ::CCExprResolve;
24853
 
  friend class ::CExprResolve;
 
56074
  friend class ::CMatchSyntax;
24854
56075
 
24855
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56076
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24856
56077
 
24857
56078
  CTree *sons[5]; // key, open, cond, close, stmt
24858
56079
 
24859
56080
public:
24860
56081
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
24861
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
56082
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
56083
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
24862
56084
  }
 
56085
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24863
56086
  static const char *NodeId ();
 
56087
  /** Get the name of the node. Can be compared with NodeId(). */
24864
56088
  const char *NodeName () const { return NodeId (); }
 
56089
  /** Get the number of sons. */
24865
56090
  int Sons () const { return 5; }
 
56091
  /** Get the n-th son.
 
56092
   *  \param n The index of the son.
 
56093
   *  \return The n-th son or NULL. */
24866
56094
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
24867
56095
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
24868
56096
  CTree *Condition () const { return sons[2]; }
 
56097
  /** Replace a son.
 
56098
   *  \param old_son The son to replace.
 
56099
   *  \param new_son The new son. */
24869
56100
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24870
56101
    CTree::ReplaceSon (sons, 5, old_son, new_son);
24871
56102
  }
 
56103
  CSemScope *SemScope () const { return (CSemScope*)this; }
24872
56104
};
24873
56105
 
24874
56106
 
24875
 
#line 24876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56107
#line 56108 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
24876
56108
} // closed Puma
 
56109
class CCExprResolve;
 
56110
class CExprResolve;
24877
56111
class WinIfExists;
24878
56112
class WinImportHandler;
24879
56113
class WinMacros;
24880
 
class CMatchSyntax;
24881
 
class ExtGnu;
 
56114
class WinAsm;
 
56115
class WinDeclSpecs;
 
56116
class WinMemberExplSpec;
 
56117
class WinTypeKeywords;
 
56118
class WinFriend;
24882
56119
class ExtAC;
24883
56120
class ExtACBuilderCoupling;
24884
56121
class ExtACSyntaxCoupling;
24885
56122
class ExtACTree;
24886
56123
class ExtACKeywords;
24887
 
class WinAsm;
24888
 
class WinDeclSpecs;
24889
 
class WinMemberExplSpec;
24890
 
class WinTypeKeywords;
 
56124
class ExtGnu;
24891
56125
class PragmaOnceUnitState;
24892
56126
class PragmaOnce;
24893
 
class CCExprResolve;
24894
 
class CExprResolve;
 
56127
class CMatchSyntax;
24895
56128
namespace Puma {
24896
56129
 
24897
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56130
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24898
56131
class CT_DoStmt : public CT_Statement {
24899
 
#line 24900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56132
#line 56133 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56133
  friend class ::CCExprResolve;
 
56134
  friend class ::CExprResolve;
24900
56135
  friend class ::WinIfExists;
24901
56136
  friend class ::WinImportHandler;
24902
56137
  friend class ::WinMacros;
24903
 
  friend class ::CMatchSyntax;
24904
 
  friend class ::ExtGnu;
 
56138
  friend class ::WinAsm;
 
56139
  friend class ::WinDeclSpecs;
 
56140
  friend class ::WinMemberExplSpec;
 
56141
  friend class ::WinTypeKeywords;
 
56142
  friend class ::WinFriend;
24905
56143
  friend class ::ExtAC;
24906
56144
  friend class ::ExtACBuilderCoupling;
24907
56145
  friend class ::ExtACSyntaxCoupling;
24908
56146
  friend class ::ExtACTree;
24909
56147
  friend class ::ExtACKeywords;
24910
 
  friend class ::WinAsm;
24911
 
  friend class ::WinDeclSpecs;
24912
 
  friend class ::WinMemberExplSpec;
24913
 
  friend class ::WinTypeKeywords;
 
56148
  friend class ::ExtGnu;
24914
56149
  friend class ::PragmaOnceUnitState;
24915
56150
  friend class ::PragmaOnce;
24916
 
  friend class ::CCExprResolve;
24917
 
  friend class ::CExprResolve;
 
56151
  friend class ::CMatchSyntax;
24918
56152
 
24919
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56153
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24920
56154
 
24921
56155
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
24922
56156
 
24923
56157
public:
24924
56158
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
24925
56159
             CTree *c, CTree *sc) {
24926
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
24927
 
    sons[5] = c; sons[6] = sc; 
 
56160
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
56161
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
56162
    AddSon (sons[6], sc); 
24928
56163
  }
 
56164
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24929
56165
  static const char *NodeId ();
 
56166
  /** Get the name of the node. Can be compared with NodeId(). */
24930
56167
  const char *NodeName () const { return NodeId (); }
 
56168
  /** Get the number of sons. */
24931
56169
  int Sons () const { return 7; }
 
56170
  /** Get the n-th son.
 
56171
   *  \param n The index of the son.
 
56172
   *  \return The n-th son or NULL. */
24932
56173
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
24933
56174
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
24934
56175
  CTree *Expr () const { return sons[4]; }
 
56176
  /** Replace a son.
 
56177
   *  \param old_son The son to replace.
 
56178
   *  \param new_son The new son. */
24935
56179
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24936
56180
    CTree::ReplaceSon (sons, 7, old_son, new_son);
24937
56181
  }
24938
56182
};
24939
56183
 
24940
56184
 
24941
 
#line 24942 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56185
#line 56186 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
24942
56186
} // closed Puma
 
56187
class CCExprResolve;
 
56188
class CExprResolve;
24943
56189
class WinIfExists;
24944
56190
class WinImportHandler;
24945
56191
class WinMacros;
24946
 
class CMatchSyntax;
24947
 
class ExtGnu;
 
56192
class WinAsm;
 
56193
class WinDeclSpecs;
 
56194
class WinMemberExplSpec;
 
56195
class WinTypeKeywords;
 
56196
class WinFriend;
24948
56197
class ExtAC;
24949
56198
class ExtACBuilderCoupling;
24950
56199
class ExtACSyntaxCoupling;
24951
56200
class ExtACTree;
24952
56201
class ExtACKeywords;
24953
 
class WinAsm;
24954
 
class WinDeclSpecs;
24955
 
class WinMemberExplSpec;
24956
 
class WinTypeKeywords;
 
56202
class ExtGnu;
24957
56203
class PragmaOnceUnitState;
24958
56204
class PragmaOnce;
24959
 
class CCExprResolve;
24960
 
class CExprResolve;
 
56205
class CMatchSyntax;
24961
56206
namespace Puma {
24962
56207
 
24963
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56208
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24964
56209
class CT_ForStmt : public CT_Statement, public CSemScope {
24965
 
#line 24966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56210
#line 56211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56211
  friend class ::CCExprResolve;
 
56212
  friend class ::CExprResolve;
24966
56213
  friend class ::WinIfExists;
24967
56214
  friend class ::WinImportHandler;
24968
56215
  friend class ::WinMacros;
24969
 
  friend class ::CMatchSyntax;
24970
 
  friend class ::ExtGnu;
 
56216
  friend class ::WinAsm;
 
56217
  friend class ::WinDeclSpecs;
 
56218
  friend class ::WinMemberExplSpec;
 
56219
  friend class ::WinTypeKeywords;
 
56220
  friend class ::WinFriend;
24971
56221
  friend class ::ExtAC;
24972
56222
  friend class ::ExtACBuilderCoupling;
24973
56223
  friend class ::ExtACSyntaxCoupling;
24974
56224
  friend class ::ExtACTree;
24975
56225
  friend class ::ExtACKeywords;
24976
 
  friend class ::WinAsm;
24977
 
  friend class ::WinDeclSpecs;
24978
 
  friend class ::WinMemberExplSpec;
24979
 
  friend class ::WinTypeKeywords;
 
56226
  friend class ::ExtGnu;
24980
56227
  friend class ::PragmaOnceUnitState;
24981
56228
  friend class ::PragmaOnce;
24982
 
  friend class ::CCExprResolve;
24983
 
  friend class ::CExprResolve;
 
56229
  friend class ::CMatchSyntax;
24984
56230
 
24985
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56231
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24986
56232
 
24987
56233
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
24988
56234
 
24989
56235
public:
24990
56236
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
24991
56237
              CTree *e, CTree *c, CTree *stmt) {
24992
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
24993
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
 
56238
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
56239
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
56240
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
24994
56241
  }
 
56242
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24995
56243
  static const char *NodeId ();
 
56244
  /** Get the name of the node. Can be compared with NodeId(). */
24996
56245
  const char *NodeName () const { return NodeId (); }
 
56246
  /** Get the number of sons. */
24997
56247
  int Sons () const { return CTree::Sons (sons, 8); }
 
56248
  /** Get the n-th son.
 
56249
   *  \param n The index of the son.
 
56250
   *  \return The n-th son or NULL. */
24998
56251
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
24999
56252
  CTree *InitStmt () const { return sons[2]; }
25000
56253
  CTree *Condition () const { return sons[3]; }
25001
56254
  CTree *Expr () const { return sons[5]; }
25002
56255
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
56256
  /** Replace a son.
 
56257
   *  \param old_son The son to replace.
 
56258
   *  \param new_son The new son. */
25003
56259
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25004
56260
    CTree::ReplaceSon (sons, 8, old_son, new_son);
25005
56261
  }
 
56262
  CSemScope *SemScope () const { return (CSemScope*)this; }
25006
56263
};
25007
56264
 
25008
56265
 
25009
 
#line 25010 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56266
#line 56267 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
25010
56267
} // closed Puma
 
56268
class CCExprResolve;
 
56269
class CExprResolve;
25011
56270
class WinIfExists;
25012
56271
class WinImportHandler;
25013
56272
class WinMacros;
25014
 
class CMatchSyntax;
25015
 
class ExtGnu;
 
56273
class WinAsm;
 
56274
class WinDeclSpecs;
 
56275
class WinMemberExplSpec;
 
56276
class WinTypeKeywords;
 
56277
class WinFriend;
25016
56278
class ExtAC;
25017
56279
class ExtACBuilderCoupling;
25018
56280
class ExtACSyntaxCoupling;
25019
56281
class ExtACTree;
25020
56282
class ExtACKeywords;
25021
 
class WinAsm;
25022
 
class WinDeclSpecs;
25023
 
class WinMemberExplSpec;
25024
 
class WinTypeKeywords;
 
56283
class ExtGnu;
25025
56284
class PragmaOnceUnitState;
25026
56285
class PragmaOnce;
25027
 
class CCExprResolve;
25028
 
class CExprResolve;
 
56286
class CMatchSyntax;
25029
56287
namespace Puma {
25030
56288
 
25031
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56289
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25032
56290
class CT_Condition : public CT_Decl, public CSemObject {
25033
 
#line 25034 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56291
#line 56292 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56292
  friend class ::CCExprResolve;
 
56293
  friend class ::CExprResolve;
25034
56294
  friend class ::WinIfExists;
25035
56295
  friend class ::WinImportHandler;
25036
56296
  friend class ::WinMacros;
25037
 
  friend class ::CMatchSyntax;
25038
 
  friend class ::ExtGnu;
 
56297
  friend class ::WinAsm;
 
56298
  friend class ::WinDeclSpecs;
 
56299
  friend class ::WinMemberExplSpec;
 
56300
  friend class ::WinTypeKeywords;
 
56301
  friend class ::WinFriend;
25039
56302
  friend class ::ExtAC;
25040
56303
  friend class ::ExtACBuilderCoupling;
25041
56304
  friend class ::ExtACSyntaxCoupling;
25042
56305
  friend class ::ExtACTree;
25043
56306
  friend class ::ExtACKeywords;
25044
 
  friend class ::WinAsm;
25045
 
  friend class ::WinDeclSpecs;
25046
 
  friend class ::WinMemberExplSpec;
25047
 
  friend class ::WinTypeKeywords;
 
56307
  friend class ::ExtGnu;
25048
56308
  friend class ::PragmaOnceUnitState;
25049
56309
  friend class ::PragmaOnce;
25050
 
  friend class ::CCExprResolve;
25051
 
  friend class ::CExprResolve;
 
56310
  friend class ::CMatchSyntax;
25052
56311
 
25053
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56312
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25054
56313
 
25055
56314
  CTree *sons[3]; // declspecs, declarator, init
25056
56315
 
25057
56316
public:
25058
56317
  CT_Condition (CTree *dsl, CTree *d) {
25059
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
 
56318
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
25060
56319
  }
 
56320
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25061
56321
  static const char *NodeId ();
 
56322
  /** Get the name of the node. Can be compared with NodeId(). */
25062
56323
  const char *NodeName () const { return NodeId (); }
 
56324
  /** Get the number of sons. */
25063
56325
  int Sons () const { return CTree::Sons (sons, 3); }
 
56326
  /** Get the n-th son.
 
56327
   *  \param n The index of the son.
 
56328
   *  \return The n-th son or NULL. */
25064
56329
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
25065
56330
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
25066
56331
  CTree *Declarator () const { return sons[1]; }
25067
56332
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
25068
56333
  CSemObject *SemObject () const { return (CSemObject*)this; }
25069
 
  void Initializer (CTree *i) { sons[2] = i; }
 
56334
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
56335
  /** Replace a son.
 
56336
   *  \param old_son The son to replace.
 
56337
   *  \param new_son The new son. */
25070
56338
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25071
56339
    CTree::ReplaceSon (sons, 3, old_son, new_son);
25072
56340
  }
25079
56347
/*****************************************************************************/
25080
56348
 
25081
56349
 
25082
 
#line 25083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56350
#line 56351 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
25083
56351
} // closed Puma
 
56352
class CCExprResolve;
 
56353
class CExprResolve;
25084
56354
class WinIfExists;
25085
56355
class WinImportHandler;
25086
56356
class WinMacros;
25087
 
class CMatchSyntax;
25088
 
class ExtGnu;
 
56357
class WinAsm;
 
56358
class WinDeclSpecs;
 
56359
class WinMemberExplSpec;
 
56360
class WinTypeKeywords;
 
56361
class WinFriend;
25089
56362
class ExtAC;
25090
56363
class ExtACBuilderCoupling;
25091
56364
class ExtACSyntaxCoupling;
25092
56365
class ExtACTree;
25093
56366
class ExtACKeywords;
25094
 
class WinAsm;
25095
 
class WinDeclSpecs;
25096
 
class WinMemberExplSpec;
25097
 
class WinTypeKeywords;
 
56367
class ExtGnu;
25098
56368
class PragmaOnceUnitState;
25099
56369
class PragmaOnce;
25100
 
class CCExprResolve;
25101
 
class CExprResolve;
25102
 
namespace Puma {
25103
 
 
25104
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56370
class CMatchSyntax;
 
56371
namespace Puma {
 
56372
 
 
56373
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56374
 
 
56375
#line 56376 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56376
} // closed Puma
 
56377
 
 
56378
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
56379
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
56380
#include "ExtACTree.ah"
 
56381
#endif
 
56382
namespace Puma {
 
56383
 
 
56384
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25105
56385
class CT_ClassDef : public CT_Decl, public CSemObject {
25106
 
#line 25107 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56386
#line 56387 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56387
  friend class ::CCExprResolve;
 
56388
  friend class ::CExprResolve;
25107
56389
  friend class ::WinIfExists;
25108
56390
  friend class ::WinImportHandler;
25109
56391
  friend class ::WinMacros;
25110
 
  friend class ::CMatchSyntax;
25111
 
  friend class ::ExtGnu;
 
56392
  friend class ::WinAsm;
 
56393
  friend class ::WinDeclSpecs;
 
56394
  friend class ::WinMemberExplSpec;
 
56395
  friend class ::WinTypeKeywords;
 
56396
  friend class ::WinFriend;
25112
56397
  friend class ::ExtAC;
25113
56398
  friend class ::ExtACBuilderCoupling;
25114
56399
  friend class ::ExtACSyntaxCoupling;
25115
56400
  friend class ::ExtACTree;
25116
56401
  friend class ::ExtACKeywords;
25117
 
  friend class ::WinAsm;
25118
 
  friend class ::WinDeclSpecs;
25119
 
  friend class ::WinMemberExplSpec;
25120
 
  friend class ::WinTypeKeywords;
 
56402
  friend class ::ExtGnu;
25121
56403
  friend class ::PragmaOnceUnitState;
25122
56404
  friend class ::PragmaOnce;
25123
 
  friend class ::CCExprResolve;
25124
 
  friend class ::CExprResolve;
 
56405
  friend class ::CMatchSyntax;
25125
56406
 
25126
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56407
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25127
56408
 
25128
56409
   
25129
 
#line 25130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56410
#line 56411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
25130
56411
 
25131
56412
  struct __ac_wrapper_sons {
25132
56413
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
25141
56422
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
25142
56423
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
25143
56424
  } sons
25144
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56425
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25145
56426
 
25146
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56427
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25147
56428
; // key, name, bases, members
25148
56429
  CTree *obj_decl;
25149
56430
 
25150
56431
public:
25151
56432
  
25152
 
#line 25153 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
25153
 
 
25154
 
 
25155
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
25156
 
  typedef void Result;
25157
 
  typedef ::Puma::CT_ClassDef That;
25158
 
  typedef ::Puma::CT_ClassDef Target;
25159
 
  static const int JPID = 4;
 
56433
#line 56434 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56434
 
 
56435
 
 
56436
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
56437
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
56438
  typedef TResult Result;
 
56439
  typedef TThat   That;
 
56440
  typedef TTarget Target;
 
56441
  enum { ARGS = TArgs::ARGS };
 
56442
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
56443
  static const int JPID = 55;
25160
56444
  static const AC::JPType JPTYPE = (AC::JPType)16;
25161
56445
  struct Res {
25162
56446
    typedef void Type;
25163
56447
    typedef void ReferredType;
25164
56448
  };
25165
 
  enum { ARGS = 3 };
25166
 
  template <int I, int DUMMY = 0> struct Arg {
25167
 
    typedef void Type;
25168
 
    typedef void ReferredType;
25169
 
  };
25170
 
  template <int DUMMY> struct Arg<0, DUMMY> {
25171
 
    typedef ::Puma::CTree * Type;
25172
 
    typedef ::Puma::CTree * ReferredType;
25173
 
  };
25174
 
  template <int DUMMY> struct Arg<1, DUMMY> {
25175
 
    typedef ::Puma::CTree * Type;
25176
 
    typedef ::Puma::CTree * ReferredType;
25177
 
  };
25178
 
  template <int DUMMY> struct Arg<2, DUMMY> {
25179
 
    typedef ::Puma::CTree * Type;
25180
 
    typedef ::Puma::CTree * ReferredType;
25181
 
  };
25182
56449
 
25183
56450
  That *_that;
25184
56451
 
25187
56454
};
25188
56455
 
25189
56456
 
25190
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56457
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25191
56458
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
25192
 
#line 25193 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56459
#line 56460 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
25193
56460
{
25194
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
25195
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
25196
 
this->__exec_old_C1(arg0, arg1, arg2);
25197
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
25198
 
 
 
56461
  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;
 
56462
    __TJP tjp;
 
56463
  tjp._that =  (__TJP::That*)this;
 
56464
    this->__exec_old_C1(arg0, arg1, arg2);
 
56465
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
56466
  
25199
56467
}
25200
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
25201
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56468
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
56469
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25202
56470
{
25203
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
 
56471
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
56472
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
25204
56473
  }
 
56474
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25205
56475
  static const char *NodeId ();
 
56476
  /** Get the name of the node. Can be compared with NodeId(). */
25206
56477
  const char *NodeName () const { return NodeId (); }
 
56478
  /** Get the number of sons. */
25207
56479
  int Sons () const { return CTree::Sons (sons, 4); }
 
56480
  /** Get the n-th son.
 
56481
   *  \param n The index of the son.
 
56482
   *  \return The n-th son or NULL. */
25208
56483
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
25209
56484
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
25210
56485
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
25211
56486
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
25212
56487
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
25213
56488
  CSemObject *SemObject () const { return (CSemObject*)this; }
25214
 
  void Members (CTree *m) { sons[3] = m; }
25215
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
25216
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
56489
  void Members (CTree *m) { AddSon (sons[3], m); }
 
56490
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
56491
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
56492
  /** Replace a son.
 
56493
   *  \param old_son The son to replace.
 
56494
   *  \param new_son The new son. */
25217
56495
  void ReplaceSon (CTree *old_son, CTree *new_son) {
25218
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
25219
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
 
56496
    CTree::ReplaceSon (sons, 4, old_son, new_son);
25220
56497
  }
25221
56498
   private:
25222
56499
 
25223
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
25224
 
 CTree * _intro_members ;
 
56500
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
56501
 Puma :: CTree * _intro_members ;
 
56502
Puma :: CTree * _base_intros ;
25225
56503
public :
25226
 
CTree * IntroMembers ( ) const { return _intro_members ; }
25227
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
25228
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25229
 
 
25230
 
#line 25231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
25231
 
 
25232
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
25233
 
  typedef void Result;
25234
 
  typedef ::Puma::CT_ClassDef That;
25235
 
  typedef ::Puma::CT_ClassDef Target;
25236
 
  static const int JPID = 4;
 
56504
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
56505
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
56506
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
56507
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
56508
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56509
 
 
56510
#line 56511 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56511
 
 
56512
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
56513
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
56514
  typedef TResult Result;
 
56515
  typedef TThat   That;
 
56516
  typedef TTarget Target;
 
56517
  enum { ARGS = TArgs::ARGS };
 
56518
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
56519
  static const int JPID = 6218;
25237
56520
  static const AC::JPType JPTYPE = (AC::JPType)16;
25238
56521
  struct Res {
25239
56522
    typedef void Type;
25240
56523
    typedef void ReferredType;
25241
56524
  };
25242
 
  enum { ARGS = 1 };
25243
 
  template <int I, int DUMMY = 0> struct Arg {
25244
 
    typedef void Type;
25245
 
    typedef void ReferredType;
25246
 
  };
25247
 
  template <int DUMMY> struct Arg<0, DUMMY> {
25248
 
    typedef const ::Puma::CT_ClassDef & Type;
25249
 
    typedef const ::Puma::CT_ClassDef ReferredType;
25250
 
  };
25251
56525
 
25252
56526
  That *_that;
25253
56527
 
25256
56530
};
25257
56531
 
25258
56532
 
25259
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56533
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25260
56534
 
25261
 
#line 25262 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56535
#line 56536 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
25262
56536
 
25263
56537
public:
25264
 
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) {
25265
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
25266
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
25267
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
 
56538
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) {
 
56539
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
56540
  __TJP tjp;
 
56541
  tjp._that =  (__TJP::That*)this;
 
56542
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
25268
56543
 
25269
56544
}
25270
56545
 
25271
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25272
 
 
25273
 
#line 25274 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
25274
 
 
25275
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
25276
 
  typedef void Result;
25277
 
  typedef ::Puma::CT_ClassDef That;
25278
 
  typedef ::Puma::CT_ClassDef Target;
25279
 
  static const int JPID = 4;
 
56546
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56547
 
 
56548
#line 56549 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56549
 
 
56550
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
56551
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
56552
  typedef TResult Result;
 
56553
  typedef TThat   That;
 
56554
  typedef TTarget Target;
 
56555
  enum { ARGS = TArgs::ARGS };
 
56556
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
56557
  static const int JPID = 6216;
25280
56558
  static const AC::JPType JPTYPE = (AC::JPType)32;
25281
56559
  struct Res {
25282
56560
    typedef void Type;
25283
56561
    typedef void ReferredType;
25284
56562
  };
25285
 
  enum { ARGS = 0 };
25286
 
  template <int I, int DUMMY = 0> struct Arg {
25287
 
    typedef void Type;
25288
 
    typedef void ReferredType;
25289
 
  };
25290
56563
 
25291
56564
  That *_that;
25292
56565
 
25295
56568
};
25296
56569
 
25297
56570
 
25298
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56571
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25299
56572
 
25300
 
#line 25301 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56573
#line 56574 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
25301
56574
 
25302
56575
public:
25303
56576
inline ~CT_ClassDef () {
25304
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
25305
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
25306
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
 
56577
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
56578
  __TJP tjp;
 
56579
  tjp._that =  (__TJP::That*)this;
 
56580
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
25307
56581
 
25308
56582
}
25309
56583
 
25310
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56584
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25311
56585
};
25312
56586
      
25313
56587
 
25314
 
#line 25315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56588
#line 56589 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
25315
56589
} // closed Puma
 
56590
class CCExprResolve;
 
56591
class CExprResolve;
25316
56592
class WinIfExists;
25317
56593
class WinImportHandler;
25318
56594
class WinMacros;
25319
 
class CMatchSyntax;
25320
 
class ExtGnu;
 
56595
class WinAsm;
 
56596
class WinDeclSpecs;
 
56597
class WinMemberExplSpec;
 
56598
class WinTypeKeywords;
 
56599
class WinFriend;
25321
56600
class ExtAC;
25322
56601
class ExtACBuilderCoupling;
25323
56602
class ExtACSyntaxCoupling;
25324
56603
class ExtACTree;
25325
56604
class ExtACKeywords;
25326
 
class WinAsm;
25327
 
class WinDeclSpecs;
25328
 
class WinMemberExplSpec;
25329
 
class WinTypeKeywords;
 
56605
class ExtGnu;
25330
56606
class PragmaOnceUnitState;
25331
56607
class PragmaOnce;
25332
 
class CCExprResolve;
25333
 
class CExprResolve;
 
56608
class CMatchSyntax;
25334
56609
namespace Puma {
25335
56610
 
25336
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56611
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25337
56612
class CT_UnionDef : public CT_ClassDef {
25338
 
#line 25339 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56613
#line 56614 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56614
  friend class ::CCExprResolve;
 
56615
  friend class ::CExprResolve;
25339
56616
  friend class ::WinIfExists;
25340
56617
  friend class ::WinImportHandler;
25341
56618
  friend class ::WinMacros;
25342
 
  friend class ::CMatchSyntax;
25343
 
  friend class ::ExtGnu;
 
56619
  friend class ::WinAsm;
 
56620
  friend class ::WinDeclSpecs;
 
56621
  friend class ::WinMemberExplSpec;
 
56622
  friend class ::WinTypeKeywords;
 
56623
  friend class ::WinFriend;
25344
56624
  friend class ::ExtAC;
25345
56625
  friend class ::ExtACBuilderCoupling;
25346
56626
  friend class ::ExtACSyntaxCoupling;
25347
56627
  friend class ::ExtACTree;
25348
56628
  friend class ::ExtACKeywords;
25349
 
  friend class ::WinAsm;
25350
 
  friend class ::WinDeclSpecs;
25351
 
  friend class ::WinMemberExplSpec;
25352
 
  friend class ::WinTypeKeywords;
 
56629
  friend class ::ExtGnu;
25353
56630
  friend class ::PragmaOnceUnitState;
25354
56631
  friend class ::PragmaOnce;
25355
 
  friend class ::CCExprResolve;
25356
 
  friend class ::CExprResolve;
 
56632
  friend class ::CMatchSyntax;
25357
56633
 
25358
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56634
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25359
56635
 
25360
56636
public:
25361
56637
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
25362
56638
  static const char *NodeId ();
 
56639
  /** Get the name of the node. Can be compared with NodeId(). */
25363
56640
  const char *NodeName () const { return NodeId (); }
25364
56641
};
25365
56642
      
25366
56643
 
25367
 
#line 25368 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56644
#line 56645 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
25368
56645
} // closed Puma
 
56646
class CCExprResolve;
 
56647
class CExprResolve;
25369
56648
class WinIfExists;
25370
56649
class WinImportHandler;
25371
56650
class WinMacros;
25372
 
class CMatchSyntax;
25373
 
class ExtGnu;
 
56651
class WinAsm;
 
56652
class WinDeclSpecs;
 
56653
class WinMemberExplSpec;
 
56654
class WinTypeKeywords;
 
56655
class WinFriend;
25374
56656
class ExtAC;
25375
56657
class ExtACBuilderCoupling;
25376
56658
class ExtACSyntaxCoupling;
25377
56659
class ExtACTree;
25378
56660
class ExtACKeywords;
25379
 
class WinAsm;
25380
 
class WinDeclSpecs;
25381
 
class WinMemberExplSpec;
25382
 
class WinTypeKeywords;
 
56661
class ExtGnu;
25383
56662
class PragmaOnceUnitState;
25384
56663
class PragmaOnce;
25385
 
class CCExprResolve;
25386
 
class CExprResolve;
 
56664
class CMatchSyntax;
25387
56665
namespace Puma {
25388
56666
 
25389
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56667
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25390
56668
class CT_MembList : public CT_DeclList, public CSemScope {
25391
 
#line 25392 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56669
#line 56670 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56670
  friend class ::CCExprResolve;
 
56671
  friend class ::CExprResolve;
25392
56672
  friend class ::WinIfExists;
25393
56673
  friend class ::WinImportHandler;
25394
56674
  friend class ::WinMacros;
25395
 
  friend class ::CMatchSyntax;
25396
 
  friend class ::ExtGnu;
 
56675
  friend class ::WinAsm;
 
56676
  friend class ::WinDeclSpecs;
 
56677
  friend class ::WinMemberExplSpec;
 
56678
  friend class ::WinTypeKeywords;
 
56679
  friend class ::WinFriend;
25397
56680
  friend class ::ExtAC;
25398
56681
  friend class ::ExtACBuilderCoupling;
25399
56682
  friend class ::ExtACSyntaxCoupling;
25400
56683
  friend class ::ExtACTree;
25401
56684
  friend class ::ExtACKeywords;
25402
 
  friend class ::WinAsm;
25403
 
  friend class ::WinDeclSpecs;
25404
 
  friend class ::WinMemberExplSpec;
25405
 
  friend class ::WinTypeKeywords;
 
56685
  friend class ::ExtGnu;
25406
56686
  friend class ::PragmaOnceUnitState;
25407
56687
  friend class ::PragmaOnce;
25408
 
  friend class ::CCExprResolve;
25409
 
  friend class ::CExprResolve;
 
56688
  friend class ::CMatchSyntax;
25410
56689
 
25411
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56690
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25412
56691
 
25413
56692
public:
25414
56693
  CT_MembList (int size = 10, int incr = 10) : 
25415
56694
    CT_DeclList (size, incr) {}
 
56695
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25416
56696
  static const char *NodeId ();
 
56697
  /** Get the name of the node. Can be compared with NodeId(). */
25417
56698
  const char *NodeName () const { return NodeId (); }
 
56699
  CSemScope *SemScope () const { return (CSemScope*)this; }
25418
56700
};
25419
56701
 
25420
56702
 
25421
 
#line 25422 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56703
#line 56704 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
25422
56704
} // closed Puma
 
56705
class CCExprResolve;
 
56706
class CExprResolve;
25423
56707
class WinIfExists;
25424
56708
class WinImportHandler;
25425
56709
class WinMacros;
25426
 
class CMatchSyntax;
25427
 
class ExtGnu;
 
56710
class WinAsm;
 
56711
class WinDeclSpecs;
 
56712
class WinMemberExplSpec;
 
56713
class WinTypeKeywords;
 
56714
class WinFriend;
25428
56715
class ExtAC;
25429
56716
class ExtACBuilderCoupling;
25430
56717
class ExtACSyntaxCoupling;
25431
56718
class ExtACTree;
25432
56719
class ExtACKeywords;
25433
 
class WinAsm;
25434
 
class WinDeclSpecs;
25435
 
class WinMemberExplSpec;
25436
 
class WinTypeKeywords;
 
56720
class ExtGnu;
25437
56721
class PragmaOnceUnitState;
25438
56722
class PragmaOnce;
25439
 
class CCExprResolve;
25440
 
class CExprResolve;
 
56723
class CMatchSyntax;
25441
56724
namespace Puma {
25442
56725
 
25443
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56726
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25444
56727
class CT_MembInitList : public CT_List, public CSemScope {
25445
 
#line 25446 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56728
#line 56729 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56729
  friend class ::CCExprResolve;
 
56730
  friend class ::CExprResolve;
25446
56731
  friend class ::WinIfExists;
25447
56732
  friend class ::WinImportHandler;
25448
56733
  friend class ::WinMacros;
25449
 
  friend class ::CMatchSyntax;
25450
 
  friend class ::ExtGnu;
 
56734
  friend class ::WinAsm;
 
56735
  friend class ::WinDeclSpecs;
 
56736
  friend class ::WinMemberExplSpec;
 
56737
  friend class ::WinTypeKeywords;
 
56738
  friend class ::WinFriend;
25451
56739
  friend class ::ExtAC;
25452
56740
  friend class ::ExtACBuilderCoupling;
25453
56741
  friend class ::ExtACSyntaxCoupling;
25454
56742
  friend class ::ExtACTree;
25455
56743
  friend class ::ExtACKeywords;
25456
 
  friend class ::WinAsm;
25457
 
  friend class ::WinDeclSpecs;
25458
 
  friend class ::WinMemberExplSpec;
25459
 
  friend class ::WinTypeKeywords;
 
56744
  friend class ::ExtGnu;
25460
56745
  friend class ::PragmaOnceUnitState;
25461
56746
  friend class ::PragmaOnce;
25462
 
  friend class ::CCExprResolve;
25463
 
  friend class ::CExprResolve;
 
56747
  friend class ::CMatchSyntax;
25464
56748
 
25465
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56749
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25466
56750
 
25467
56751
public:
25468
56752
  CT_MembInitList (int size = 2) : 
25469
56753
    CT_List (size, 2, CT_List::OPEN) {}
25470
56754
  static const char *NodeId ();
 
56755
  /** Get the name of the node. Can be compared with NodeId(). */
25471
56756
  const char *NodeName () const { return NodeId (); }
 
56757
  CSemScope *SemScope () const { return (CSemScope*)this; }
25472
56758
};
25473
56759
 
25474
56760
 
25475
 
#line 25476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56761
#line 56762 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
25476
56762
} // closed Puma
 
56763
class CCExprResolve;
 
56764
class CExprResolve;
25477
56765
class WinIfExists;
25478
56766
class WinImportHandler;
25479
56767
class WinMacros;
25480
 
class CMatchSyntax;
25481
 
class ExtGnu;
 
56768
class WinAsm;
 
56769
class WinDeclSpecs;
 
56770
class WinMemberExplSpec;
 
56771
class WinTypeKeywords;
 
56772
class WinFriend;
25482
56773
class ExtAC;
25483
56774
class ExtACBuilderCoupling;
25484
56775
class ExtACSyntaxCoupling;
25485
56776
class ExtACTree;
25486
56777
class ExtACKeywords;
25487
 
class WinAsm;
25488
 
class WinDeclSpecs;
25489
 
class WinMemberExplSpec;
25490
 
class WinTypeKeywords;
 
56778
class ExtGnu;
25491
56779
class PragmaOnceUnitState;
25492
56780
class PragmaOnce;
25493
 
class CCExprResolve;
25494
 
class CExprResolve;
25495
 
namespace Puma {
25496
 
 
25497
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56781
class CMatchSyntax;
 
56782
namespace Puma {
 
56783
 
 
56784
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56785
 
 
56786
#line 56787 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56787
} // closed Puma
 
56788
 
 
56789
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56790
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56791
#include "CCExprResolveH.ah"
 
56792
#endif
 
56793
namespace Puma {
 
56794
 
 
56795
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56796
 
 
56797
#line 56798 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56798
} // closed Puma
 
56799
 
 
56800
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56801
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56802
#include "CExprResolveH.ah"
 
56803
#endif
 
56804
namespace Puma {
 
56805
 
 
56806
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25498
56807
class CT_MembInit : public CT_Expression, public CSemObject {
25499
 
#line 25500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56808
#line 56809 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56809
  friend class ::CCExprResolve;
 
56810
  friend class ::CExprResolve;
25500
56811
  friend class ::WinIfExists;
25501
56812
  friend class ::WinImportHandler;
25502
56813
  friend class ::WinMacros;
25503
 
  friend class ::CMatchSyntax;
25504
 
  friend class ::ExtGnu;
 
56814
  friend class ::WinAsm;
 
56815
  friend class ::WinDeclSpecs;
 
56816
  friend class ::WinMemberExplSpec;
 
56817
  friend class ::WinTypeKeywords;
 
56818
  friend class ::WinFriend;
25505
56819
  friend class ::ExtAC;
25506
56820
  friend class ::ExtACBuilderCoupling;
25507
56821
  friend class ::ExtACSyntaxCoupling;
25508
56822
  friend class ::ExtACTree;
25509
56823
  friend class ::ExtACKeywords;
25510
 
  friend class ::WinAsm;
25511
 
  friend class ::WinDeclSpecs;
25512
 
  friend class ::WinMemberExplSpec;
25513
 
  friend class ::WinTypeKeywords;
 
56824
  friend class ::ExtGnu;
25514
56825
  friend class ::PragmaOnceUnitState;
25515
56826
  friend class ::PragmaOnce;
25516
 
  friend class ::CCExprResolve;
25517
 
  friend class ::CExprResolve;
 
56827
  friend class ::CMatchSyntax;
25518
56828
 
25519
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56829
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25520
56830
 
25521
56831
  CTree *sons[2]; // name, init
25522
56832
 
25523
56833
public:
25524
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
 
56834
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
56835
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25525
56836
  static const char *NodeId ();
 
56837
  /** Get the name of the node. Can be compared with NodeId(). */
25526
56838
  const char *NodeName () const { return NodeId (); }
 
56839
  /** Get the number of sons. */
25527
56840
  int Sons () const { return 2; }
 
56841
  /** Get the n-th son.
 
56842
   *  \param n The index of the son.
 
56843
   *  \return The n-th son or NULL. */
25528
56844
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
56845
  /** Replace a son.
 
56846
   *  \param old_son The son to replace.
 
56847
   *  \param new_son The new son. */
25529
56848
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25530
56849
    CTree::ReplaceSon (sons, 2, old_son, new_son);
25531
56850
  }
25535
56854
   private:
25536
56855
  typedef CT_MembInit CCExprResolveExpr;
25537
56856
 
25538
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
56857
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
25539
56858
 public :
25540
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
56859
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
25541
56860
  typedef CT_MembInit CExprResolveExpr;
25542
56861
 
25543
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
56862
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
25544
56863
 public :
25545
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
25546
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56864
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
56865
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25547
56866
};
25548
56867
 
25549
56868
 
25550
 
#line 25551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56869
#line 56870 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
25551
56870
} // closed Puma
 
56871
class CCExprResolve;
 
56872
class CExprResolve;
25552
56873
class WinIfExists;
25553
56874
class WinImportHandler;
25554
56875
class WinMacros;
25555
 
class CMatchSyntax;
25556
 
class ExtGnu;
 
56876
class WinAsm;
 
56877
class WinDeclSpecs;
 
56878
class WinMemberExplSpec;
 
56879
class WinTypeKeywords;
 
56880
class WinFriend;
25557
56881
class ExtAC;
25558
56882
class ExtACBuilderCoupling;
25559
56883
class ExtACSyntaxCoupling;
25560
56884
class ExtACTree;
25561
56885
class ExtACKeywords;
25562
 
class WinAsm;
25563
 
class WinDeclSpecs;
25564
 
class WinMemberExplSpec;
25565
 
class WinTypeKeywords;
 
56886
class ExtGnu;
25566
56887
class PragmaOnceUnitState;
25567
56888
class PragmaOnce;
25568
 
class CCExprResolve;
25569
 
class CExprResolve;
 
56889
class CMatchSyntax;
25570
56890
namespace Puma {
25571
56891
 
25572
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56892
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25573
56893
class CT_BaseSpecList : public CT_List {
25574
 
#line 25575 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56894
#line 56895 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56895
  friend class ::CCExprResolve;
 
56896
  friend class ::CExprResolve;
25575
56897
  friend class ::WinIfExists;
25576
56898
  friend class ::WinImportHandler;
25577
56899
  friend class ::WinMacros;
25578
 
  friend class ::CMatchSyntax;
25579
 
  friend class ::ExtGnu;
 
56900
  friend class ::WinAsm;
 
56901
  friend class ::WinDeclSpecs;
 
56902
  friend class ::WinMemberExplSpec;
 
56903
  friend class ::WinTypeKeywords;
 
56904
  friend class ::WinFriend;
25580
56905
  friend class ::ExtAC;
25581
56906
  friend class ::ExtACBuilderCoupling;
25582
56907
  friend class ::ExtACSyntaxCoupling;
25583
56908
  friend class ::ExtACTree;
25584
56909
  friend class ::ExtACKeywords;
25585
 
  friend class ::WinAsm;
25586
 
  friend class ::WinDeclSpecs;
25587
 
  friend class ::WinMemberExplSpec;
25588
 
  friend class ::WinTypeKeywords;
 
56910
  friend class ::ExtGnu;
25589
56911
  friend class ::PragmaOnceUnitState;
25590
56912
  friend class ::PragmaOnce;
25591
 
  friend class ::CCExprResolve;
25592
 
  friend class ::CExprResolve;
 
56913
  friend class ::CMatchSyntax;
25593
56914
 
25594
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56915
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25595
56916
 
25596
56917
public:
25597
56918
  CT_BaseSpecList (int size = 2) : 
25598
56919
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
56920
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25599
56921
  static const char *NodeId ();
 
56922
  /** Get the name of the node. Can be compared with NodeId(). */
25600
56923
  const char *NodeName () const { return NodeId (); }
25601
56924
};
25602
56925
 
25603
56926
 
25604
 
#line 25605 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56927
#line 56928 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
25605
56928
} // closed Puma
 
56929
class CCExprResolve;
 
56930
class CExprResolve;
25606
56931
class WinIfExists;
25607
56932
class WinImportHandler;
25608
56933
class WinMacros;
25609
 
class CMatchSyntax;
25610
 
class ExtGnu;
 
56934
class WinAsm;
 
56935
class WinDeclSpecs;
 
56936
class WinMemberExplSpec;
 
56937
class WinTypeKeywords;
 
56938
class WinFriend;
25611
56939
class ExtAC;
25612
56940
class ExtACBuilderCoupling;
25613
56941
class ExtACSyntaxCoupling;
25614
56942
class ExtACTree;
25615
56943
class ExtACKeywords;
25616
 
class WinAsm;
25617
 
class WinDeclSpecs;
25618
 
class WinMemberExplSpec;
25619
 
class WinTypeKeywords;
 
56944
class ExtGnu;
25620
56945
class PragmaOnceUnitState;
25621
56946
class PragmaOnce;
25622
 
class CCExprResolve;
25623
 
class CExprResolve;
 
56947
class CMatchSyntax;
25624
56948
namespace Puma {
25625
56949
 
25626
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56950
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25627
56951
class CT_AccessSpec : public CTree {
25628
 
#line 25629 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56952
#line 56953 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56953
  friend class ::CCExprResolve;
 
56954
  friend class ::CExprResolve;
25629
56955
  friend class ::WinIfExists;
25630
56956
  friend class ::WinImportHandler;
25631
56957
  friend class ::WinMacros;
25632
 
  friend class ::CMatchSyntax;
25633
 
  friend class ::ExtGnu;
 
56958
  friend class ::WinAsm;
 
56959
  friend class ::WinDeclSpecs;
 
56960
  friend class ::WinMemberExplSpec;
 
56961
  friend class ::WinTypeKeywords;
 
56962
  friend class ::WinFriend;
25634
56963
  friend class ::ExtAC;
25635
56964
  friend class ::ExtACBuilderCoupling;
25636
56965
  friend class ::ExtACSyntaxCoupling;
25637
56966
  friend class ::ExtACTree;
25638
56967
  friend class ::ExtACKeywords;
25639
 
  friend class ::WinAsm;
25640
 
  friend class ::WinDeclSpecs;
25641
 
  friend class ::WinMemberExplSpec;
25642
 
  friend class ::WinTypeKeywords;
 
56968
  friend class ::ExtGnu;
25643
56969
  friend class ::PragmaOnceUnitState;
25644
56970
  friend class ::PragmaOnce;
25645
 
  friend class ::CCExprResolve;
25646
 
  friend class ::CExprResolve;
 
56971
  friend class ::CMatchSyntax;
25647
56972
 
25648
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56973
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25649
56974
 
25650
56975
  CTree *sons[2]; // access, colon
25651
56976
 
25652
56977
public:
25653
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
 
56978
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
56979
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25654
56980
  static const char *NodeId ();
 
56981
  /** Get the name of the node. Can be compared with NodeId(). */
25655
56982
  const char *NodeName () const { return NodeId (); }
 
56983
  /** Get the number of sons. */
25656
56984
  int Sons () const { return 2; }
 
56985
  /** Get the n-th son.
 
56986
   *  \param n The index of the son.
 
56987
   *  \return The n-th son or NULL. */
25657
56988
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
25658
56989
  int Access () const { return sons[0]->token ()->type (); }
 
56990
  /** Replace a son.
 
56991
   *  \param old_son The son to replace.
 
56992
   *  \param new_son The new son. */
25659
56993
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25660
56994
    CTree::ReplaceSon (sons, 2, old_son, new_son);
25661
56995
  }
25662
56996
};
25663
56997
 
25664
56998
 
25665
 
#line 25666 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
56999
#line 57000 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
25666
57000
} // closed Puma
 
57001
class CCExprResolve;
 
57002
class CExprResolve;
25667
57003
class WinIfExists;
25668
57004
class WinImportHandler;
25669
57005
class WinMacros;
25670
 
class CMatchSyntax;
25671
 
class ExtGnu;
 
57006
class WinAsm;
 
57007
class WinDeclSpecs;
 
57008
class WinMemberExplSpec;
 
57009
class WinTypeKeywords;
 
57010
class WinFriend;
25672
57011
class ExtAC;
25673
57012
class ExtACBuilderCoupling;
25674
57013
class ExtACSyntaxCoupling;
25675
57014
class ExtACTree;
25676
57015
class ExtACKeywords;
25677
 
class WinAsm;
25678
 
class WinDeclSpecs;
25679
 
class WinMemberExplSpec;
25680
 
class WinTypeKeywords;
 
57016
class ExtGnu;
25681
57017
class PragmaOnceUnitState;
25682
57018
class PragmaOnce;
25683
 
class CCExprResolve;
25684
 
class CExprResolve;
 
57019
class CMatchSyntax;
25685
57020
namespace Puma {
25686
57021
 
25687
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57022
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25688
57023
class CT_BaseSpec : public CTree {
25689
 
#line 25690 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57024
#line 57025 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57025
  friend class ::CCExprResolve;
 
57026
  friend class ::CExprResolve;
25690
57027
  friend class ::WinIfExists;
25691
57028
  friend class ::WinImportHandler;
25692
57029
  friend class ::WinMacros;
25693
 
  friend class ::CMatchSyntax;
25694
 
  friend class ::ExtGnu;
 
57030
  friend class ::WinAsm;
 
57031
  friend class ::WinDeclSpecs;
 
57032
  friend class ::WinMemberExplSpec;
 
57033
  friend class ::WinTypeKeywords;
 
57034
  friend class ::WinFriend;
25695
57035
  friend class ::ExtAC;
25696
57036
  friend class ::ExtACBuilderCoupling;
25697
57037
  friend class ::ExtACSyntaxCoupling;
25698
57038
  friend class ::ExtACTree;
25699
57039
  friend class ::ExtACKeywords;
25700
 
  friend class ::WinAsm;
25701
 
  friend class ::WinDeclSpecs;
25702
 
  friend class ::WinMemberExplSpec;
25703
 
  friend class ::WinTypeKeywords;
 
57040
  friend class ::ExtGnu;
25704
57041
  friend class ::PragmaOnceUnitState;
25705
57042
  friend class ::PragmaOnce;
25706
 
  friend class ::CCExprResolve;
25707
 
  friend class ::CExprResolve;
 
57043
  friend class ::CMatchSyntax;
25708
57044
 
25709
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57045
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25710
57046
 
25711
57047
  CTree *sons[3]; // virtual, access, name
25712
57048
 
25713
57049
public:
25714
57050
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
25715
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
 
57051
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
25716
57052
  }
 
57053
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25717
57054
  static const char *NodeId ();
 
57055
  /** Get the name of the node. Can be compared with NodeId(). */
25718
57056
  const char *NodeName () const { return NodeId (); }
 
57057
  /** Get the number of sons. */
25719
57058
  int Sons () const { return CTree::Sons (sons, 3); }
 
57059
  /** Get the n-th son.
 
57060
   *  \param n The index of the son.
 
57061
   *  \return The n-th son or NULL. */
25720
57062
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
25721
57063
  int Access () const { return sons[1]->token ()->type (); }
25722
57064
  CTree *AccessSpec () const { return sons[1]; }
25723
57065
  CTree *Virtual () const { return sons[0]; }
25724
57066
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
57067
  /** Replace a son.
 
57068
   *  \param old_son The son to replace.
 
57069
   *  \param new_son The new son. */
25725
57070
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25726
57071
    CTree::ReplaceSon (sons, 3, old_son, new_son);
25727
57072
  }
25728
57073
};
25729
57074
 
25730
57075
 
25731
 
#line 25732 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57076
#line 57077 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
25732
57077
} // closed Puma
 
57078
class CCExprResolve;
 
57079
class CExprResolve;
25733
57080
class WinIfExists;
25734
57081
class WinImportHandler;
25735
57082
class WinMacros;
25736
 
class CMatchSyntax;
25737
 
class ExtGnu;
 
57083
class WinAsm;
 
57084
class WinDeclSpecs;
 
57085
class WinMemberExplSpec;
 
57086
class WinTypeKeywords;
 
57087
class WinFriend;
25738
57088
class ExtAC;
25739
57089
class ExtACBuilderCoupling;
25740
57090
class ExtACSyntaxCoupling;
25741
57091
class ExtACTree;
25742
57092
class ExtACKeywords;
25743
 
class WinAsm;
25744
 
class WinDeclSpecs;
25745
 
class WinMemberExplSpec;
25746
 
class WinTypeKeywords;
 
57093
class ExtGnu;
25747
57094
class PragmaOnceUnitState;
25748
57095
class PragmaOnce;
25749
 
class CCExprResolve;
25750
 
class CExprResolve;
 
57096
class CMatchSyntax;
25751
57097
namespace Puma {
25752
57098
 
25753
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57099
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25754
57100
class CT_AccessDecl : public CT_Decl {
25755
 
#line 25756 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57101
#line 57102 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57102
  friend class ::CCExprResolve;
 
57103
  friend class ::CExprResolve;
25756
57104
  friend class ::WinIfExists;
25757
57105
  friend class ::WinImportHandler;
25758
57106
  friend class ::WinMacros;
25759
 
  friend class ::CMatchSyntax;
25760
 
  friend class ::ExtGnu;
 
57107
  friend class ::WinAsm;
 
57108
  friend class ::WinDeclSpecs;
 
57109
  friend class ::WinMemberExplSpec;
 
57110
  friend class ::WinTypeKeywords;
 
57111
  friend class ::WinFriend;
25761
57112
  friend class ::ExtAC;
25762
57113
  friend class ::ExtACBuilderCoupling;
25763
57114
  friend class ::ExtACSyntaxCoupling;
25764
57115
  friend class ::ExtACTree;
25765
57116
  friend class ::ExtACKeywords;
25766
 
  friend class ::WinAsm;
25767
 
  friend class ::WinDeclSpecs;
25768
 
  friend class ::WinMemberExplSpec;
25769
 
  friend class ::WinTypeKeywords;
 
57117
  friend class ::ExtGnu;
25770
57118
  friend class ::PragmaOnceUnitState;
25771
57119
  friend class ::PragmaOnce;
25772
 
  friend class ::CCExprResolve;
25773
 
  friend class ::CExprResolve;
 
57120
  friend class ::CMatchSyntax;
25774
57121
 
25775
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57122
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25776
57123
 
25777
57124
  CTree *sons[2]; // name, semi_colon
25778
57125
 
25779
57126
public:
25780
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
 
57127
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
57128
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25781
57129
  static const char *NodeId ();
 
57130
  /** Get the name of the node. Can be compared with NodeId(). */
25782
57131
  const char *NodeName () const { return NodeId (); }
 
57132
  /** Get the number of sons. */
25783
57133
  int Sons () const { return 2; }
 
57134
  /** Get the n-th son.
 
57135
   *  \param n The index of the son.
 
57136
   *  \return The n-th son or NULL. */
25784
57137
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
25785
57138
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
57139
  /** Replace a son.
 
57140
   *  \param old_son The son to replace.
 
57141
   *  \param new_son The new son. */
25786
57142
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25787
57143
    CTree::ReplaceSon (sons, 2, old_son, new_son);
25788
57144
  }
25789
57145
};
25790
57146
 
25791
57147
 
25792
 
#line 25793 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57148
#line 57149 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
25793
57149
} // closed Puma
 
57150
class CCExprResolve;
 
57151
class CExprResolve;
25794
57152
class WinIfExists;
25795
57153
class WinImportHandler;
25796
57154
class WinMacros;
25797
 
class CMatchSyntax;
25798
 
class ExtGnu;
 
57155
class WinAsm;
 
57156
class WinDeclSpecs;
 
57157
class WinMemberExplSpec;
 
57158
class WinTypeKeywords;
 
57159
class WinFriend;
25799
57160
class ExtAC;
25800
57161
class ExtACBuilderCoupling;
25801
57162
class ExtACSyntaxCoupling;
25802
57163
class ExtACTree;
25803
57164
class ExtACKeywords;
25804
 
class WinAsm;
25805
 
class WinDeclSpecs;
25806
 
class WinMemberExplSpec;
25807
 
class WinTypeKeywords;
 
57165
class ExtGnu;
25808
57166
class PragmaOnceUnitState;
25809
57167
class PragmaOnce;
25810
 
class CCExprResolve;
25811
 
class CExprResolve;
 
57168
class CMatchSyntax;
25812
57169
namespace Puma {
25813
57170
 
25814
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57171
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25815
57172
class CT_UsingDecl : public CT_AccessDecl {
25816
 
#line 25817 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57173
#line 57174 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57174
  friend class ::CCExprResolve;
 
57175
  friend class ::CExprResolve;
25817
57176
  friend class ::WinIfExists;
25818
57177
  friend class ::WinImportHandler;
25819
57178
  friend class ::WinMacros;
25820
 
  friend class ::CMatchSyntax;
25821
 
  friend class ::ExtGnu;
 
57179
  friend class ::WinAsm;
 
57180
  friend class ::WinDeclSpecs;
 
57181
  friend class ::WinMemberExplSpec;
 
57182
  friend class ::WinTypeKeywords;
 
57183
  friend class ::WinFriend;
25822
57184
  friend class ::ExtAC;
25823
57185
  friend class ::ExtACBuilderCoupling;
25824
57186
  friend class ::ExtACSyntaxCoupling;
25825
57187
  friend class ::ExtACTree;
25826
57188
  friend class ::ExtACKeywords;
25827
 
  friend class ::WinAsm;
25828
 
  friend class ::WinDeclSpecs;
25829
 
  friend class ::WinMemberExplSpec;
25830
 
  friend class ::WinTypeKeywords;
 
57189
  friend class ::ExtGnu;
25831
57190
  friend class ::PragmaOnceUnitState;
25832
57191
  friend class ::PragmaOnce;
25833
 
  friend class ::CCExprResolve;
25834
 
  friend class ::CExprResolve;
 
57192
  friend class ::CMatchSyntax;
25835
57193
 
25836
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57194
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25837
57195
 
25838
57196
  CTree *sons[2]; // using, typename
25839
57197
 
25840
57198
public:
25841
57199
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
25842
 
    sons[0] = u; sons[1] = 0; 
 
57200
    AddSon (sons[0], u); AddSon (sons[1], 0); 
25843
57201
  }
25844
57202
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
25845
 
    sons[0] = u; sons[1] = t; 
 
57203
    AddSon (sons[0], u); AddSon (sons[1], t); 
25846
57204
  }
 
57205
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25847
57206
  static const char *NodeId ();
 
57207
  /** Get the name of the node. Can be compared with NodeId(). */
25848
57208
  const char *NodeName () const { return NodeId (); }
 
57209
  /** Get the number of sons. */
25849
57210
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
57211
  /** Get the n-th son.
 
57212
   *  \param n The index of the son.
 
57213
   *  \return The n-th son or NULL. */
25850
57214
  CTree *Son (int n) const {
25851
57215
    int num = CTree::Sons (sons, 2);
25852
57216
    CTree *result = CTree::Son (sons, 2, n);
25853
57217
    return result ? result : CT_AccessDecl::Son (n-num);
25854
57218
  }
25855
57219
  CTree *Typename () const { return sons[1]; }
 
57220
  /** Replace a son.
 
57221
   *  \param old_son The son to replace.
 
57222
   *  \param new_son The new son. */
25856
57223
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25857
57224
    CTree::ReplaceSon (sons, 2, old_son, new_son);
25858
57225
    CT_AccessDecl::ReplaceSon (old_son, new_son);
25866
57233
/*****************************************************************************/
25867
57234
 
25868
57235
 
25869
 
#line 25870 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57236
#line 57237 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
25870
57237
} // closed Puma
 
57238
class CCExprResolve;
 
57239
class CExprResolve;
25871
57240
class WinIfExists;
25872
57241
class WinImportHandler;
25873
57242
class WinMacros;
25874
 
class CMatchSyntax;
25875
 
class ExtGnu;
 
57243
class WinAsm;
 
57244
class WinDeclSpecs;
 
57245
class WinMemberExplSpec;
 
57246
class WinTypeKeywords;
 
57247
class WinFriend;
25876
57248
class ExtAC;
25877
57249
class ExtACBuilderCoupling;
25878
57250
class ExtACSyntaxCoupling;
25879
57251
class ExtACTree;
25880
57252
class ExtACKeywords;
25881
 
class WinAsm;
25882
 
class WinDeclSpecs;
25883
 
class WinMemberExplSpec;
25884
 
class WinTypeKeywords;
 
57253
class ExtGnu;
25885
57254
class PragmaOnceUnitState;
25886
57255
class PragmaOnce;
25887
 
class CCExprResolve;
25888
 
class CExprResolve;
 
57256
class CMatchSyntax;
25889
57257
namespace Puma {
25890
57258
 
25891
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57259
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25892
57260
class CT_Any : public CTree {
25893
 
#line 25894 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57261
#line 57262 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57262
  friend class ::CCExprResolve;
 
57263
  friend class ::CExprResolve;
25894
57264
  friend class ::WinIfExists;
25895
57265
  friend class ::WinImportHandler;
25896
57266
  friend class ::WinMacros;
25897
 
  friend class ::CMatchSyntax;
25898
 
  friend class ::ExtGnu;
 
57267
  friend class ::WinAsm;
 
57268
  friend class ::WinDeclSpecs;
 
57269
  friend class ::WinMemberExplSpec;
 
57270
  friend class ::WinTypeKeywords;
 
57271
  friend class ::WinFriend;
25899
57272
  friend class ::ExtAC;
25900
57273
  friend class ::ExtACBuilderCoupling;
25901
57274
  friend class ::ExtACSyntaxCoupling;
25902
57275
  friend class ::ExtACTree;
25903
57276
  friend class ::ExtACKeywords;
25904
 
  friend class ::WinAsm;
25905
 
  friend class ::WinDeclSpecs;
25906
 
  friend class ::WinMemberExplSpec;
25907
 
  friend class ::WinTypeKeywords;
 
57277
  friend class ::ExtGnu;
25908
57278
  friend class ::PragmaOnceUnitState;
25909
57279
  friend class ::PragmaOnce;
25910
 
  friend class ::CCExprResolve;
25911
 
  friend class ::CExprResolve;
 
57280
  friend class ::CMatchSyntax;
25912
57281
 
25913
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57282
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25914
57283
 
25915
57284
  CTree *sons[2]; // keyword, extension
25916
57285
 
25917
57286
public:
25918
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
 
57287
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
57288
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25919
57289
  static const char *NodeId ();
 
57290
  /** Get the name of the node. Can be compared with NodeId(). */
25920
57291
  const char *NodeName () const { return NodeId (); }
 
57292
  /** Get the number of sons. */
25921
57293
  int Sons () const { return CTree::Sons (sons, 2); }
 
57294
  /** Get the n-th son.
 
57295
   *  \param n The index of the son.
 
57296
   *  \return The n-th son or NULL. */
25922
57297
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
57298
  /** Replace a son.
 
57299
   *  \param old_son The son to replace.
 
57300
   *  \param new_son The new son. */
25923
57301
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25924
57302
    CTree::ReplaceSon (sons, 2, old_son, new_son);
25925
57303
  }
25928
57306
};
25929
57307
 
25930
57308
 
25931
 
#line 25932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57309
#line 57310 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
25932
57310
} // closed Puma
 
57311
class CCExprResolve;
 
57312
class CExprResolve;
25933
57313
class WinIfExists;
25934
57314
class WinImportHandler;
25935
57315
class WinMacros;
25936
 
class CMatchSyntax;
25937
 
class ExtGnu;
 
57316
class WinAsm;
 
57317
class WinDeclSpecs;
 
57318
class WinMemberExplSpec;
 
57319
class WinTypeKeywords;
 
57320
class WinFriend;
25938
57321
class ExtAC;
25939
57322
class ExtACBuilderCoupling;
25940
57323
class ExtACSyntaxCoupling;
25941
57324
class ExtACTree;
25942
57325
class ExtACKeywords;
25943
 
class WinAsm;
25944
 
class WinDeclSpecs;
25945
 
class WinMemberExplSpec;
25946
 
class WinTypeKeywords;
 
57326
class ExtGnu;
25947
57327
class PragmaOnceUnitState;
25948
57328
class PragmaOnce;
25949
 
class CCExprResolve;
25950
 
class CExprResolve;
 
57329
class CMatchSyntax;
25951
57330
namespace Puma {
25952
57331
 
25953
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57332
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25954
57333
class CT_AnyList : public CT_Any {
25955
 
#line 25956 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57334
#line 57335 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57335
  friend class ::CCExprResolve;
 
57336
  friend class ::CExprResolve;
25956
57337
  friend class ::WinIfExists;
25957
57338
  friend class ::WinImportHandler;
25958
57339
  friend class ::WinMacros;
25959
 
  friend class ::CMatchSyntax;
25960
 
  friend class ::ExtGnu;
 
57340
  friend class ::WinAsm;
 
57341
  friend class ::WinDeclSpecs;
 
57342
  friend class ::WinMemberExplSpec;
 
57343
  friend class ::WinTypeKeywords;
 
57344
  friend class ::WinFriend;
25961
57345
  friend class ::ExtAC;
25962
57346
  friend class ::ExtACBuilderCoupling;
25963
57347
  friend class ::ExtACSyntaxCoupling;
25964
57348
  friend class ::ExtACTree;
25965
57349
  friend class ::ExtACKeywords;
25966
 
  friend class ::WinAsm;
25967
 
  friend class ::WinDeclSpecs;
25968
 
  friend class ::WinMemberExplSpec;
25969
 
  friend class ::WinTypeKeywords;
 
57350
  friend class ::ExtGnu;
25970
57351
  friend class ::PragmaOnceUnitState;
25971
57352
  friend class ::PragmaOnce;
25972
 
  friend class ::CCExprResolve;
25973
 
  friend class ::CExprResolve;
 
57353
  friend class ::CMatchSyntax;
25974
57354
 
25975
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57355
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25976
57356
 
25977
57357
public:
25978
57358
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
57359
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25979
57360
  static const char *NodeId ();
 
57361
  /** Get the name of the node. Can be compared with NodeId(). */
25980
57362
  const char *NodeName () const { return NodeId (); }
25981
57363
};
25982
57364
 
25983
57365
 
25984
 
#line 25985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57366
#line 57367 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
25985
57367
} // closed Puma
 
57368
class CCExprResolve;
 
57369
class CExprResolve;
25986
57370
class WinIfExists;
25987
57371
class WinImportHandler;
25988
57372
class WinMacros;
25989
 
class CMatchSyntax;
25990
 
class ExtGnu;
 
57373
class WinAsm;
 
57374
class WinDeclSpecs;
 
57375
class WinMemberExplSpec;
 
57376
class WinTypeKeywords;
 
57377
class WinFriend;
25991
57378
class ExtAC;
25992
57379
class ExtACBuilderCoupling;
25993
57380
class ExtACSyntaxCoupling;
25994
57381
class ExtACTree;
25995
57382
class ExtACKeywords;
25996
 
class WinAsm;
25997
 
class WinDeclSpecs;
25998
 
class WinMemberExplSpec;
25999
 
class WinTypeKeywords;
 
57383
class ExtGnu;
26000
57384
class PragmaOnceUnitState;
26001
57385
class PragmaOnce;
26002
 
class CCExprResolve;
26003
 
class CExprResolve;
 
57386
class CMatchSyntax;
26004
57387
namespace Puma {
26005
57388
 
26006
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57389
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26007
57390
class CT_AnyExtension : public CTree, public CSemValue {
26008
 
#line 26009 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57391
#line 57392 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57392
  friend class ::CCExprResolve;
 
57393
  friend class ::CExprResolve;
26009
57394
  friend class ::WinIfExists;
26010
57395
  friend class ::WinImportHandler;
26011
57396
  friend class ::WinMacros;
26012
 
  friend class ::CMatchSyntax;
26013
 
  friend class ::ExtGnu;
 
57397
  friend class ::WinAsm;
 
57398
  friend class ::WinDeclSpecs;
 
57399
  friend class ::WinMemberExplSpec;
 
57400
  friend class ::WinTypeKeywords;
 
57401
  friend class ::WinFriend;
26014
57402
  friend class ::ExtAC;
26015
57403
  friend class ::ExtACBuilderCoupling;
26016
57404
  friend class ::ExtACSyntaxCoupling;
26017
57405
  friend class ::ExtACTree;
26018
57406
  friend class ::ExtACKeywords;
26019
 
  friend class ::WinAsm;
26020
 
  friend class ::WinDeclSpecs;
26021
 
  friend class ::WinMemberExplSpec;
26022
 
  friend class ::WinTypeKeywords;
 
57407
  friend class ::ExtGnu;
26023
57408
  friend class ::PragmaOnceUnitState;
26024
57409
  friend class ::PragmaOnce;
26025
 
  friend class ::CCExprResolve;
26026
 
  friend class ::CExprResolve;
 
57410
  friend class ::CMatchSyntax;
26027
57411
 
26028
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57412
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26029
57413
 
26030
57414
  CTree *sons[5]; // open, string, comma, cond, close
26031
57415
 
26032
57416
public:
26033
57417
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
26034
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
 
57418
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
57419
    AddSon (sons[3], c); AddSon (sons[4], cr); 
26035
57420
  }
 
57421
  /** Get the identifier for this node type. Can be compared with NodeName(). */
26036
57422
  static const char *NodeId ();
 
57423
  /** Get the name of the node. Can be compared with NodeId(). */
26037
57424
  const char *NodeName () const { return NodeId (); }
 
57425
  /** Get the number of sons. */
26038
57426
  int Sons () const { return CTree::Sons (sons, 5); }
 
57427
  /** Get the n-th son.
 
57428
   *  \param n The index of the son.
 
57429
   *  \return The n-th son or NULL. */
26039
57430
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
57431
  /** Replace a son.
 
57432
   *  \param old_son The son to replace.
 
57433
   *  \param new_son The new son. */
26040
57434
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
26041
57435
    CTree::ReplaceSon (sons, 5, old_son, new_son);
26042
57436
  }
26050
57444
};
26051
57445
 
26052
57446
 
26053
 
#line 26054 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57447
#line 57448 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
26054
57448
} // closed Puma
 
57449
class CCExprResolve;
 
57450
class CExprResolve;
26055
57451
class WinIfExists;
26056
57452
class WinImportHandler;
26057
57453
class WinMacros;
26058
 
class CMatchSyntax;
26059
 
class ExtGnu;
 
57454
class WinAsm;
 
57455
class WinDeclSpecs;
 
57456
class WinMemberExplSpec;
 
57457
class WinTypeKeywords;
 
57458
class WinFriend;
26060
57459
class ExtAC;
26061
57460
class ExtACBuilderCoupling;
26062
57461
class ExtACSyntaxCoupling;
26063
57462
class ExtACTree;
26064
57463
class ExtACKeywords;
26065
 
class WinAsm;
26066
 
class WinDeclSpecs;
26067
 
class WinMemberExplSpec;
26068
 
class WinTypeKeywords;
 
57464
class ExtGnu;
26069
57465
class PragmaOnceUnitState;
26070
57466
class PragmaOnce;
26071
 
class CCExprResolve;
26072
 
class CExprResolve;
 
57467
class CMatchSyntax;
26073
57468
namespace Puma {
26074
57469
 
26075
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57470
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26076
57471
class CT_AnyCondition : public CTree {
26077
 
#line 26078 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57472
#line 57473 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57473
  friend class ::CCExprResolve;
 
57474
  friend class ::CExprResolve;
26078
57475
  friend class ::WinIfExists;
26079
57476
  friend class ::WinImportHandler;
26080
57477
  friend class ::WinMacros;
26081
 
  friend class ::CMatchSyntax;
26082
 
  friend class ::ExtGnu;
 
57478
  friend class ::WinAsm;
 
57479
  friend class ::WinDeclSpecs;
 
57480
  friend class ::WinMemberExplSpec;
 
57481
  friend class ::WinTypeKeywords;
 
57482
  friend class ::WinFriend;
26083
57483
  friend class ::ExtAC;
26084
57484
  friend class ::ExtACBuilderCoupling;
26085
57485
  friend class ::ExtACSyntaxCoupling;
26086
57486
  friend class ::ExtACTree;
26087
57487
  friend class ::ExtACKeywords;
26088
 
  friend class ::WinAsm;
26089
 
  friend class ::WinDeclSpecs;
26090
 
  friend class ::WinMemberExplSpec;
26091
 
  friend class ::WinTypeKeywords;
 
57488
  friend class ::ExtGnu;
26092
57489
  friend class ::PragmaOnceUnitState;
26093
57490
  friend class ::PragmaOnce;
26094
 
  friend class ::CCExprResolve;
26095
 
  friend class ::CExprResolve;
 
57491
  friend class ::CMatchSyntax;
26096
57492
 
26097
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57493
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26098
57494
 
26099
57495
  CTree *sons[3]; // arg1, arg2, arg3
26100
57496
 
26101
57497
public:
26102
57498
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
26103
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
 
57499
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
26104
57500
  }
 
57501
  /** Get the identifier for this node type. Can be compared with NodeName(). */
26105
57502
  static const char *NodeId ();
 
57503
  /** Get the name of the node. Can be compared with NodeId(). */
26106
57504
  const char *NodeName () const { return NodeId (); }
 
57505
  /** Get the number of sons. */
26107
57506
  int Sons () const { return CTree::Sons (sons, 3); }
 
57507
  /** Get the n-th son.
 
57508
   *  \param n The index of the son.
 
57509
   *  \return The n-th son or NULL. */
26108
57510
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
57511
  /** Replace a son.
 
57512
   *  \param old_son The son to replace.
 
57513
   *  \param new_son The new son. */
26109
57514
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
26110
57515
    CTree::ReplaceSon (sons, 3, old_son, new_son);
26111
57516
  }
26116
57521
 
26117
57522
#endif /* __CTree_h__ */
26118
57523
 
26119
 
#line 26120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
26120
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
26121
 
 
26122
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26123
 
 
26124
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
 
57524
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
26125
57525
namespace Puma {
26126
57526
 
26127
57527
 
26130
57530
class CTypeInfo;
26131
57531
 
26132
57532
 
26133
 
#line 26134 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57533
#line 57534 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
26134
57534
} // closed Puma
 
57535
class CCExprResolve;
 
57536
class CExprResolve;
26135
57537
class WinIfExists;
26136
57538
class WinImportHandler;
26137
57539
class WinMacros;
26138
 
class CMatchSyntax;
26139
 
class ExtGnu;
 
57540
class WinAsm;
 
57541
class WinDeclSpecs;
 
57542
class WinMemberExplSpec;
 
57543
class WinTypeKeywords;
 
57544
class WinFriend;
26140
57545
class ExtAC;
26141
57546
class ExtACBuilderCoupling;
26142
57547
class ExtACSyntaxCoupling;
26143
57548
class ExtACTree;
26144
57549
class ExtACKeywords;
26145
 
class WinAsm;
26146
 
class WinDeclSpecs;
26147
 
class WinMemberExplSpec;
26148
 
class WinTypeKeywords;
 
57550
class ExtGnu;
26149
57551
class PragmaOnceUnitState;
26150
57552
class PragmaOnce;
26151
 
class CCExprResolve;
26152
 
class CExprResolve;
 
57553
class CMatchSyntax;
26153
57554
namespace Puma {
26154
57555
 
26155
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
 
57556
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
26156
57557
class CSemVisitor : private CVisitor {
26157
 
#line 26158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57558
#line 57559 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57559
  friend class ::CCExprResolve;
 
57560
  friend class ::CExprResolve;
26158
57561
  friend class ::WinIfExists;
26159
57562
  friend class ::WinImportHandler;
26160
57563
  friend class ::WinMacros;
26161
 
  friend class ::CMatchSyntax;
26162
 
  friend class ::ExtGnu;
 
57564
  friend class ::WinAsm;
 
57565
  friend class ::WinDeclSpecs;
 
57566
  friend class ::WinMemberExplSpec;
 
57567
  friend class ::WinTypeKeywords;
 
57568
  friend class ::WinFriend;
26163
57569
  friend class ::ExtAC;
26164
57570
  friend class ::ExtACBuilderCoupling;
26165
57571
  friend class ::ExtACSyntaxCoupling;
26166
57572
  friend class ::ExtACTree;
26167
57573
  friend class ::ExtACKeywords;
26168
 
  friend class ::WinAsm;
26169
 
  friend class ::WinDeclSpecs;
26170
 
  friend class ::WinMemberExplSpec;
26171
 
  friend class ::WinTypeKeywords;
 
57574
  friend class ::ExtGnu;
26172
57575
  friend class ::PragmaOnceUnitState;
26173
57576
  friend class ::PragmaOnce;
26174
 
  friend class ::CCExprResolve;
26175
 
  friend class ::CExprResolve;
 
57577
  friend class ::CMatchSyntax;
26176
57578
 
26177
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
 
57579
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
26178
57580
 
26179
57581
protected:
26180
57582
  CStructure *current_scope;
26181
57583
  ErrorSink &err;
26182
57584
 
26183
57585
public:
26184
 
  CSemVisitor (ErrorSink &);
 
57586
  CSemVisitor (ErrorSink &, CStructure * = (CStructure*)0);
26185
57587
 
26186
57588
  void run (CTree *, CStructure * = (CStructure*)0);
26187
57589
  void configure (Config &) {}
 
57590
 
 
57591
  CTypeInfo *resolveExpr (CTree *, CTree *) const;
 
57592
  void resolveInit (CObjectInfo *info, CTree *, CTree *) const;
26188
57593
  
26189
57594
protected:
26190
57595
  void pre_visit (CTree *);
26228
57633
  void post_action (CT_WhileStmt *);
26229
57634
 
26230
57635
  CT_SimpleName *findName (CTree *) const;
26231
 
 
26232
 
public:
26233
 
  CTypeInfo *resolveExpr (CTree *, CTree *) const;
26234
 
  void resolveInit (CObjectInfo *info, CTree *, CTree *) const;
26235
 
 
26236
57636
};
26237
57637
 
26238
57638
} // namespace Puma
26239
57639
 
26240
57640
#endif /* __CSemVisitor_h__ */
26241
57641
 
26242
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
26243
 
 
26244
 
#line 26245 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
26245
 
 
26246
 
#line 4 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
26247
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CSemDeclSpecs_h__
26248
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CSemDeclSpecs_h__
26249
 
 
26250
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
26251
 
// This file is part of PUMA.
26252
 
// Copyright (C) 1999-2003  The PUMA developer team.
26253
 
//                                                                
26254
 
// This program is free software;  you can redistribute it and/or 
26255
 
// modify it under the terms of the GNU General Public License as 
26256
 
// published by the Free Software Foundation; either version 2 of 
26257
 
// the License, or (at your option) any later version.            
26258
 
//                                                                
26259
 
// This program is distributed in the hope that it will be useful,
26260
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
26261
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
26262
 
// GNU General Public License for more details.                   
26263
 
//                                                                
26264
 
// You should have received a copy of the GNU General Public      
26265
 
// License along with this program; if not, write to the Free     
26266
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
26267
 
// MA  02111-1307  USA                                            
26268
 
 
26269
 
#ifndef __c_sem_decl_specs_h__
26270
 
#define __c_sem_decl_specs_h__
26271
 
 
26272
 
 
26273
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26274
 
 
26275
 
#line 26276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
26276
 
 
26277
 
#ifndef __ac_fwd_ExtACTree__
26278
 
#define __ac_fwd_ExtACTree__
26279
 
class ExtACTree;
26280
 
namespace AC {
26281
 
  template <class JoinPoint>
26282
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
26283
 
  template <class JoinPoint>
26284
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
26285
 
}
26286
 
#endif
26287
 
 
26288
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
26289
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
26290
 
#endif
26291
 
 
26292
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26293
 
 
26294
 
#line 26295 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
26295
 
 
26296
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26297
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
26298
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
26299
 
 
26300
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26301
 
// This file is part of PUMA.
26302
 
// Copyright (C) 1999-2003  The PUMA developer team.
26303
 
//                                                                
26304
 
// This program is free software;  you can redistribute it and/or 
26305
 
// modify it under the terms of the GNU General Public License as 
26306
 
// published by the Free Software Foundation; either version 2 of 
26307
 
// the License, or (at your option) any later version.            
26308
 
//                                                                
26309
 
// This program is distributed in the hope that it will be useful,
26310
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
26311
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
26312
 
// GNU General Public License for more details.                   
26313
 
//                                                                
26314
 
// You should have received a copy of the GNU General Public      
26315
 
// License along with this program; if not, write to the Free     
26316
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
26317
 
// MA  02111-1307  USA                                            
26318
 
 
26319
 
#ifndef __CTree_h__
26320
 
#define __CTree_h__
26321
 
 
26322
 
namespace Puma {
26323
 
 
26324
 
 
26325
 
// Syntax tree node hierarchy:
26326
 
class CTree;
26327
 
class   CT_Statement;          
26328
 
class     CT_LabelStmt;
26329
 
class     CT_IfStmt;
26330
 
class     CT_IfElseStmt;
26331
 
class     CT_SwitchStmt;
26332
 
class     CT_BreakStmt;
26333
 
class     CT_ExprStmt;
26334
 
class     CT_WhileStmt;
26335
 
class     CT_DoStmt;
26336
 
class     CT_ForStmt;
26337
 
class     CT_ContinueStmt;
26338
 
class     CT_ReturnStmt;
26339
 
class     CT_GotoStmt;
26340
 
class     CT_DeclStmt;
26341
 
class     CT_CaseStmt;
26342
 
class     CT_DefaultStmt;
26343
 
class     CT_TryStmt;
26344
 
class   CT_Expression;
26345
 
class     CT_ThrowExpr;
26346
 
class     CT_NewExpr;
26347
 
class     CT_DeleteExpr;
26348
 
class     CT_ConstructExpr;
26349
 
class     CT_Integer;
26350
 
class     CT_Character;
26351
 
class       CT_WideCharacter;
26352
 
class     CT_Float;
26353
 
class     CT_Bool;
26354
 
class     CT_BracedExpr;
26355
 
class     CT_BinaryExpr;
26356
 
class       CT_MembPtrExpr;
26357
 
class         CT_MembRefExpr;
26358
 
class     CT_UnaryExpr;
26359
 
class       CT_PostfixExpr;
26360
 
class       CT_AddrExpr;
26361
 
class       CT_DerefExpr;
26362
 
class     CT_IfThenExpr;
26363
 
class     CT_CmpdLiteral;
26364
 
class     CT_IndexExpr;
26365
 
class     CT_CallExpr;
26366
 
class     CT_CastExpr;
26367
 
class     CT_StaticCast;
26368
 
class       CT_ConstCast;
26369
 
class       CT_ReintCast;
26370
 
class       CT_DynamicCast;
26371
 
class     CT_TypeidExpr;
26372
 
class     CT_SizeofExpr;
26373
 
class     CT_MembDesignator;
26374
 
class     CT_IndexDesignator;
26375
 
class     CT_ImplicitCast;
26376
 
class   CT_DeclSpec;
26377
 
class     CT_PrimDeclSpec;
26378
 
class     CT_NamedType;
26379
 
class     CT_ClassSpec;
26380
 
class       CT_UnionSpec;
26381
 
class       CT_EnumSpec;
26382
 
class     CT_ExceptionSpec;
26383
 
class   CT_Declarator;
26384
 
class     CT_InitDeclarator;
26385
 
class     CT_BracedDeclarator;
26386
 
class     CT_ArrayDeclarator;
26387
 
class     CT_FctDeclarator;
26388
 
class     CT_RefDeclarator;
26389
 
class     CT_PtrDeclarator;
26390
 
class     CT_MembPtrDeclarator;
26391
 
class     CT_BitFieldDeclarator;
26392
 
class   CT_Decl;
26393
 
class     CT_ObjDecl;
26394
 
class     CT_ArgDecl;
26395
 
class     CT_AccessDecl;
26396
 
class       CT_UsingDecl;
26397
 
class     CT_FctDef;
26398
 
class     CT_AsmDef;
26399
 
class     CT_EnumDef;
26400
 
class     CT_ClassDef;
26401
 
class       CT_UnionDef;
26402
 
class     CT_Enumerator;
26403
 
class     CT_LinkageSpec;
26404
 
class     CT_Handler;
26405
 
class     CT_TemplateDecl;
26406
 
class     CT_TemplateParamDecl;
26407
 
class       CT_TypeParamDecl;
26408
 
class       CT_NonTypeParamDecl;
26409
 
class     CT_NamespaceDef;
26410
 
class     CT_NamespaceAliasDef;
26411
 
class     CT_UsingDirective;
26412
 
class   CT_List;
26413
 
class     CT_CmpdStmt;
26414
 
class     CT_DeclSpecSeq;
26415
 
class     CT_HandlerSeq;
26416
 
class     CT_DesignatorSeq;
26417
 
class     CT_DeclList;
26418
 
class       CT_Program;
26419
 
class       CT_ArgDeclList;
26420
 
class         CT_ArgNameList;
26421
 
class       CT_ArgDeclSeq;
26422
 
class       CT_MembList;
26423
 
class     CT_ExprList;
26424
 
class     CT_DeclaratorList;
26425
 
class     CT_BaseSpecList;
26426
 
class     CT_MembInitList;
26427
 
class     CT_SimpleName;
26428
 
class       CT_SpecialName;
26429
 
class         CT_PrivateName;
26430
 
class         CT_OperatorName;
26431
 
class         CT_DestructorName;
26432
 
class         CT_ConversionName;
26433
 
class         CT_TemplateName;
26434
 
class       CT_QualName;
26435
 
class         CT_RootQualName;
26436
 
class     CT_String;
26437
 
class       CT_WideString;
26438
 
class     CT_TemplateParamList;
26439
 
class     CT_TemplateArgList;
26440
 
class   CT_Token;
26441
 
class   CT_Error;
26442
 
class   CT_Condition;
26443
 
class   CT_BaseSpec;
26444
 
class   CT_AccessSpec;
26445
 
class   CT_ArrayDelimiter;
26446
 
class   CT_Any;
26447
 
class   CT_AnyList;
26448
 
class   CT_AnyExtension;
26449
 
class   CT_AnyCondition;
26450
 
 
26451
 
 
26452
 
} // namespace Puma
26453
 
 
26454
 
#include "Puma/ErrorSeverity.h"
26455
 
#include "Puma/CSemObject.h"
26456
 
#include "Puma/CSemScope.h"
26457
 
#include "Puma/CSemValue.h"
26458
 
#include "Puma/CExprValue.h"
26459
 
#include "Puma/CStrLiteral.h"
26460
 
#include "Puma/CTypeInfo.h"
26461
 
#include "Puma/Printable.h"
26462
 
#include "Puma/CTokens.h"
26463
 
#include "Puma/Token.h"
26464
 
 
26465
 
#include <iostream>
26466
 
#include <string.h>
26467
 
using namespace std;
26468
 
 
26469
 
namespace Puma {
26470
 
 
26471
 
 
26472
 
class ErrorStream;
26473
 
class CObjectInfo;
26474
 
class CStructure;
26475
 
 
26476
 
/*****************************************************************************/
26477
 
/*                                                                           */
26478
 
/*                    S y n t a x  t r e e  n o d e s                        */
26479
 
/*                                                                           */
26480
 
/*****************************************************************************/
26481
 
 
26482
 
 
26483
 
#line 26484 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.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 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26506
 
class CTree {
26507
 
#line 26508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.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 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26528
 
 
26529
 
public:
26530
 
  /*DEBUG*/static int alloc;
26531
 
  /*DEBUG*/static int release;
26532
 
 
26533
 
protected:
26534
 
  CTree *Son (CTree * const *, int, int) const;
26535
 
  int Sons (CTree * const *, int) const;
26536
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
26537
 
  
26538
 
protected:
26539
 
  CTree () { /*DEBUG*/alloc++; }
26540
 
 
26541
 
public:
26542
 
  virtual ~CTree () { /*DEBUG*/release++; }
26543
 
  virtual int Sons () const = 0;
26544
 
  virtual CTree *Son (int n) const { return (CTree*)0; }
26545
 
  virtual const char *NodeName () const = 0;
26546
 
  virtual Token *token () const;
26547
 
  virtual Token *end_token () const;
26548
 
  virtual CT_Token *token_node () const;
26549
 
  virtual CT_Token *end_token_node () const;
26550
 
  virtual void ReplaceSon (CTree *, CTree *) {}
26551
 
 
26552
 
public: // semantic information
26553
 
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
26554
 
  virtual CExprValue *Value () const { return (CExprValue*)0; }
26555
 
  
26556
 
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
26557
 
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
26558
 
  
26559
 
public: // node classification function
26560
 
  virtual CT_SimpleName *IsSimpleName () { return 0; }
26561
 
  virtual CT_Declarator *IsDeclarator () { return 0; }
26562
 
   private:
26563
 
  typedef CTree CCExprResolveCTree;
26564
 
 
26565
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
26566
 
 public :
26567
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
26568
 
  typedef CTree CExprResolveCTree;
26569
 
 
26570
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
26571
 
 public :
26572
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
26573
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26574
 
};
26575
 
 
26576
 
 
26577
 
#line 26578 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
26578
 
} // closed Puma
26579
 
class WinIfExists;
26580
 
class WinImportHandler;
26581
 
class WinMacros;
26582
 
class CMatchSyntax;
26583
 
class ExtGnu;
26584
 
class ExtAC;
26585
 
class ExtACBuilderCoupling;
26586
 
class ExtACSyntaxCoupling;
26587
 
class ExtACTree;
26588
 
class ExtACKeywords;
26589
 
class WinAsm;
26590
 
class WinDeclSpecs;
26591
 
class WinMemberExplSpec;
26592
 
class WinTypeKeywords;
26593
 
class PragmaOnceUnitState;
26594
 
class PragmaOnce;
26595
 
class CCExprResolve;
26596
 
class CExprResolve;
26597
 
namespace Puma {
26598
 
 
26599
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26600
 
class CT_Error : public CTree {
26601
 
#line 26602 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
26602
 
  friend class ::WinIfExists;
26603
 
  friend class ::WinImportHandler;
26604
 
  friend class ::WinMacros;
26605
 
  friend class ::CMatchSyntax;
26606
 
  friend class ::ExtGnu;
26607
 
  friend class ::ExtAC;
26608
 
  friend class ::ExtACBuilderCoupling;
26609
 
  friend class ::ExtACSyntaxCoupling;
26610
 
  friend class ::ExtACTree;
26611
 
  friend class ::ExtACKeywords;
26612
 
  friend class ::WinAsm;
26613
 
  friend class ::WinDeclSpecs;
26614
 
  friend class ::WinMemberExplSpec;
26615
 
  friend class ::WinTypeKeywords;
26616
 
  friend class ::PragmaOnceUnitState;
26617
 
  friend class ::PragmaOnce;
26618
 
  friend class ::CCExprResolve;
26619
 
  friend class ::CExprResolve;
26620
 
 
26621
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26622
 
 
26623
 
public:
26624
 
  static const char *NodeId ();
26625
 
  const char *NodeName () const { return NodeId (); }
26626
 
  int Sons () const { return 0; }
26627
 
};
26628
 
 
26629
 
 
26630
 
#line 26631 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
26631
 
} // closed Puma
26632
 
class WinIfExists;
26633
 
class WinImportHandler;
26634
 
class WinMacros;
26635
 
class CMatchSyntax;
26636
 
class ExtGnu;
26637
 
class ExtAC;
26638
 
class ExtACBuilderCoupling;
26639
 
class ExtACSyntaxCoupling;
26640
 
class ExtACTree;
26641
 
class ExtACKeywords;
26642
 
class WinAsm;
26643
 
class WinDeclSpecs;
26644
 
class WinMemberExplSpec;
26645
 
class WinTypeKeywords;
26646
 
class PragmaOnceUnitState;
26647
 
class PragmaOnce;
26648
 
class CCExprResolve;
26649
 
class CExprResolve;
26650
 
namespace Puma {
26651
 
 
26652
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26653
 
class CT_Token : public CTree {
26654
 
#line 26655 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
26655
 
  friend class ::WinIfExists;
26656
 
  friend class ::WinImportHandler;
26657
 
  friend class ::WinMacros;
26658
 
  friend class ::CMatchSyntax;
26659
 
  friend class ::ExtGnu;
26660
 
  friend class ::ExtAC;
26661
 
  friend class ::ExtACBuilderCoupling;
26662
 
  friend class ::ExtACSyntaxCoupling;
26663
 
  friend class ::ExtACTree;
26664
 
  friend class ::ExtACKeywords;
26665
 
  friend class ::WinAsm;
26666
 
  friend class ::WinDeclSpecs;
26667
 
  friend class ::WinMemberExplSpec;
26668
 
  friend class ::WinTypeKeywords;
26669
 
  friend class ::PragmaOnceUnitState;
26670
 
  friend class ::PragmaOnce;
26671
 
  friend class ::CCExprResolve;
26672
 
  friend class ::CExprResolve;
26673
 
 
26674
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26675
 
 
26676
 
  Token *_token;
26677
 
  unsigned long int _number;
26678
 
  
26679
 
public:
26680
 
  CT_Token (Token *t, unsigned long int n = 0) : 
26681
 
    _token (t), _number (n) {}
26682
 
  static const char *NodeId ();
26683
 
  const char *NodeName () const { return NodeId (); }
26684
 
  int Sons () const { return 0; }
26685
 
  Token *token () const { return _token; }
26686
 
  Token *end_token () const { return _token; }
26687
 
  CT_Token *token_node () const { return (CT_Token*)this; }
26688
 
  CT_Token *end_token_node () const { return (CT_Token*)this; }
26689
 
  void Number (unsigned long int n) { _number = n; }
26690
 
  unsigned long int Number () const { return _number; }
26691
 
  // special new / delete with reusing memory
26692
 
  void *operator new (size_t);
26693
 
  void  operator delete (void *);
26694
 
};
26695
 
 
26696
 
/*****************************************************************************/
26697
 
/*                                                                           */
26698
 
/*                              List nodes                                   */
26699
 
/*                                                                           */
26700
 
/*****************************************************************************/
26701
 
 
26702
 
 
26703
 
#line 26704 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
26704
 
} // closed Puma
26705
 
class WinIfExists;
26706
 
class WinImportHandler;
26707
 
class WinMacros;
26708
 
class CMatchSyntax;
26709
 
class ExtGnu;
26710
 
class ExtAC;
26711
 
class ExtACBuilderCoupling;
26712
 
class ExtACSyntaxCoupling;
26713
 
class ExtACTree;
26714
 
class ExtACKeywords;
26715
 
class WinAsm;
26716
 
class WinDeclSpecs;
26717
 
class WinMemberExplSpec;
26718
 
class WinTypeKeywords;
26719
 
class PragmaOnceUnitState;
26720
 
class PragmaOnce;
26721
 
class CCExprResolve;
26722
 
class CExprResolve;
26723
 
namespace Puma {
26724
 
 
26725
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26726
 
class CT_List : public CTree {
26727
 
#line 26728 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
26728
 
  friend class ::WinIfExists;
26729
 
  friend class ::WinImportHandler;
26730
 
  friend class ::WinMacros;
26731
 
  friend class ::CMatchSyntax;
26732
 
  friend class ::ExtGnu;
26733
 
  friend class ::ExtAC;
26734
 
  friend class ::ExtACBuilderCoupling;
26735
 
  friend class ::ExtACSyntaxCoupling;
26736
 
  friend class ::ExtACTree;
26737
 
  friend class ::ExtACKeywords;
26738
 
  friend class ::WinAsm;
26739
 
  friend class ::WinDeclSpecs;
26740
 
  friend class ::WinMemberExplSpec;
26741
 
  friend class ::WinTypeKeywords;
26742
 
  friend class ::PragmaOnceUnitState;
26743
 
  friend class ::PragmaOnce;
26744
 
  friend class ::CCExprResolve;
26745
 
  friend class ::CExprResolve;
26746
 
 
26747
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26748
 
 
26749
 
  Array<CTree*> _sons;
26750
 
  int _properties;
26751
 
 
26752
 
protected:
26753
 
  CT_List(int size = 5, int incr = 5, int props = 0) : 
26754
 
    _sons (size, incr), _properties (props) {}
26755
 
 
26756
 
public:
26757
 
  enum {
26758
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
26759
 
    CLOSE = 2,
26760
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
26761
 
    SEPARATORS = 4,   // the list has separators like ','
26762
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
26763
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
26764
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
26765
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
26766
 
  };
26767
 
 
26768
 
  int Entries () const;
26769
 
  CTree *Entry (int no) const;
26770
 
  int Sons () const { return _sons.length (); }
26771
 
  CTree *Son (int n) const { return _sons.lookup (n); }
26772
 
  int GetProperties () const { return _properties; }
26773
 
  void AddProperties (int p) { _properties |= p; }
26774
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
26775
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
26776
 
  void InsertSon (CTree *, CTree *);  // before given son
26777
 
  void ReplaceSon (CTree *, CTree *);
26778
 
  void RemoveSon (CTree *);
26779
 
  void InsertSon (int idx, CTree *s)
26780
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
26781
 
  void ReplaceSon (int idx, CTree *s) 
26782
 
   { if (idx < Sons ()) _sons[idx] = s; }
26783
 
  void RemoveSon (int idx) 
26784
 
   { if (idx < Sons ()) _sons.remove (idx); }
26785
 
};
26786
 
 
26787
 
 
26788
 
#line 26789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
26789
 
} // closed Puma
26790
 
class WinIfExists;
26791
 
class WinImportHandler;
26792
 
class WinMacros;
26793
 
class CMatchSyntax;
26794
 
class ExtGnu;
26795
 
class ExtAC;
26796
 
class ExtACBuilderCoupling;
26797
 
class ExtACSyntaxCoupling;
26798
 
class ExtACTree;
26799
 
class ExtACKeywords;
26800
 
class WinAsm;
26801
 
class WinDeclSpecs;
26802
 
class WinMemberExplSpec;
26803
 
class WinTypeKeywords;
26804
 
class PragmaOnceUnitState;
26805
 
class PragmaOnce;
26806
 
class CCExprResolve;
26807
 
class CExprResolve;
26808
 
namespace Puma {
26809
 
 
26810
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26811
 
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
26812
 
#line 26813 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
26813
 
  friend class ::WinIfExists;
26814
 
  friend class ::WinImportHandler;
26815
 
  friend class ::WinMacros;
26816
 
  friend class ::CMatchSyntax;
26817
 
  friend class ::ExtGnu;
26818
 
  friend class ::ExtAC;
26819
 
  friend class ::ExtACBuilderCoupling;
26820
 
  friend class ::ExtACSyntaxCoupling;
26821
 
  friend class ::ExtACTree;
26822
 
  friend class ::ExtACKeywords;
26823
 
  friend class ::WinAsm;
26824
 
  friend class ::WinDeclSpecs;
26825
 
  friend class ::WinMemberExplSpec;
26826
 
  friend class ::WinTypeKeywords;
26827
 
  friend class ::PragmaOnceUnitState;
26828
 
  friend class ::PragmaOnce;
26829
 
  friend class ::CCExprResolve;
26830
 
  friend class ::CExprResolve;
26831
 
 
26832
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26833
 
 
26834
 
public:
26835
 
  CT_ExprList () { AddProperties (SEPARATORS); }
26836
 
  static const char *NodeId ();
26837
 
  const char *NodeName () const { return NodeId (); }
26838
 
 
26839
 
  CTypeInfo *Type () const { return type; }
26840
 
  CExprValue *Value () const { return value; }
26841
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
26842
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
26843
 
};
26844
 
 
26845
 
 
26846
 
#line 26847 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
26847
 
} // closed Puma
26848
 
class WinIfExists;
26849
 
class WinImportHandler;
26850
 
class WinMacros;
26851
 
class CMatchSyntax;
26852
 
class ExtGnu;
26853
 
class ExtAC;
26854
 
class ExtACBuilderCoupling;
26855
 
class ExtACSyntaxCoupling;
26856
 
class ExtACTree;
26857
 
class ExtACKeywords;
26858
 
class WinAsm;
26859
 
class WinDeclSpecs;
26860
 
class WinMemberExplSpec;
26861
 
class WinTypeKeywords;
26862
 
class PragmaOnceUnitState;
26863
 
class PragmaOnce;
26864
 
class CCExprResolve;
26865
 
class CExprResolve;
26866
 
namespace Puma {
26867
 
 
26868
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26869
 
class CT_DeclaratorList : public CT_List {
26870
 
#line 26871 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
26871
 
  friend class ::WinIfExists;
26872
 
  friend class ::WinImportHandler;
26873
 
  friend class ::WinMacros;
26874
 
  friend class ::CMatchSyntax;
26875
 
  friend class ::ExtGnu;
26876
 
  friend class ::ExtAC;
26877
 
  friend class ::ExtACBuilderCoupling;
26878
 
  friend class ::ExtACSyntaxCoupling;
26879
 
  friend class ::ExtACTree;
26880
 
  friend class ::ExtACKeywords;
26881
 
  friend class ::WinAsm;
26882
 
  friend class ::WinDeclSpecs;
26883
 
  friend class ::WinMemberExplSpec;
26884
 
  friend class ::WinTypeKeywords;
26885
 
  friend class ::PragmaOnceUnitState;
26886
 
  friend class ::PragmaOnce;
26887
 
  friend class ::CCExprResolve;
26888
 
  friend class ::CExprResolve;
26889
 
 
26890
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26891
 
 
26892
 
public:
26893
 
  static const char *NodeId ();
26894
 
  const char *NodeName () const { return NodeId (); }
26895
 
};
26896
 
 
26897
 
 
26898
 
#line 26899 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
26899
 
} // closed Puma
26900
 
class WinIfExists;
26901
 
class WinImportHandler;
26902
 
class WinMacros;
26903
 
class CMatchSyntax;
26904
 
class ExtGnu;
26905
 
class ExtAC;
26906
 
class ExtACBuilderCoupling;
26907
 
class ExtACSyntaxCoupling;
26908
 
class ExtACTree;
26909
 
class ExtACKeywords;
26910
 
class WinAsm;
26911
 
class WinDeclSpecs;
26912
 
class WinMemberExplSpec;
26913
 
class WinTypeKeywords;
26914
 
class PragmaOnceUnitState;
26915
 
class PragmaOnce;
26916
 
class CCExprResolve;
26917
 
class CExprResolve;
26918
 
namespace Puma {
26919
 
 
26920
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26921
 
class CT_EnumeratorList : public CT_List {
26922
 
#line 26923 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
26923
 
  friend class ::WinIfExists;
26924
 
  friend class ::WinImportHandler;
26925
 
  friend class ::WinMacros;
26926
 
  friend class ::CMatchSyntax;
26927
 
  friend class ::ExtGnu;
26928
 
  friend class ::ExtAC;
26929
 
  friend class ::ExtACBuilderCoupling;
26930
 
  friend class ::ExtACSyntaxCoupling;
26931
 
  friend class ::ExtACTree;
26932
 
  friend class ::ExtACKeywords;
26933
 
  friend class ::WinAsm;
26934
 
  friend class ::WinDeclSpecs;
26935
 
  friend class ::WinMemberExplSpec;
26936
 
  friend class ::WinTypeKeywords;
26937
 
  friend class ::PragmaOnceUnitState;
26938
 
  friend class ::PragmaOnce;
26939
 
  friend class ::CCExprResolve;
26940
 
  friend class ::CExprResolve;
26941
 
 
26942
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26943
 
 
26944
 
public:
26945
 
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
26946
 
  static const char *NodeId ();
26947
 
  const char *NodeName () const { return NodeId (); }
26948
 
};
26949
 
   
26950
 
 
26951
 
#line 26952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
26952
 
} // closed Puma
26953
 
class WinIfExists;
26954
 
class WinImportHandler;
26955
 
class WinMacros;
26956
 
class CMatchSyntax;
26957
 
class ExtGnu;
26958
 
class ExtAC;
26959
 
class ExtACBuilderCoupling;
26960
 
class ExtACSyntaxCoupling;
26961
 
class ExtACTree;
26962
 
class ExtACKeywords;
26963
 
class WinAsm;
26964
 
class WinDeclSpecs;
26965
 
class WinMemberExplSpec;
26966
 
class WinTypeKeywords;
26967
 
class PragmaOnceUnitState;
26968
 
class PragmaOnce;
26969
 
class CCExprResolve;
26970
 
class CExprResolve;
26971
 
namespace Puma {
26972
 
 
26973
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26974
 
class CT_DeclList : public CT_List {
26975
 
#line 26976 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
26976
 
  friend class ::WinIfExists;
26977
 
  friend class ::WinImportHandler;
26978
 
  friend class ::WinMacros;
26979
 
  friend class ::CMatchSyntax;
26980
 
  friend class ::ExtGnu;
26981
 
  friend class ::ExtAC;
26982
 
  friend class ::ExtACBuilderCoupling;
26983
 
  friend class ::ExtACSyntaxCoupling;
26984
 
  friend class ::ExtACTree;
26985
 
  friend class ::ExtACKeywords;
26986
 
  friend class ::WinAsm;
26987
 
  friend class ::WinDeclSpecs;
26988
 
  friend class ::WinMemberExplSpec;
26989
 
  friend class ::WinTypeKeywords;
26990
 
  friend class ::PragmaOnceUnitState;
26991
 
  friend class ::PragmaOnce;
26992
 
  friend class ::CCExprResolve;
26993
 
  friend class ::CExprResolve;
26994
 
 
26995
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
26996
 
 
26997
 
public:
26998
 
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
26999
 
  static const char *NodeId ();
27000
 
  const char *NodeName () const { return NodeId (); }
27001
 
  void Linkage (CT_LinkageSpec *l);
27002
 
};
27003
 
 
27004
 
 
27005
 
#line 27006 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27006
 
} // closed Puma
27007
 
class WinIfExists;
27008
 
class WinImportHandler;
27009
 
class WinMacros;
27010
 
class CMatchSyntax;
27011
 
class ExtGnu;
27012
 
class ExtAC;
27013
 
class ExtACBuilderCoupling;
27014
 
class ExtACSyntaxCoupling;
27015
 
class ExtACTree;
27016
 
class ExtACKeywords;
27017
 
class WinAsm;
27018
 
class WinDeclSpecs;
27019
 
class WinMemberExplSpec;
27020
 
class WinTypeKeywords;
27021
 
class PragmaOnceUnitState;
27022
 
class PragmaOnce;
27023
 
class CCExprResolve;
27024
 
class CExprResolve;
27025
 
namespace Puma {
27026
 
 
27027
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27028
 
class CT_DeclSpecSeq : public CT_List {
27029
 
#line 27030 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27030
 
  friend class ::WinIfExists;
27031
 
  friend class ::WinImportHandler;
27032
 
  friend class ::WinMacros;
27033
 
  friend class ::CMatchSyntax;
27034
 
  friend class ::ExtGnu;
27035
 
  friend class ::ExtAC;
27036
 
  friend class ::ExtACBuilderCoupling;
27037
 
  friend class ::ExtACSyntaxCoupling;
27038
 
  friend class ::ExtACTree;
27039
 
  friend class ::ExtACKeywords;
27040
 
  friend class ::WinAsm;
27041
 
  friend class ::WinDeclSpecs;
27042
 
  friend class ::WinMemberExplSpec;
27043
 
  friend class ::WinTypeKeywords;
27044
 
  friend class ::PragmaOnceUnitState;
27045
 
  friend class ::PragmaOnce;
27046
 
  friend class ::CCExprResolve;
27047
 
  friend class ::CExprResolve;
27048
 
 
27049
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27050
 
 
27051
 
public:
27052
 
  static const char *NodeId ();
27053
 
  const char *NodeName () const { return NodeId (); }
27054
 
};
27055
 
 
27056
 
 
27057
 
#line 27058 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27058
 
} // closed Puma
27059
 
class WinIfExists;
27060
 
class WinImportHandler;
27061
 
class WinMacros;
27062
 
class CMatchSyntax;
27063
 
class ExtGnu;
27064
 
class ExtAC;
27065
 
class ExtACBuilderCoupling;
27066
 
class ExtACSyntaxCoupling;
27067
 
class ExtACTree;
27068
 
class ExtACKeywords;
27069
 
class WinAsm;
27070
 
class WinDeclSpecs;
27071
 
class WinMemberExplSpec;
27072
 
class WinTypeKeywords;
27073
 
class PragmaOnceUnitState;
27074
 
class PragmaOnce;
27075
 
class CCExprResolve;
27076
 
class CExprResolve;
27077
 
namespace Puma {
27078
 
 
27079
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27080
 
class CT_CmpdStmt : public CT_List, public CSemScope {
27081
 
#line 27082 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27082
 
  friend class ::WinIfExists;
27083
 
  friend class ::WinImportHandler;
27084
 
  friend class ::WinMacros;
27085
 
  friend class ::CMatchSyntax;
27086
 
  friend class ::ExtGnu;
27087
 
  friend class ::ExtAC;
27088
 
  friend class ::ExtACBuilderCoupling;
27089
 
  friend class ::ExtACSyntaxCoupling;
27090
 
  friend class ::ExtACTree;
27091
 
  friend class ::ExtACKeywords;
27092
 
  friend class ::WinAsm;
27093
 
  friend class ::WinDeclSpecs;
27094
 
  friend class ::WinMemberExplSpec;
27095
 
  friend class ::WinTypeKeywords;
27096
 
  friend class ::PragmaOnceUnitState;
27097
 
  friend class ::PragmaOnce;
27098
 
  friend class ::CCExprResolve;
27099
 
  friend class ::CExprResolve;
27100
 
 
27101
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27102
 
 
27103
 
public:
27104
 
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
27105
 
  static const char *NodeId ();
27106
 
  const char *NodeName () const { return NodeId (); }
27107
 
};
27108
 
 
27109
 
 
27110
 
#line 27111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27111
 
} // closed Puma
27112
 
class WinIfExists;
27113
 
class WinImportHandler;
27114
 
class WinMacros;
27115
 
class CMatchSyntax;
27116
 
class ExtGnu;
27117
 
class ExtAC;
27118
 
class ExtACBuilderCoupling;
27119
 
class ExtACSyntaxCoupling;
27120
 
class ExtACTree;
27121
 
class ExtACKeywords;
27122
 
class WinAsm;
27123
 
class WinDeclSpecs;
27124
 
class WinMemberExplSpec;
27125
 
class WinTypeKeywords;
27126
 
class PragmaOnceUnitState;
27127
 
class PragmaOnce;
27128
 
class CCExprResolve;
27129
 
class CExprResolve;
27130
 
namespace Puma {
27131
 
 
27132
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27133
 
class CT_HandlerSeq : public CT_List {
27134
 
#line 27135 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27135
 
  friend class ::WinIfExists;
27136
 
  friend class ::WinImportHandler;
27137
 
  friend class ::WinMacros;
27138
 
  friend class ::CMatchSyntax;
27139
 
  friend class ::ExtGnu;
27140
 
  friend class ::ExtAC;
27141
 
  friend class ::ExtACBuilderCoupling;
27142
 
  friend class ::ExtACSyntaxCoupling;
27143
 
  friend class ::ExtACTree;
27144
 
  friend class ::ExtACKeywords;
27145
 
  friend class ::WinAsm;
27146
 
  friend class ::WinDeclSpecs;
27147
 
  friend class ::WinMemberExplSpec;
27148
 
  friend class ::WinTypeKeywords;
27149
 
  friend class ::PragmaOnceUnitState;
27150
 
  friend class ::PragmaOnce;
27151
 
  friend class ::CCExprResolve;
27152
 
  friend class ::CExprResolve;
27153
 
 
27154
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27155
 
 
27156
 
public:
27157
 
  static const char *NodeId ();
27158
 
  const char *NodeName () const { return NodeId (); }
27159
 
};
27160
 
 
27161
 
 
27162
 
#line 27163 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27163
 
} // closed Puma
27164
 
class WinIfExists;
27165
 
class WinImportHandler;
27166
 
class WinMacros;
27167
 
class CMatchSyntax;
27168
 
class ExtGnu;
27169
 
class ExtAC;
27170
 
class ExtACBuilderCoupling;
27171
 
class ExtACSyntaxCoupling;
27172
 
class ExtACTree;
27173
 
class ExtACKeywords;
27174
 
class WinAsm;
27175
 
class WinDeclSpecs;
27176
 
class WinMemberExplSpec;
27177
 
class WinTypeKeywords;
27178
 
class PragmaOnceUnitState;
27179
 
class PragmaOnce;
27180
 
class CCExprResolve;
27181
 
class CExprResolve;
27182
 
namespace Puma {
27183
 
 
27184
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27185
 
class CT_TemplateParamList : public CT_List, public CSemScope {
27186
 
#line 27187 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27187
 
  friend class ::WinIfExists;
27188
 
  friend class ::WinImportHandler;
27189
 
  friend class ::WinMacros;
27190
 
  friend class ::CMatchSyntax;
27191
 
  friend class ::ExtGnu;
27192
 
  friend class ::ExtAC;
27193
 
  friend class ::ExtACBuilderCoupling;
27194
 
  friend class ::ExtACSyntaxCoupling;
27195
 
  friend class ::ExtACTree;
27196
 
  friend class ::ExtACKeywords;
27197
 
  friend class ::WinAsm;
27198
 
  friend class ::WinDeclSpecs;
27199
 
  friend class ::WinMemberExplSpec;
27200
 
  friend class ::WinTypeKeywords;
27201
 
  friend class ::PragmaOnceUnitState;
27202
 
  friend class ::PragmaOnce;
27203
 
  friend class ::CCExprResolve;
27204
 
  friend class ::CExprResolve;
27205
 
 
27206
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27207
 
 
27208
 
public:
27209
 
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
27210
 
  static const char *NodeId ();
27211
 
  const char *NodeName () const { return NodeId (); }
27212
 
};
27213
 
 
27214
 
 
27215
 
#line 27216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27216
 
} // closed Puma
27217
 
class WinIfExists;
27218
 
class WinImportHandler;
27219
 
class WinMacros;
27220
 
class CMatchSyntax;
27221
 
class ExtGnu;
27222
 
class ExtAC;
27223
 
class ExtACBuilderCoupling;
27224
 
class ExtACSyntaxCoupling;
27225
 
class ExtACTree;
27226
 
class ExtACKeywords;
27227
 
class WinAsm;
27228
 
class WinDeclSpecs;
27229
 
class WinMemberExplSpec;
27230
 
class WinTypeKeywords;
27231
 
class PragmaOnceUnitState;
27232
 
class PragmaOnce;
27233
 
class CCExprResolve;
27234
 
class CExprResolve;
27235
 
namespace Puma {
27236
 
 
27237
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27238
 
class CT_TemplateArgList : public CT_List {
27239
 
#line 27240 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27240
 
  friend class ::WinIfExists;
27241
 
  friend class ::WinImportHandler;
27242
 
  friend class ::WinMacros;
27243
 
  friend class ::CMatchSyntax;
27244
 
  friend class ::ExtGnu;
27245
 
  friend class ::ExtAC;
27246
 
  friend class ::ExtACBuilderCoupling;
27247
 
  friend class ::ExtACSyntaxCoupling;
27248
 
  friend class ::ExtACTree;
27249
 
  friend class ::ExtACKeywords;
27250
 
  friend class ::WinAsm;
27251
 
  friend class ::WinDeclSpecs;
27252
 
  friend class ::WinMemberExplSpec;
27253
 
  friend class ::WinTypeKeywords;
27254
 
  friend class ::PragmaOnceUnitState;
27255
 
  friend class ::PragmaOnce;
27256
 
  friend class ::CCExprResolve;
27257
 
  friend class ::CExprResolve;
27258
 
 
27259
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27260
 
 
27261
 
public:
27262
 
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
27263
 
  static const char *NodeId ();
27264
 
  const char *NodeName () const { return NodeId (); }
27265
 
};
27266
 
 
27267
 
/*****************************************************************************/
27268
 
/*                                                                           */
27269
 
/*                              Expressions                                  */
27270
 
/*                                                                           */
27271
 
/*****************************************************************************/
27272
 
 
27273
 
 
27274
 
#line 27275 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27275
 
} // closed Puma
27276
 
class WinIfExists;
27277
 
class WinImportHandler;
27278
 
class WinMacros;
27279
 
class CMatchSyntax;
27280
 
class ExtGnu;
27281
 
class ExtAC;
27282
 
class ExtACBuilderCoupling;
27283
 
class ExtACSyntaxCoupling;
27284
 
class ExtACTree;
27285
 
class ExtACKeywords;
27286
 
class WinAsm;
27287
 
class WinDeclSpecs;
27288
 
class WinMemberExplSpec;
27289
 
class WinTypeKeywords;
27290
 
class PragmaOnceUnitState;
27291
 
class PragmaOnce;
27292
 
class CCExprResolve;
27293
 
class CExprResolve;
27294
 
namespace Puma {
27295
 
 
27296
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27297
 
class CT_Expression : public CTree, public CSemValue {
27298
 
#line 27299 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27299
 
  friend class ::WinIfExists;
27300
 
  friend class ::WinImportHandler;
27301
 
  friend class ::WinMacros;
27302
 
  friend class ::CMatchSyntax;
27303
 
  friend class ::ExtGnu;
27304
 
  friend class ::ExtAC;
27305
 
  friend class ::ExtACBuilderCoupling;
27306
 
  friend class ::ExtACSyntaxCoupling;
27307
 
  friend class ::ExtACTree;
27308
 
  friend class ::ExtACKeywords;
27309
 
  friend class ::WinAsm;
27310
 
  friend class ::WinDeclSpecs;
27311
 
  friend class ::WinMemberExplSpec;
27312
 
  friend class ::WinTypeKeywords;
27313
 
  friend class ::PragmaOnceUnitState;
27314
 
  friend class ::PragmaOnce;
27315
 
  friend class ::CCExprResolve;
27316
 
  friend class ::CExprResolve;
27317
 
 
27318
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27319
 
 
27320
 
protected:
27321
 
  CT_Expression () {}
27322
 
 
27323
 
public:
27324
 
  static const char *NodeId ();
27325
 
  const char *NodeName () const { return NodeId (); }
27326
 
  CTypeInfo *Type () const { return type; }
27327
 
  CExprValue *Value () const { return value; }
27328
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
27329
 
   private:
27330
 
  typedef CT_Expression CCExprResolveExpr;
27331
 
 
27332
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27333
 
 public :
27334
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27335
 
  typedef CT_Expression CExprResolveExpr;
27336
 
 
27337
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27338
 
 public :
27339
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27340
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27341
 
};
27342
 
 
27343
 
 
27344
 
#line 27345 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27345
 
} // closed Puma
27346
 
class WinIfExists;
27347
 
class WinImportHandler;
27348
 
class WinMacros;
27349
 
class CMatchSyntax;
27350
 
class ExtGnu;
27351
 
class ExtAC;
27352
 
class ExtACBuilderCoupling;
27353
 
class ExtACSyntaxCoupling;
27354
 
class ExtACTree;
27355
 
class ExtACKeywords;
27356
 
class WinAsm;
27357
 
class WinDeclSpecs;
27358
 
class WinMemberExplSpec;
27359
 
class WinTypeKeywords;
27360
 
class PragmaOnceUnitState;
27361
 
class PragmaOnce;
27362
 
class CCExprResolve;
27363
 
class CExprResolve;
27364
 
namespace Puma {
27365
 
 
27366
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27367
 
class CT_String : public CT_List, public CSemValue {
27368
 
#line 27369 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27369
 
  friend class ::WinIfExists;
27370
 
  friend class ::WinImportHandler;
27371
 
  friend class ::WinMacros;
27372
 
  friend class ::CMatchSyntax;
27373
 
  friend class ::ExtGnu;
27374
 
  friend class ::ExtAC;
27375
 
  friend class ::ExtACBuilderCoupling;
27376
 
  friend class ::ExtACSyntaxCoupling;
27377
 
  friend class ::ExtACTree;
27378
 
  friend class ::ExtACKeywords;
27379
 
  friend class ::WinAsm;
27380
 
  friend class ::WinDeclSpecs;
27381
 
  friend class ::WinMemberExplSpec;
27382
 
  friend class ::WinTypeKeywords;
27383
 
  friend class ::PragmaOnceUnitState;
27384
 
  friend class ::PragmaOnce;
27385
 
  friend class ::CCExprResolve;
27386
 
  friend class ::CExprResolve;
27387
 
 
27388
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27389
 
 
27390
 
public:
27391
 
  CT_String (int size) : CT_List (size, 1) {}
27392
 
  static const char *NodeId ();
27393
 
  const char *NodeName () const { return NodeId (); }
27394
 
 
27395
 
  CTypeInfo *Type () const { return type; }
27396
 
  CExprValue *Value () const { return value; }
27397
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
27398
 
   private:
27399
 
  typedef CT_String CCExprResolveExpr;
27400
 
 
27401
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27402
 
 public :
27403
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27404
 
  typedef CT_String CExprResolveExpr;
27405
 
 
27406
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27407
 
 public :
27408
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27409
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27410
 
};
27411
 
 
27412
 
 
27413
 
#line 27414 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27414
 
} // closed Puma
27415
 
class WinIfExists;
27416
 
class WinImportHandler;
27417
 
class WinMacros;
27418
 
class CMatchSyntax;
27419
 
class ExtGnu;
27420
 
class ExtAC;
27421
 
class ExtACBuilderCoupling;
27422
 
class ExtACSyntaxCoupling;
27423
 
class ExtACTree;
27424
 
class ExtACKeywords;
27425
 
class WinAsm;
27426
 
class WinDeclSpecs;
27427
 
class WinMemberExplSpec;
27428
 
class WinTypeKeywords;
27429
 
class PragmaOnceUnitState;
27430
 
class PragmaOnce;
27431
 
class CCExprResolve;
27432
 
class CExprResolve;
27433
 
namespace Puma {
27434
 
 
27435
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27436
 
class CT_WideString : public CT_String {
27437
 
#line 27438 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27438
 
  friend class ::WinIfExists;
27439
 
  friend class ::WinImportHandler;
27440
 
  friend class ::WinMacros;
27441
 
  friend class ::CMatchSyntax;
27442
 
  friend class ::ExtGnu;
27443
 
  friend class ::ExtAC;
27444
 
  friend class ::ExtACBuilderCoupling;
27445
 
  friend class ::ExtACSyntaxCoupling;
27446
 
  friend class ::ExtACTree;
27447
 
  friend class ::ExtACKeywords;
27448
 
  friend class ::WinAsm;
27449
 
  friend class ::WinDeclSpecs;
27450
 
  friend class ::WinMemberExplSpec;
27451
 
  friend class ::WinTypeKeywords;
27452
 
  friend class ::PragmaOnceUnitState;
27453
 
  friend class ::PragmaOnce;
27454
 
  friend class ::CCExprResolve;
27455
 
  friend class ::CExprResolve;
27456
 
 
27457
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27458
 
 
27459
 
public:
27460
 
  CT_WideString (int size) : CT_String (size) {}
27461
 
  static const char *NodeId ();
27462
 
  const char *NodeName () const { return NodeId (); }
27463
 
   private:
27464
 
  typedef CT_WideString CCExprResolveExpr;
27465
 
 
27466
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27467
 
 public :
27468
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27469
 
  typedef CT_WideString CExprResolveExpr;
27470
 
 
27471
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27472
 
 public :
27473
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27474
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27475
 
};
27476
 
 
27477
 
 
27478
 
#line 27479 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27479
 
} // closed Puma
27480
 
class WinIfExists;
27481
 
class WinImportHandler;
27482
 
class WinMacros;
27483
 
class CMatchSyntax;
27484
 
class ExtGnu;
27485
 
class ExtAC;
27486
 
class ExtACBuilderCoupling;
27487
 
class ExtACSyntaxCoupling;
27488
 
class ExtACTree;
27489
 
class ExtACKeywords;
27490
 
class WinAsm;
27491
 
class WinDeclSpecs;
27492
 
class WinMemberExplSpec;
27493
 
class WinTypeKeywords;
27494
 
class PragmaOnceUnitState;
27495
 
class PragmaOnce;
27496
 
class CCExprResolve;
27497
 
class CExprResolve;
27498
 
namespace Puma {
27499
 
 
27500
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27501
 
class CT_Integer : public CT_Expression {
27502
 
#line 27503 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27503
 
  friend class ::WinIfExists;
27504
 
  friend class ::WinImportHandler;
27505
 
  friend class ::WinMacros;
27506
 
  friend class ::CMatchSyntax;
27507
 
  friend class ::ExtGnu;
27508
 
  friend class ::ExtAC;
27509
 
  friend class ::ExtACBuilderCoupling;
27510
 
  friend class ::ExtACSyntaxCoupling;
27511
 
  friend class ::ExtACTree;
27512
 
  friend class ::ExtACKeywords;
27513
 
  friend class ::WinAsm;
27514
 
  friend class ::WinDeclSpecs;
27515
 
  friend class ::WinMemberExplSpec;
27516
 
  friend class ::WinTypeKeywords;
27517
 
  friend class ::PragmaOnceUnitState;
27518
 
  friend class ::PragmaOnce;
27519
 
  friend class ::CCExprResolve;
27520
 
  friend class ::CExprResolve;
27521
 
 
27522
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27523
 
 
27524
 
  CTree *_value;  // CT_Token
27525
 
 
27526
 
public:
27527
 
  CT_Integer (CTree *t) : _value (t) {}
27528
 
  static const char *NodeId ();
27529
 
  const char *NodeName () const { return NodeId (); }
27530
 
  int Sons () const { return _value ? 1 : 0; }
27531
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
27532
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
27533
 
   { if (old_son == _value) _value = new_son; }
27534
 
   private:
27535
 
  typedef CT_Integer CCExprResolveExpr;
27536
 
 
27537
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27538
 
 public :
27539
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27540
 
  typedef CT_Integer CExprResolveExpr;
27541
 
 
27542
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27543
 
 public :
27544
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27545
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27546
 
};
27547
 
 
27548
 
 
27549
 
#line 27550 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27550
 
} // closed Puma
27551
 
class WinIfExists;
27552
 
class WinImportHandler;
27553
 
class WinMacros;
27554
 
class CMatchSyntax;
27555
 
class ExtGnu;
27556
 
class ExtAC;
27557
 
class ExtACBuilderCoupling;
27558
 
class ExtACSyntaxCoupling;
27559
 
class ExtACTree;
27560
 
class ExtACKeywords;
27561
 
class WinAsm;
27562
 
class WinDeclSpecs;
27563
 
class WinMemberExplSpec;
27564
 
class WinTypeKeywords;
27565
 
class PragmaOnceUnitState;
27566
 
class PragmaOnce;
27567
 
class CCExprResolve;
27568
 
class CExprResolve;
27569
 
namespace Puma {
27570
 
 
27571
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27572
 
class CT_Character : public CT_Expression {
27573
 
#line 27574 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27574
 
  friend class ::WinIfExists;
27575
 
  friend class ::WinImportHandler;
27576
 
  friend class ::WinMacros;
27577
 
  friend class ::CMatchSyntax;
27578
 
  friend class ::ExtGnu;
27579
 
  friend class ::ExtAC;
27580
 
  friend class ::ExtACBuilderCoupling;
27581
 
  friend class ::ExtACSyntaxCoupling;
27582
 
  friend class ::ExtACTree;
27583
 
  friend class ::ExtACKeywords;
27584
 
  friend class ::WinAsm;
27585
 
  friend class ::WinDeclSpecs;
27586
 
  friend class ::WinMemberExplSpec;
27587
 
  friend class ::WinTypeKeywords;
27588
 
  friend class ::PragmaOnceUnitState;
27589
 
  friend class ::PragmaOnce;
27590
 
  friend class ::CCExprResolve;
27591
 
  friend class ::CExprResolve;
27592
 
 
27593
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27594
 
 
27595
 
  CTree *_value;  // CT_Token
27596
 
 
27597
 
public:
27598
 
  CT_Character (CTree *t) : _value (t) {}
27599
 
  static const char *NodeId ();
27600
 
  const char *NodeName () const { return NodeId (); }
27601
 
  int Sons () const { return 1; }
27602
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
27603
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
27604
 
   { if (old_son == _value) _value = new_son; }
27605
 
   private:
27606
 
  typedef CT_Character CCExprResolveExpr;
27607
 
 
27608
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27609
 
 public :
27610
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27611
 
  typedef CT_Character CExprResolveExpr;
27612
 
 
27613
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27614
 
 public :
27615
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27616
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27617
 
};
27618
 
 
27619
 
 
27620
 
#line 27621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27621
 
} // closed Puma
27622
 
class WinIfExists;
27623
 
class WinImportHandler;
27624
 
class WinMacros;
27625
 
class CMatchSyntax;
27626
 
class ExtGnu;
27627
 
class ExtAC;
27628
 
class ExtACBuilderCoupling;
27629
 
class ExtACSyntaxCoupling;
27630
 
class ExtACTree;
27631
 
class ExtACKeywords;
27632
 
class WinAsm;
27633
 
class WinDeclSpecs;
27634
 
class WinMemberExplSpec;
27635
 
class WinTypeKeywords;
27636
 
class PragmaOnceUnitState;
27637
 
class PragmaOnce;
27638
 
class CCExprResolve;
27639
 
class CExprResolve;
27640
 
namespace Puma {
27641
 
 
27642
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27643
 
class CT_WideCharacter : public CT_Character {
27644
 
#line 27645 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27645
 
  friend class ::WinIfExists;
27646
 
  friend class ::WinImportHandler;
27647
 
  friend class ::WinMacros;
27648
 
  friend class ::CMatchSyntax;
27649
 
  friend class ::ExtGnu;
27650
 
  friend class ::ExtAC;
27651
 
  friend class ::ExtACBuilderCoupling;
27652
 
  friend class ::ExtACSyntaxCoupling;
27653
 
  friend class ::ExtACTree;
27654
 
  friend class ::ExtACKeywords;
27655
 
  friend class ::WinAsm;
27656
 
  friend class ::WinDeclSpecs;
27657
 
  friend class ::WinMemberExplSpec;
27658
 
  friend class ::WinTypeKeywords;
27659
 
  friend class ::PragmaOnceUnitState;
27660
 
  friend class ::PragmaOnce;
27661
 
  friend class ::CCExprResolve;
27662
 
  friend class ::CExprResolve;
27663
 
 
27664
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27665
 
 
27666
 
  CTree *_value;  // CT_Token
27667
 
 
27668
 
public:
27669
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
27670
 
  static const char *NodeId ();
27671
 
  const char *NodeName () const { return NodeId (); }
27672
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
27673
 
   { if (old_son == _value) _value = new_son; }
27674
 
   private:
27675
 
  typedef CT_WideCharacter CCExprResolveExpr;
27676
 
 
27677
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27678
 
 public :
27679
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27680
 
  typedef CT_WideCharacter CExprResolveExpr;
27681
 
 
27682
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27683
 
 public :
27684
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27685
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27686
 
};
27687
 
 
27688
 
 
27689
 
#line 27690 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27690
 
} // closed Puma
27691
 
class WinIfExists;
27692
 
class WinImportHandler;
27693
 
class WinMacros;
27694
 
class CMatchSyntax;
27695
 
class ExtGnu;
27696
 
class ExtAC;
27697
 
class ExtACBuilderCoupling;
27698
 
class ExtACSyntaxCoupling;
27699
 
class ExtACTree;
27700
 
class ExtACKeywords;
27701
 
class WinAsm;
27702
 
class WinDeclSpecs;
27703
 
class WinMemberExplSpec;
27704
 
class WinTypeKeywords;
27705
 
class PragmaOnceUnitState;
27706
 
class PragmaOnce;
27707
 
class CCExprResolve;
27708
 
class CExprResolve;
27709
 
namespace Puma {
27710
 
 
27711
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27712
 
class CT_Float : public CT_Expression {
27713
 
#line 27714 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27714
 
  friend class ::WinIfExists;
27715
 
  friend class ::WinImportHandler;
27716
 
  friend class ::WinMacros;
27717
 
  friend class ::CMatchSyntax;
27718
 
  friend class ::ExtGnu;
27719
 
  friend class ::ExtAC;
27720
 
  friend class ::ExtACBuilderCoupling;
27721
 
  friend class ::ExtACSyntaxCoupling;
27722
 
  friend class ::ExtACTree;
27723
 
  friend class ::ExtACKeywords;
27724
 
  friend class ::WinAsm;
27725
 
  friend class ::WinDeclSpecs;
27726
 
  friend class ::WinMemberExplSpec;
27727
 
  friend class ::WinTypeKeywords;
27728
 
  friend class ::PragmaOnceUnitState;
27729
 
  friend class ::PragmaOnce;
27730
 
  friend class ::CCExprResolve;
27731
 
  friend class ::CExprResolve;
27732
 
 
27733
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27734
 
 
27735
 
  CTree *_value;  // CT_Token
27736
 
 
27737
 
public:
27738
 
  CT_Float (CTree *t) : _value (t) {}
27739
 
  static const char *NodeId ();
27740
 
  const char *NodeName () const { return NodeId (); }
27741
 
  int Sons () const { return 1; }
27742
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
27743
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
27744
 
   { if (old_son == _value) _value = new_son; }
27745
 
   private:
27746
 
  typedef CT_Float CCExprResolveExpr;
27747
 
 
27748
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27749
 
 public :
27750
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27751
 
  typedef CT_Float CExprResolveExpr;
27752
 
 
27753
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27754
 
 public :
27755
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27756
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27757
 
};
27758
 
 
27759
 
 
27760
 
#line 27761 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27761
 
} // closed Puma
27762
 
class WinIfExists;
27763
 
class WinImportHandler;
27764
 
class WinMacros;
27765
 
class CMatchSyntax;
27766
 
class ExtGnu;
27767
 
class ExtAC;
27768
 
class ExtACBuilderCoupling;
27769
 
class ExtACSyntaxCoupling;
27770
 
class ExtACTree;
27771
 
class ExtACKeywords;
27772
 
class WinAsm;
27773
 
class WinDeclSpecs;
27774
 
class WinMemberExplSpec;
27775
 
class WinTypeKeywords;
27776
 
class PragmaOnceUnitState;
27777
 
class PragmaOnce;
27778
 
class CCExprResolve;
27779
 
class CExprResolve;
27780
 
namespace Puma {
27781
 
 
27782
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27783
 
class CT_Bool : public CT_Expression {
27784
 
#line 27785 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27785
 
  friend class ::WinIfExists;
27786
 
  friend class ::WinImportHandler;
27787
 
  friend class ::WinMacros;
27788
 
  friend class ::CMatchSyntax;
27789
 
  friend class ::ExtGnu;
27790
 
  friend class ::ExtAC;
27791
 
  friend class ::ExtACBuilderCoupling;
27792
 
  friend class ::ExtACSyntaxCoupling;
27793
 
  friend class ::ExtACTree;
27794
 
  friend class ::ExtACKeywords;
27795
 
  friend class ::WinAsm;
27796
 
  friend class ::WinDeclSpecs;
27797
 
  friend class ::WinMemberExplSpec;
27798
 
  friend class ::WinTypeKeywords;
27799
 
  friend class ::PragmaOnceUnitState;
27800
 
  friend class ::PragmaOnce;
27801
 
  friend class ::CCExprResolve;
27802
 
  friend class ::CExprResolve;
27803
 
 
27804
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27805
 
 
27806
 
  CTree *_value;  // CT_Token
27807
 
 
27808
 
public:
27809
 
  CT_Bool (CTree *t) : _value (t) {}
27810
 
  static const char *NodeId ();
27811
 
  const char *NodeName () const { return NodeId (); }
27812
 
  int Sons () const { return 1; }
27813
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
27814
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
27815
 
   { if (old_son == _value) _value = new_son; }
27816
 
   private:
27817
 
  typedef CT_Bool CCExprResolveExpr;
27818
 
 
27819
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27820
 
 public :
27821
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27822
 
  typedef CT_Bool CExprResolveExpr;
27823
 
 
27824
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27825
 
 public :
27826
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27827
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27828
 
};
27829
 
 
27830
 
 
27831
 
#line 27832 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27832
 
} // closed Puma
27833
 
class WinIfExists;
27834
 
class WinImportHandler;
27835
 
class WinMacros;
27836
 
class CMatchSyntax;
27837
 
class ExtGnu;
27838
 
class ExtAC;
27839
 
class ExtACBuilderCoupling;
27840
 
class ExtACSyntaxCoupling;
27841
 
class ExtACTree;
27842
 
class ExtACKeywords;
27843
 
class WinAsm;
27844
 
class WinDeclSpecs;
27845
 
class WinMemberExplSpec;
27846
 
class WinTypeKeywords;
27847
 
class PragmaOnceUnitState;
27848
 
class PragmaOnce;
27849
 
class CCExprResolve;
27850
 
class CExprResolve;
27851
 
namespace Puma {
27852
 
 
27853
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27854
 
class CT_BracedExpr : public CT_Expression {
27855
 
#line 27856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27856
 
  friend class ::WinIfExists;
27857
 
  friend class ::WinImportHandler;
27858
 
  friend class ::WinMacros;
27859
 
  friend class ::CMatchSyntax;
27860
 
  friend class ::ExtGnu;
27861
 
  friend class ::ExtAC;
27862
 
  friend class ::ExtACBuilderCoupling;
27863
 
  friend class ::ExtACSyntaxCoupling;
27864
 
  friend class ::ExtACTree;
27865
 
  friend class ::ExtACKeywords;
27866
 
  friend class ::WinAsm;
27867
 
  friend class ::WinDeclSpecs;
27868
 
  friend class ::WinMemberExplSpec;
27869
 
  friend class ::WinTypeKeywords;
27870
 
  friend class ::PragmaOnceUnitState;
27871
 
  friend class ::PragmaOnce;
27872
 
  friend class ::CCExprResolve;
27873
 
  friend class ::CExprResolve;
27874
 
 
27875
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27876
 
 
27877
 
  CTree *sons[3]; // open, expr, close
27878
 
 
27879
 
public:
27880
 
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
27881
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
27882
 
  }
27883
 
  static const char *NodeId ();
27884
 
  const char *NodeName () const { return NodeId (); }
27885
 
  int Sons () const { return 3; }
27886
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
27887
 
  CTree *Expr () const { return sons[1]; }
27888
 
  CTypeInfo *Type () const { return Expr ()->Type (); }
27889
 
  CExprValue *Value () const { return Expr ()->Value (); }
27890
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
27891
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
27892
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
27893
 
  }
27894
 
   private:
27895
 
  typedef CT_BracedExpr CCExprResolveExpr;
27896
 
 
27897
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27898
 
 public :
27899
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27900
 
  typedef CT_BracedExpr CExprResolveExpr;
27901
 
 
27902
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27903
 
 public :
27904
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27905
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27906
 
};
27907
 
 
27908
 
 
27909
 
#line 27910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27910
 
} // closed Puma
27911
 
class WinIfExists;
27912
 
class WinImportHandler;
27913
 
class WinMacros;
27914
 
class CMatchSyntax;
27915
 
class ExtGnu;
27916
 
class ExtAC;
27917
 
class ExtACBuilderCoupling;
27918
 
class ExtACSyntaxCoupling;
27919
 
class ExtACTree;
27920
 
class ExtACKeywords;
27921
 
class WinAsm;
27922
 
class WinDeclSpecs;
27923
 
class WinMemberExplSpec;
27924
 
class WinTypeKeywords;
27925
 
class PragmaOnceUnitState;
27926
 
class PragmaOnce;
27927
 
class CCExprResolve;
27928
 
class CExprResolve;
27929
 
namespace Puma {
27930
 
 
27931
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27932
 
class CT_SimpleName : public CT_List, public Printable, 
27933
 
                      public CSemValue, public CSemObject {
27934
 
#line 27935 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27935
 
  friend class ::WinIfExists;
27936
 
  friend class ::WinImportHandler;
27937
 
  friend class ::WinMacros;
27938
 
  friend class ::CMatchSyntax;
27939
 
  friend class ::ExtGnu;
27940
 
  friend class ::ExtAC;
27941
 
  friend class ::ExtACBuilderCoupling;
27942
 
  friend class ::ExtACSyntaxCoupling;
27943
 
  friend class ::ExtACTree;
27944
 
  friend class ::ExtACKeywords;
27945
 
  friend class ::WinAsm;
27946
 
  friend class ::WinDeclSpecs;
27947
 
  friend class ::WinMemberExplSpec;
27948
 
  friend class ::WinTypeKeywords;
27949
 
  friend class ::PragmaOnceUnitState;
27950
 
  friend class ::PragmaOnce;
27951
 
  friend class ::CCExprResolve;
27952
 
  friend class ::CExprResolve;
27953
 
 
27954
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27955
 
 
27956
 
protected:
27957
 
  CT_SimpleName (int size) : CT_List (size, 1) {}
27958
 
  CT_SimpleName (int size, int properties) : 
27959
 
    CT_List (size, 2, properties) {}
27960
 
  
27961
 
public:
27962
 
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
27963
 
  static const char *NodeId ();
27964
 
  const char *NodeName () const { return NodeId (); }
27965
 
  virtual const char *Text () const 
27966
 
   { return Son (Sons ()-1)->token ()->text (); }
27967
 
  virtual void print (ostream &os) const { os << Text (); }
27968
 
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
27969
 
  CTypeInfo *Type () const { return type; }
27970
 
  CExprValue *Value () const { return value; }
27971
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
27972
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
27973
 
  // special new / delete with reusing memory
27974
 
  void *operator new (size_t);
27975
 
  void  operator delete (void *);
27976
 
  // classification function
27977
 
  virtual CT_SimpleName *IsSimpleName () { return this; }  
27978
 
   private:
27979
 
  typedef CT_SimpleName CCExprResolveExpr;
27980
 
 
27981
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27982
 
 public :
27983
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
27984
 
  typedef CT_SimpleName CExprResolveExpr;
27985
 
 
27986
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27987
 
 public :
27988
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27989
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27990
 
};
27991
 
 
27992
 
 
27993
 
#line 27994 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
27994
 
} // closed Puma
27995
 
class WinIfExists;
27996
 
class WinImportHandler;
27997
 
class WinMacros;
27998
 
class CMatchSyntax;
27999
 
class ExtGnu;
28000
 
class ExtAC;
28001
 
class ExtACBuilderCoupling;
28002
 
class ExtACSyntaxCoupling;
28003
 
class ExtACTree;
28004
 
class ExtACKeywords;
28005
 
class WinAsm;
28006
 
class WinDeclSpecs;
28007
 
class WinMemberExplSpec;
28008
 
class WinTypeKeywords;
28009
 
class PragmaOnceUnitState;
28010
 
class PragmaOnce;
28011
 
class CCExprResolve;
28012
 
class CExprResolve;
28013
 
namespace Puma {
28014
 
 
28015
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28016
 
class CT_SpecialName : public CT_SimpleName {
28017
 
#line 28018 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28018
 
  friend class ::WinIfExists;
28019
 
  friend class ::WinImportHandler;
28020
 
  friend class ::WinMacros;
28021
 
  friend class ::CMatchSyntax;
28022
 
  friend class ::ExtGnu;
28023
 
  friend class ::ExtAC;
28024
 
  friend class ::ExtACBuilderCoupling;
28025
 
  friend class ::ExtACSyntaxCoupling;
28026
 
  friend class ::ExtACTree;
28027
 
  friend class ::ExtACKeywords;
28028
 
  friend class ::WinAsm;
28029
 
  friend class ::WinDeclSpecs;
28030
 
  friend class ::WinMemberExplSpec;
28031
 
  friend class ::WinTypeKeywords;
28032
 
  friend class ::PragmaOnceUnitState;
28033
 
  friend class ::PragmaOnce;
28034
 
  friend class ::CCExprResolve;
28035
 
  friend class ::CExprResolve;
28036
 
 
28037
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28038
 
 
28039
 
  char *_name;
28040
 
  
28041
 
protected:
28042
 
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
28043
 
  
28044
 
public:
28045
 
  ~CT_SpecialName () { if (_name) delete[] _name; }
28046
 
  const char *Text () const { return _name; }
28047
 
  void Name (const char *n) { 
28048
 
    if (n) { 
28049
 
      _name = new char[strlen(n) + 1];
28050
 
      strcpy (_name,n);
28051
 
    }
28052
 
  }
28053
 
  // special new / delete with reusing memory
28054
 
  void *operator new (size_t);
28055
 
  void  operator delete (void *);
28056
 
   private:
28057
 
  typedef CT_SpecialName CCExprResolveExpr;
28058
 
 
28059
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28060
 
 public :
28061
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28062
 
  typedef CT_SpecialName CExprResolveExpr;
28063
 
 
28064
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28065
 
 public :
28066
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28067
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28068
 
};
28069
 
 
28070
 
 
28071
 
#line 28072 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28072
 
} // closed Puma
28073
 
class WinIfExists;
28074
 
class WinImportHandler;
28075
 
class WinMacros;
28076
 
class CMatchSyntax;
28077
 
class ExtGnu;
28078
 
class ExtAC;
28079
 
class ExtACBuilderCoupling;
28080
 
class ExtACSyntaxCoupling;
28081
 
class ExtACTree;
28082
 
class ExtACKeywords;
28083
 
class WinAsm;
28084
 
class WinDeclSpecs;
28085
 
class WinMemberExplSpec;
28086
 
class WinTypeKeywords;
28087
 
class PragmaOnceUnitState;
28088
 
class PragmaOnce;
28089
 
class CCExprResolve;
28090
 
class CExprResolve;
28091
 
namespace Puma {
28092
 
 
28093
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28094
 
class CT_PrivateName : public CT_SpecialName {
28095
 
#line 28096 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28096
 
  friend class ::WinIfExists;
28097
 
  friend class ::WinImportHandler;
28098
 
  friend class ::WinMacros;
28099
 
  friend class ::CMatchSyntax;
28100
 
  friend class ::ExtGnu;
28101
 
  friend class ::ExtAC;
28102
 
  friend class ::ExtACBuilderCoupling;
28103
 
  friend class ::ExtACSyntaxCoupling;
28104
 
  friend class ::ExtACTree;
28105
 
  friend class ::ExtACKeywords;
28106
 
  friend class ::WinAsm;
28107
 
  friend class ::WinDeclSpecs;
28108
 
  friend class ::WinMemberExplSpec;
28109
 
  friend class ::WinTypeKeywords;
28110
 
  friend class ::PragmaOnceUnitState;
28111
 
  friend class ::PragmaOnce;
28112
 
  friend class ::CCExprResolve;
28113
 
  friend class ::CExprResolve;
28114
 
 
28115
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28116
 
 
28117
 
public:
28118
 
  CT_PrivateName (const char *n) { Name (n); }
28119
 
  static const char *NodeId ();
28120
 
  const char *NodeName () const { return NodeId (); }
28121
 
  int Sons () const { return 0; }
28122
 
  CTree *Son (int n) const { return (CTree*)0; }
28123
 
  // special new / delete with reusing memory
28124
 
  void *operator new (size_t);
28125
 
  void  operator delete (void *);
28126
 
   private:
28127
 
  typedef CT_PrivateName CCExprResolveExpr;
28128
 
 
28129
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28130
 
 public :
28131
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28132
 
  typedef CT_PrivateName CExprResolveExpr;
28133
 
 
28134
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28135
 
 public :
28136
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28137
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28138
 
};
28139
 
 
28140
 
 
28141
 
#line 28142 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28142
 
} // closed Puma
28143
 
class WinIfExists;
28144
 
class WinImportHandler;
28145
 
class WinMacros;
28146
 
class CMatchSyntax;
28147
 
class ExtGnu;
28148
 
class ExtAC;
28149
 
class ExtACBuilderCoupling;
28150
 
class ExtACSyntaxCoupling;
28151
 
class ExtACTree;
28152
 
class ExtACKeywords;
28153
 
class WinAsm;
28154
 
class WinDeclSpecs;
28155
 
class WinMemberExplSpec;
28156
 
class WinTypeKeywords;
28157
 
class PragmaOnceUnitState;
28158
 
class PragmaOnce;
28159
 
class CCExprResolve;
28160
 
class CExprResolve;
28161
 
namespace Puma {
28162
 
 
28163
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28164
 
class CT_DestructorName : public CT_SpecialName {
28165
 
#line 28166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28166
 
  friend class ::WinIfExists;
28167
 
  friend class ::WinImportHandler;
28168
 
  friend class ::WinMacros;
28169
 
  friend class ::CMatchSyntax;
28170
 
  friend class ::ExtGnu;
28171
 
  friend class ::ExtAC;
28172
 
  friend class ::ExtACBuilderCoupling;
28173
 
  friend class ::ExtACSyntaxCoupling;
28174
 
  friend class ::ExtACTree;
28175
 
  friend class ::ExtACKeywords;
28176
 
  friend class ::WinAsm;
28177
 
  friend class ::WinDeclSpecs;
28178
 
  friend class ::WinMemberExplSpec;
28179
 
  friend class ::WinTypeKeywords;
28180
 
  friend class ::PragmaOnceUnitState;
28181
 
  friend class ::PragmaOnce;
28182
 
  friend class ::CCExprResolve;
28183
 
  friend class ::CExprResolve;
28184
 
 
28185
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28186
 
 
28187
 
public:
28188
 
  CT_DestructorName (CTree *, CTree *);
28189
 
  static const char *NodeId ();
28190
 
  const char *NodeName () const { return NodeId (); }
28191
 
  // special new / delete with reusing memory
28192
 
  void *operator new (size_t);
28193
 
  void  operator delete (void *);
28194
 
   private:
28195
 
  typedef CT_DestructorName CCExprResolveExpr;
28196
 
 
28197
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28198
 
 public :
28199
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28200
 
  typedef CT_DestructorName CExprResolveExpr;
28201
 
 
28202
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28203
 
 public :
28204
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28205
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28206
 
};
28207
 
 
28208
 
 
28209
 
#line 28210 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28210
 
} // closed Puma
28211
 
class WinIfExists;
28212
 
class WinImportHandler;
28213
 
class WinMacros;
28214
 
class CMatchSyntax;
28215
 
class ExtGnu;
28216
 
class ExtAC;
28217
 
class ExtACBuilderCoupling;
28218
 
class ExtACSyntaxCoupling;
28219
 
class ExtACTree;
28220
 
class ExtACKeywords;
28221
 
class WinAsm;
28222
 
class WinDeclSpecs;
28223
 
class WinMemberExplSpec;
28224
 
class WinTypeKeywords;
28225
 
class PragmaOnceUnitState;
28226
 
class PragmaOnce;
28227
 
class CCExprResolve;
28228
 
class CExprResolve;
28229
 
namespace Puma {
28230
 
 
28231
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28232
 
class CT_TemplateName : public CT_SpecialName {
28233
 
#line 28234 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28234
 
  friend class ::WinIfExists;
28235
 
  friend class ::WinImportHandler;
28236
 
  friend class ::WinMacros;
28237
 
  friend class ::CMatchSyntax;
28238
 
  friend class ::ExtGnu;
28239
 
  friend class ::ExtAC;
28240
 
  friend class ::ExtACBuilderCoupling;
28241
 
  friend class ::ExtACSyntaxCoupling;
28242
 
  friend class ::ExtACTree;
28243
 
  friend class ::ExtACKeywords;
28244
 
  friend class ::WinAsm;
28245
 
  friend class ::WinDeclSpecs;
28246
 
  friend class ::WinMemberExplSpec;
28247
 
  friend class ::WinTypeKeywords;
28248
 
  friend class ::PragmaOnceUnitState;
28249
 
  friend class ::PragmaOnce;
28250
 
  friend class ::CCExprResolve;
28251
 
  friend class ::CExprResolve;
28252
 
 
28253
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28254
 
 
28255
 
public:
28256
 
  CT_TemplateName (CTree *n, CTree *a) 
28257
 
   { AddSon (n); AddSon (a); }
28258
 
  static const char *NodeId ();
28259
 
  const char *NodeName () const { return NodeId (); }
28260
 
  CT_TemplateArgList *Arguments () const 
28261
 
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
28262
 
  CT_SimpleName *TemplateName () const 
28263
 
   { return (CT_SimpleName*)Son (Sons ()-2); }
28264
 
  // may change in the future
28265
 
  const char *Text () const { return TemplateName ()->Text (); }
28266
 
  // special new / delete with reusing memory
28267
 
  void *operator new (size_t);
28268
 
  void  operator delete (void *);
28269
 
   private:
28270
 
  typedef CT_TemplateName CCExprResolveExpr;
28271
 
 
28272
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28273
 
 public :
28274
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28275
 
  typedef CT_TemplateName CExprResolveExpr;
28276
 
 
28277
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28278
 
 public :
28279
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28280
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28281
 
};
28282
 
 
28283
 
 
28284
 
#line 28285 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28285
 
} // closed Puma
28286
 
class WinIfExists;
28287
 
class WinImportHandler;
28288
 
class WinMacros;
28289
 
class CMatchSyntax;
28290
 
class ExtGnu;
28291
 
class ExtAC;
28292
 
class ExtACBuilderCoupling;
28293
 
class ExtACSyntaxCoupling;
28294
 
class ExtACTree;
28295
 
class ExtACKeywords;
28296
 
class WinAsm;
28297
 
class WinDeclSpecs;
28298
 
class WinMemberExplSpec;
28299
 
class WinTypeKeywords;
28300
 
class PragmaOnceUnitState;
28301
 
class PragmaOnce;
28302
 
class CCExprResolve;
28303
 
class CExprResolve;
28304
 
namespace Puma {
28305
 
 
28306
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28307
 
class CT_OperatorName : public CT_SpecialName {
28308
 
#line 28309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28309
 
  friend class ::WinIfExists;
28310
 
  friend class ::WinImportHandler;
28311
 
  friend class ::WinMacros;
28312
 
  friend class ::CMatchSyntax;
28313
 
  friend class ::ExtGnu;
28314
 
  friend class ::ExtAC;
28315
 
  friend class ::ExtACBuilderCoupling;
28316
 
  friend class ::ExtACSyntaxCoupling;
28317
 
  friend class ::ExtACTree;
28318
 
  friend class ::ExtACKeywords;
28319
 
  friend class ::WinAsm;
28320
 
  friend class ::WinDeclSpecs;
28321
 
  friend class ::WinMemberExplSpec;
28322
 
  friend class ::WinTypeKeywords;
28323
 
  friend class ::PragmaOnceUnitState;
28324
 
  friend class ::PragmaOnce;
28325
 
  friend class ::CCExprResolve;
28326
 
  friend class ::CExprResolve;
28327
 
 
28328
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28329
 
 
28330
 
  int _oper;
28331
 
 
28332
 
public:
28333
 
  enum { // complex operators
28334
 
    FCT_CALL = -100,
28335
 
    SUBSCRIPT,
28336
 
    NEW_ARRAY,
28337
 
    DEL_ARRAY
28338
 
  };
28339
 
 
28340
 
public:
28341
 
  CT_OperatorName (CTree *);
28342
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
28343
 
  static const char *NodeId ();
28344
 
  const char *NodeName () const { return NodeId (); }
28345
 
  int Operator () const { return _oper; }
28346
 
  // special new / delete with reusing memory
28347
 
  void *operator new (size_t);
28348
 
  void  operator delete (void *);
28349
 
   private:
28350
 
  typedef CT_OperatorName CCExprResolveExpr;
28351
 
 
28352
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28353
 
 public :
28354
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28355
 
  typedef CT_OperatorName CExprResolveExpr;
28356
 
 
28357
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28358
 
 public :
28359
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28360
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28361
 
};
28362
 
 
28363
 
 
28364
 
#line 28365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28365
 
} // closed Puma
28366
 
class WinIfExists;
28367
 
class WinImportHandler;
28368
 
class WinMacros;
28369
 
class CMatchSyntax;
28370
 
class ExtGnu;
28371
 
class ExtAC;
28372
 
class ExtACBuilderCoupling;
28373
 
class ExtACSyntaxCoupling;
28374
 
class ExtACTree;
28375
 
class ExtACKeywords;
28376
 
class WinAsm;
28377
 
class WinDeclSpecs;
28378
 
class WinMemberExplSpec;
28379
 
class WinTypeKeywords;
28380
 
class PragmaOnceUnitState;
28381
 
class PragmaOnce;
28382
 
class CCExprResolve;
28383
 
class CExprResolve;
28384
 
namespace Puma {
28385
 
 
28386
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28387
 
class CT_ConversionName : public CT_SpecialName {
28388
 
#line 28389 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28389
 
  friend class ::WinIfExists;
28390
 
  friend class ::WinImportHandler;
28391
 
  friend class ::WinMacros;
28392
 
  friend class ::CMatchSyntax;
28393
 
  friend class ::ExtGnu;
28394
 
  friend class ::ExtAC;
28395
 
  friend class ::ExtACBuilderCoupling;
28396
 
  friend class ::ExtACSyntaxCoupling;
28397
 
  friend class ::ExtACTree;
28398
 
  friend class ::ExtACKeywords;
28399
 
  friend class ::WinAsm;
28400
 
  friend class ::WinDeclSpecs;
28401
 
  friend class ::WinMemberExplSpec;
28402
 
  friend class ::WinTypeKeywords;
28403
 
  friend class ::PragmaOnceUnitState;
28404
 
  friend class ::PragmaOnce;
28405
 
  friend class ::CCExprResolve;
28406
 
  friend class ::CExprResolve;
28407
 
 
28408
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28409
 
 
28410
 
public:
28411
 
  CT_ConversionName (CTree *, CTree *);
28412
 
  static const char *NodeId ();
28413
 
  const char *NodeName () const { return NodeId (); }
28414
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
28415
 
  // special new / delete with reusing memory
28416
 
  void *operator new (size_t);
28417
 
  void  operator delete (void *);
28418
 
   private:
28419
 
  typedef CT_ConversionName CCExprResolveExpr;
28420
 
 
28421
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28422
 
 public :
28423
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28424
 
  typedef CT_ConversionName CExprResolveExpr;
28425
 
 
28426
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28427
 
 public :
28428
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28429
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28430
 
};
28431
 
 
28432
 
 
28433
 
#line 28434 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28434
 
} // closed Puma
28435
 
class WinIfExists;
28436
 
class WinImportHandler;
28437
 
class WinMacros;
28438
 
class CMatchSyntax;
28439
 
class ExtGnu;
28440
 
class ExtAC;
28441
 
class ExtACBuilderCoupling;
28442
 
class ExtACSyntaxCoupling;
28443
 
class ExtACTree;
28444
 
class ExtACKeywords;
28445
 
class WinAsm;
28446
 
class WinDeclSpecs;
28447
 
class WinMemberExplSpec;
28448
 
class WinTypeKeywords;
28449
 
class PragmaOnceUnitState;
28450
 
class PragmaOnce;
28451
 
class CCExprResolve;
28452
 
class CExprResolve;
28453
 
namespace Puma {
28454
 
 
28455
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28456
 
class CT_QualName : public CT_SimpleName {
28457
 
#line 28458 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28458
 
  friend class ::WinIfExists;
28459
 
  friend class ::WinImportHandler;
28460
 
  friend class ::WinMacros;
28461
 
  friend class ::CMatchSyntax;
28462
 
  friend class ::ExtGnu;
28463
 
  friend class ::ExtAC;
28464
 
  friend class ::ExtACBuilderCoupling;
28465
 
  friend class ::ExtACSyntaxCoupling;
28466
 
  friend class ::ExtACTree;
28467
 
  friend class ::ExtACKeywords;
28468
 
  friend class ::WinAsm;
28469
 
  friend class ::WinDeclSpecs;
28470
 
  friend class ::WinMemberExplSpec;
28471
 
  friend class ::WinTypeKeywords;
28472
 
  friend class ::PragmaOnceUnitState;
28473
 
  friend class ::PragmaOnce;
28474
 
  friend class ::CCExprResolve;
28475
 
  friend class ::CExprResolve;
28476
 
 
28477
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28478
 
 
28479
 
public:
28480
 
  CT_QualName (int size = 3) : 
28481
 
    CT_SimpleName (size, CT_List::SEPARATORS) {}
28482
 
  static const char *NodeId ();
28483
 
  const char *NodeName () const { return NodeId (); }
28484
 
  void print (ostream &) const;
28485
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
28486
 
  const char *Text () const { return Name ()->Text (); }
28487
 
  CTypeInfo *Type () const { return Name ()->Type (); }
28488
 
  CExprValue *Value () const { return Name ()->Value (); }
28489
 
  CSemValue *SemValue () const { return Name ()->SemValue (); }
28490
 
  CSemObject *SemObject () const { return Name ()->SemObject (); }
28491
 
  // special new / delete with reusing memory
28492
 
  void *operator new (size_t);
28493
 
  void  operator delete (void *);
28494
 
   private:
28495
 
  typedef CT_QualName CCExprResolveExpr;
28496
 
 
28497
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28498
 
 public :
28499
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28500
 
  typedef CT_QualName CExprResolveExpr;
28501
 
 
28502
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28503
 
 public :
28504
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28505
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28506
 
};
28507
 
 
28508
 
 
28509
 
#line 28510 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28510
 
} // closed Puma
28511
 
class WinIfExists;
28512
 
class WinImportHandler;
28513
 
class WinMacros;
28514
 
class CMatchSyntax;
28515
 
class ExtGnu;
28516
 
class ExtAC;
28517
 
class ExtACBuilderCoupling;
28518
 
class ExtACSyntaxCoupling;
28519
 
class ExtACTree;
28520
 
class ExtACKeywords;
28521
 
class WinAsm;
28522
 
class WinDeclSpecs;
28523
 
class WinMemberExplSpec;
28524
 
class WinTypeKeywords;
28525
 
class PragmaOnceUnitState;
28526
 
class PragmaOnce;
28527
 
class CCExprResolve;
28528
 
class CExprResolve;
28529
 
namespace Puma {
28530
 
 
28531
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28532
 
class CT_RootQualName : public CT_QualName {
28533
 
#line 28534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28534
 
  friend class ::WinIfExists;
28535
 
  friend class ::WinImportHandler;
28536
 
  friend class ::WinMacros;
28537
 
  friend class ::CMatchSyntax;
28538
 
  friend class ::ExtGnu;
28539
 
  friend class ::ExtAC;
28540
 
  friend class ::ExtACBuilderCoupling;
28541
 
  friend class ::ExtACSyntaxCoupling;
28542
 
  friend class ::ExtACTree;
28543
 
  friend class ::ExtACKeywords;
28544
 
  friend class ::WinAsm;
28545
 
  friend class ::WinDeclSpecs;
28546
 
  friend class ::WinMemberExplSpec;
28547
 
  friend class ::WinTypeKeywords;
28548
 
  friend class ::PragmaOnceUnitState;
28549
 
  friend class ::PragmaOnce;
28550
 
  friend class ::CCExprResolve;
28551
 
  friend class ::CExprResolve;
28552
 
 
28553
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28554
 
 
28555
 
public:
28556
 
  CT_RootQualName (int size = 2) : 
28557
 
    CT_QualName (size) { AddProperties (INTRO); }
28558
 
  static const char *NodeId ();
28559
 
  const char *NodeName () const { return NodeId (); }
28560
 
  // special new / delete with reusing memory
28561
 
  void *operator new (size_t);
28562
 
  void  operator delete (void *);
28563
 
   private:
28564
 
  typedef CT_RootQualName CCExprResolveExpr;
28565
 
 
28566
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28567
 
 public :
28568
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28569
 
  typedef CT_RootQualName CExprResolveExpr;
28570
 
 
28571
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28572
 
 public :
28573
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28574
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28575
 
};
28576
 
 
28577
 
 
28578
 
#line 28579 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28579
 
} // closed Puma
28580
 
class WinIfExists;
28581
 
class WinImportHandler;
28582
 
class WinMacros;
28583
 
class CMatchSyntax;
28584
 
class ExtGnu;
28585
 
class ExtAC;
28586
 
class ExtACBuilderCoupling;
28587
 
class ExtACSyntaxCoupling;
28588
 
class ExtACTree;
28589
 
class ExtACKeywords;
28590
 
class WinAsm;
28591
 
class WinDeclSpecs;
28592
 
class WinMemberExplSpec;
28593
 
class WinTypeKeywords;
28594
 
class PragmaOnceUnitState;
28595
 
class PragmaOnce;
28596
 
class CCExprResolve;
28597
 
class CExprResolve;
28598
 
namespace Puma {
28599
 
 
28600
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28601
 
class CT_BinaryExpr : public CT_Expression {
28602
 
#line 28603 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28603
 
  friend class ::WinIfExists;
28604
 
  friend class ::WinImportHandler;
28605
 
  friend class ::WinMacros;
28606
 
  friend class ::CMatchSyntax;
28607
 
  friend class ::ExtGnu;
28608
 
  friend class ::ExtAC;
28609
 
  friend class ::ExtACBuilderCoupling;
28610
 
  friend class ::ExtACSyntaxCoupling;
28611
 
  friend class ::ExtACTree;
28612
 
  friend class ::ExtACKeywords;
28613
 
  friend class ::WinAsm;
28614
 
  friend class ::WinDeclSpecs;
28615
 
  friend class ::WinMemberExplSpec;
28616
 
  friend class ::WinTypeKeywords;
28617
 
  friend class ::PragmaOnceUnitState;
28618
 
  friend class ::PragmaOnce;
28619
 
  friend class ::CCExprResolve;
28620
 
  friend class ::CExprResolve;
28621
 
 
28622
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28623
 
 
28624
 
  CTree *sons[3]; // expr, oper, expr
28625
 
 
28626
 
public:
28627
 
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
28628
 
    sons[0] = l; sons[1] = o; sons[2] = r;
28629
 
  }
28630
 
  static const char *NodeId ();
28631
 
  const char *NodeName () const { return NodeId (); }
28632
 
  int Sons () const { return 3; }
28633
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
28634
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
28635
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
28636
 
  }
28637
 
   private:
28638
 
  typedef CT_BinaryExpr CCExprResolveExpr;
28639
 
 
28640
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28641
 
 public :
28642
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28643
 
  typedef CT_BinaryExpr CExprResolveExpr;
28644
 
 
28645
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28646
 
 public :
28647
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28648
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28649
 
};
28650
 
 
28651
 
 
28652
 
#line 28653 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28653
 
} // closed Puma
28654
 
class WinIfExists;
28655
 
class WinImportHandler;
28656
 
class WinMacros;
28657
 
class CMatchSyntax;
28658
 
class ExtGnu;
28659
 
class ExtAC;
28660
 
class ExtACBuilderCoupling;
28661
 
class ExtACSyntaxCoupling;
28662
 
class ExtACTree;
28663
 
class ExtACKeywords;
28664
 
class WinAsm;
28665
 
class WinDeclSpecs;
28666
 
class WinMemberExplSpec;
28667
 
class WinTypeKeywords;
28668
 
class PragmaOnceUnitState;
28669
 
class PragmaOnce;
28670
 
class CCExprResolve;
28671
 
class CExprResolve;
28672
 
namespace Puma {
28673
 
 
28674
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28675
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
28676
 
#line 28677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28677
 
  friend class ::WinIfExists;
28678
 
  friend class ::WinImportHandler;
28679
 
  friend class ::WinMacros;
28680
 
  friend class ::CMatchSyntax;
28681
 
  friend class ::ExtGnu;
28682
 
  friend class ::ExtAC;
28683
 
  friend class ::ExtACBuilderCoupling;
28684
 
  friend class ::ExtACSyntaxCoupling;
28685
 
  friend class ::ExtACTree;
28686
 
  friend class ::ExtACKeywords;
28687
 
  friend class ::WinAsm;
28688
 
  friend class ::WinDeclSpecs;
28689
 
  friend class ::WinMemberExplSpec;
28690
 
  friend class ::WinTypeKeywords;
28691
 
  friend class ::PragmaOnceUnitState;
28692
 
  friend class ::PragmaOnce;
28693
 
  friend class ::CCExprResolve;
28694
 
  friend class ::CExprResolve;
28695
 
 
28696
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28697
 
 
28698
 
public:
28699
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
28700
 
    CT_BinaryExpr (e, o, i) {}
28701
 
  static const char *NodeId ();
28702
 
  const char *NodeName () const { return NodeId (); }
28703
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
28704
 
   private:
28705
 
  typedef CT_MembPtrExpr CCExprResolveExpr;
28706
 
 
28707
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28708
 
 public :
28709
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28710
 
  typedef CT_MembPtrExpr CExprResolveExpr;
28711
 
 
28712
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28713
 
 public :
28714
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28715
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28716
 
};
28717
 
 
28718
 
 
28719
 
#line 28720 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28720
 
} // closed Puma
28721
 
class WinIfExists;
28722
 
class WinImportHandler;
28723
 
class WinMacros;
28724
 
class CMatchSyntax;
28725
 
class ExtGnu;
28726
 
class ExtAC;
28727
 
class ExtACBuilderCoupling;
28728
 
class ExtACSyntaxCoupling;
28729
 
class ExtACTree;
28730
 
class ExtACKeywords;
28731
 
class WinAsm;
28732
 
class WinDeclSpecs;
28733
 
class WinMemberExplSpec;
28734
 
class WinTypeKeywords;
28735
 
class PragmaOnceUnitState;
28736
 
class PragmaOnce;
28737
 
class CCExprResolve;
28738
 
class CExprResolve;
28739
 
namespace Puma {
28740
 
 
28741
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28742
 
class CT_MembRefExpr : public CT_MembPtrExpr {
28743
 
#line 28744 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28744
 
  friend class ::WinIfExists;
28745
 
  friend class ::WinImportHandler;
28746
 
  friend class ::WinMacros;
28747
 
  friend class ::CMatchSyntax;
28748
 
  friend class ::ExtGnu;
28749
 
  friend class ::ExtAC;
28750
 
  friend class ::ExtACBuilderCoupling;
28751
 
  friend class ::ExtACSyntaxCoupling;
28752
 
  friend class ::ExtACTree;
28753
 
  friend class ::ExtACKeywords;
28754
 
  friend class ::WinAsm;
28755
 
  friend class ::WinDeclSpecs;
28756
 
  friend class ::WinMemberExplSpec;
28757
 
  friend class ::WinTypeKeywords;
28758
 
  friend class ::PragmaOnceUnitState;
28759
 
  friend class ::PragmaOnce;
28760
 
  friend class ::CCExprResolve;
28761
 
  friend class ::CExprResolve;
28762
 
 
28763
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28764
 
 
28765
 
public:
28766
 
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
28767
 
    CT_MembPtrExpr (e, o, i) {}
28768
 
  static const char *NodeId ();
28769
 
  const char *NodeName () const { return NodeId (); }
28770
 
   private:
28771
 
  typedef CT_MembRefExpr CCExprResolveExpr;
28772
 
 
28773
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28774
 
 public :
28775
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28776
 
  typedef CT_MembRefExpr CExprResolveExpr;
28777
 
 
28778
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28779
 
 public :
28780
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28781
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28782
 
};
28783
 
 
28784
 
 
28785
 
#line 28786 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28786
 
} // closed Puma
28787
 
class WinIfExists;
28788
 
class WinImportHandler;
28789
 
class WinMacros;
28790
 
class CMatchSyntax;
28791
 
class ExtGnu;
28792
 
class ExtAC;
28793
 
class ExtACBuilderCoupling;
28794
 
class ExtACSyntaxCoupling;
28795
 
class ExtACTree;
28796
 
class ExtACKeywords;
28797
 
class WinAsm;
28798
 
class WinDeclSpecs;
28799
 
class WinMemberExplSpec;
28800
 
class WinTypeKeywords;
28801
 
class PragmaOnceUnitState;
28802
 
class PragmaOnce;
28803
 
class CCExprResolve;
28804
 
class CExprResolve;
28805
 
namespace Puma {
28806
 
 
28807
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28808
 
class CT_UnaryExpr : public CT_Expression {
28809
 
#line 28810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28810
 
  friend class ::WinIfExists;
28811
 
  friend class ::WinImportHandler;
28812
 
  friend class ::WinMacros;
28813
 
  friend class ::CMatchSyntax;
28814
 
  friend class ::ExtGnu;
28815
 
  friend class ::ExtAC;
28816
 
  friend class ::ExtACBuilderCoupling;
28817
 
  friend class ::ExtACSyntaxCoupling;
28818
 
  friend class ::ExtACTree;
28819
 
  friend class ::ExtACKeywords;
28820
 
  friend class ::WinAsm;
28821
 
  friend class ::WinDeclSpecs;
28822
 
  friend class ::WinMemberExplSpec;
28823
 
  friend class ::WinTypeKeywords;
28824
 
  friend class ::PragmaOnceUnitState;
28825
 
  friend class ::PragmaOnce;
28826
 
  friend class ::CCExprResolve;
28827
 
  friend class ::CExprResolve;
28828
 
 
28829
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28830
 
 
28831
 
  CTree *sons[2]; // oper, expr
28832
 
 
28833
 
public:
28834
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
28835
 
  static const char *NodeId ();
28836
 
  const char *NodeName () const { return NodeId (); }
28837
 
  int Sons () const { return 2; }
28838
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
28839
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
28840
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
28841
 
  }
28842
 
  CTree *Expr () const { return sons[1]; }
28843
 
   private:
28844
 
  typedef CT_UnaryExpr CCExprResolveExpr;
28845
 
 
28846
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28847
 
 public :
28848
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28849
 
  typedef CT_UnaryExpr CExprResolveExpr;
28850
 
 
28851
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28852
 
 public :
28853
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28854
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28855
 
};
28856
 
 
28857
 
 
28858
 
#line 28859 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28859
 
} // closed Puma
28860
 
class WinIfExists;
28861
 
class WinImportHandler;
28862
 
class WinMacros;
28863
 
class CMatchSyntax;
28864
 
class ExtGnu;
28865
 
class ExtAC;
28866
 
class ExtACBuilderCoupling;
28867
 
class ExtACSyntaxCoupling;
28868
 
class ExtACTree;
28869
 
class ExtACKeywords;
28870
 
class WinAsm;
28871
 
class WinDeclSpecs;
28872
 
class WinMemberExplSpec;
28873
 
class WinTypeKeywords;
28874
 
class PragmaOnceUnitState;
28875
 
class PragmaOnce;
28876
 
class CCExprResolve;
28877
 
class CExprResolve;
28878
 
namespace Puma {
28879
 
 
28880
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28881
 
class CT_PostfixExpr : public CT_UnaryExpr {
28882
 
#line 28883 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28883
 
  friend class ::WinIfExists;
28884
 
  friend class ::WinImportHandler;
28885
 
  friend class ::WinMacros;
28886
 
  friend class ::CMatchSyntax;
28887
 
  friend class ::ExtGnu;
28888
 
  friend class ::ExtAC;
28889
 
  friend class ::ExtACBuilderCoupling;
28890
 
  friend class ::ExtACSyntaxCoupling;
28891
 
  friend class ::ExtACTree;
28892
 
  friend class ::ExtACKeywords;
28893
 
  friend class ::WinAsm;
28894
 
  friend class ::WinDeclSpecs;
28895
 
  friend class ::WinMemberExplSpec;
28896
 
  friend class ::WinTypeKeywords;
28897
 
  friend class ::PragmaOnceUnitState;
28898
 
  friend class ::PragmaOnce;
28899
 
  friend class ::CCExprResolve;
28900
 
  friend class ::CExprResolve;
28901
 
 
28902
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28903
 
 
28904
 
public:
28905
 
  CT_PostfixExpr (CTree *e, CTree *o) :
28906
 
    CT_UnaryExpr (e, o) {}
28907
 
  static const char *NodeId ();
28908
 
  const char *NodeName () const { return NodeId (); }
28909
 
   private:
28910
 
  typedef CT_PostfixExpr CCExprResolveExpr;
28911
 
 
28912
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28913
 
 public :
28914
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28915
 
  typedef CT_PostfixExpr CExprResolveExpr;
28916
 
 
28917
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28918
 
 public :
28919
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28920
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28921
 
};
28922
 
 
28923
 
 
28924
 
#line 28925 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28925
 
} // closed Puma
28926
 
class WinIfExists;
28927
 
class WinImportHandler;
28928
 
class WinMacros;
28929
 
class CMatchSyntax;
28930
 
class ExtGnu;
28931
 
class ExtAC;
28932
 
class ExtACBuilderCoupling;
28933
 
class ExtACSyntaxCoupling;
28934
 
class ExtACTree;
28935
 
class ExtACKeywords;
28936
 
class WinAsm;
28937
 
class WinDeclSpecs;
28938
 
class WinMemberExplSpec;
28939
 
class WinTypeKeywords;
28940
 
class PragmaOnceUnitState;
28941
 
class PragmaOnce;
28942
 
class CCExprResolve;
28943
 
class CExprResolve;
28944
 
namespace Puma {
28945
 
 
28946
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28947
 
class CT_AddrExpr : public CT_UnaryExpr {
28948
 
#line 28949 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28949
 
  friend class ::WinIfExists;
28950
 
  friend class ::WinImportHandler;
28951
 
  friend class ::WinMacros;
28952
 
  friend class ::CMatchSyntax;
28953
 
  friend class ::ExtGnu;
28954
 
  friend class ::ExtAC;
28955
 
  friend class ::ExtACBuilderCoupling;
28956
 
  friend class ::ExtACSyntaxCoupling;
28957
 
  friend class ::ExtACTree;
28958
 
  friend class ::ExtACKeywords;
28959
 
  friend class ::WinAsm;
28960
 
  friend class ::WinDeclSpecs;
28961
 
  friend class ::WinMemberExplSpec;
28962
 
  friend class ::WinTypeKeywords;
28963
 
  friend class ::PragmaOnceUnitState;
28964
 
  friend class ::PragmaOnce;
28965
 
  friend class ::CCExprResolve;
28966
 
  friend class ::CExprResolve;
28967
 
 
28968
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28969
 
 
28970
 
public:
28971
 
  CT_AddrExpr (CTree *o, CTree *e) :
28972
 
    CT_UnaryExpr (o, e) {}
28973
 
  static const char *NodeId ();
28974
 
  const char *NodeName () const { return NodeId (); }
28975
 
   private:
28976
 
  typedef CT_AddrExpr CCExprResolveExpr;
28977
 
 
28978
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
28979
 
 public :
28980
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
28981
 
  typedef CT_AddrExpr CExprResolveExpr;
28982
 
 
28983
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
28984
 
 public :
28985
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
28986
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28987
 
};
28988
 
 
28989
 
 
28990
 
#line 28991 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
28991
 
} // closed Puma
28992
 
class WinIfExists;
28993
 
class WinImportHandler;
28994
 
class WinMacros;
28995
 
class CMatchSyntax;
28996
 
class ExtGnu;
28997
 
class ExtAC;
28998
 
class ExtACBuilderCoupling;
28999
 
class ExtACSyntaxCoupling;
29000
 
class ExtACTree;
29001
 
class ExtACKeywords;
29002
 
class WinAsm;
29003
 
class WinDeclSpecs;
29004
 
class WinMemberExplSpec;
29005
 
class WinTypeKeywords;
29006
 
class PragmaOnceUnitState;
29007
 
class PragmaOnce;
29008
 
class CCExprResolve;
29009
 
class CExprResolve;
29010
 
namespace Puma {
29011
 
 
29012
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29013
 
class CT_DerefExpr : public CT_UnaryExpr {
29014
 
#line 29015 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29015
 
  friend class ::WinIfExists;
29016
 
  friend class ::WinImportHandler;
29017
 
  friend class ::WinMacros;
29018
 
  friend class ::CMatchSyntax;
29019
 
  friend class ::ExtGnu;
29020
 
  friend class ::ExtAC;
29021
 
  friend class ::ExtACBuilderCoupling;
29022
 
  friend class ::ExtACSyntaxCoupling;
29023
 
  friend class ::ExtACTree;
29024
 
  friend class ::ExtACKeywords;
29025
 
  friend class ::WinAsm;
29026
 
  friend class ::WinDeclSpecs;
29027
 
  friend class ::WinMemberExplSpec;
29028
 
  friend class ::WinTypeKeywords;
29029
 
  friend class ::PragmaOnceUnitState;
29030
 
  friend class ::PragmaOnce;
29031
 
  friend class ::CCExprResolve;
29032
 
  friend class ::CExprResolve;
29033
 
 
29034
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29035
 
 
29036
 
public:
29037
 
  CT_DerefExpr (CTree *o, CTree *e) :
29038
 
    CT_UnaryExpr (o, e) {}
29039
 
  static const char *NodeId ();
29040
 
  const char *NodeName () const { return NodeId (); }
29041
 
   private:
29042
 
  typedef CT_DerefExpr CCExprResolveExpr;
29043
 
 
29044
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29045
 
 public :
29046
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
29047
 
  typedef CT_DerefExpr CExprResolveExpr;
29048
 
 
29049
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29050
 
 public :
29051
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29052
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29053
 
};
29054
 
 
29055
 
 
29056
 
#line 29057 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29057
 
} // closed Puma
29058
 
class WinIfExists;
29059
 
class WinImportHandler;
29060
 
class WinMacros;
29061
 
class CMatchSyntax;
29062
 
class ExtGnu;
29063
 
class ExtAC;
29064
 
class ExtACBuilderCoupling;
29065
 
class ExtACSyntaxCoupling;
29066
 
class ExtACTree;
29067
 
class ExtACKeywords;
29068
 
class WinAsm;
29069
 
class WinDeclSpecs;
29070
 
class WinMemberExplSpec;
29071
 
class WinTypeKeywords;
29072
 
class PragmaOnceUnitState;
29073
 
class PragmaOnce;
29074
 
class CCExprResolve;
29075
 
class CExprResolve;
29076
 
namespace Puma {
29077
 
 
29078
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29079
 
class CT_DeleteExpr : public CT_Expression, public CSemObject {
29080
 
#line 29081 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29081
 
  friend class ::WinIfExists;
29082
 
  friend class ::WinImportHandler;
29083
 
  friend class ::WinMacros;
29084
 
  friend class ::CMatchSyntax;
29085
 
  friend class ::ExtGnu;
29086
 
  friend class ::ExtAC;
29087
 
  friend class ::ExtACBuilderCoupling;
29088
 
  friend class ::ExtACSyntaxCoupling;
29089
 
  friend class ::ExtACTree;
29090
 
  friend class ::ExtACKeywords;
29091
 
  friend class ::WinAsm;
29092
 
  friend class ::WinDeclSpecs;
29093
 
  friend class ::WinMemberExplSpec;
29094
 
  friend class ::WinTypeKeywords;
29095
 
  friend class ::PragmaOnceUnitState;
29096
 
  friend class ::PragmaOnce;
29097
 
  friend class ::CCExprResolve;
29098
 
  friend class ::CExprResolve;
29099
 
 
29100
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29101
 
 
29102
 
  CTree *sons[2]; // oper, expr
29103
 
 
29104
 
public:
29105
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
29106
 
  static const char *NodeId ();
29107
 
  const char *NodeName () const { return NodeId (); }
29108
 
  int Sons () const { return 2; }
29109
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
29110
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29111
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
29112
 
  }
29113
 
  CTree *Expr () const { return sons[1]; }
29114
 
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
29115
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
29116
 
   private:
29117
 
  typedef CT_DeleteExpr CCExprResolveExpr;
29118
 
 
29119
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29120
 
 public :
29121
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
29122
 
  typedef CT_DeleteExpr CExprResolveExpr;
29123
 
 
29124
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29125
 
 public :
29126
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29127
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29128
 
};
29129
 
 
29130
 
 
29131
 
#line 29132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29132
 
} // closed Puma
29133
 
class WinIfExists;
29134
 
class WinImportHandler;
29135
 
class WinMacros;
29136
 
class CMatchSyntax;
29137
 
class ExtGnu;
29138
 
class ExtAC;
29139
 
class ExtACBuilderCoupling;
29140
 
class ExtACSyntaxCoupling;
29141
 
class ExtACTree;
29142
 
class ExtACKeywords;
29143
 
class WinAsm;
29144
 
class WinDeclSpecs;
29145
 
class WinMemberExplSpec;
29146
 
class WinTypeKeywords;
29147
 
class PragmaOnceUnitState;
29148
 
class PragmaOnce;
29149
 
class CCExprResolve;
29150
 
class CExprResolve;
29151
 
namespace Puma {
29152
 
 
29153
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29154
 
class CT_NewExpr : public CT_Expression, public CSemObject {
29155
 
#line 29156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29156
 
  friend class ::WinIfExists;
29157
 
  friend class ::WinImportHandler;
29158
 
  friend class ::WinMacros;
29159
 
  friend class ::CMatchSyntax;
29160
 
  friend class ::ExtGnu;
29161
 
  friend class ::ExtAC;
29162
 
  friend class ::ExtACBuilderCoupling;
29163
 
  friend class ::ExtACSyntaxCoupling;
29164
 
  friend class ::ExtACTree;
29165
 
  friend class ::ExtACKeywords;
29166
 
  friend class ::WinAsm;
29167
 
  friend class ::WinDeclSpecs;
29168
 
  friend class ::WinMemberExplSpec;
29169
 
  friend class ::WinTypeKeywords;
29170
 
  friend class ::PragmaOnceUnitState;
29171
 
  friend class ::PragmaOnce;
29172
 
  friend class ::CCExprResolve;
29173
 
  friend class ::CExprResolve;
29174
 
 
29175
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29176
 
 
29177
 
  CTree *sons[6]; // oper, placement, open, type, close, init
29178
 
 
29179
 
public:
29180
 
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
29181
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
29182
 
  }
29183
 
  static const char *NodeId ();
29184
 
  const char *NodeName () const { return NodeId (); }
29185
 
  int Sons () const { return CTree::Sons (sons, 6); }
29186
 
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
29187
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29188
 
    CTree::ReplaceSon (sons, 6, old_son, new_son);
29189
 
  }
29190
 
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
29191
 
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
29192
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
29193
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
29194
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
29195
 
   private:
29196
 
  typedef CT_NewExpr CCExprResolveExpr;
29197
 
 
29198
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29199
 
 public :
29200
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
29201
 
  typedef CT_NewExpr CExprResolveExpr;
29202
 
 
29203
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29204
 
 public :
29205
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29206
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29207
 
};
29208
 
 
29209
 
 
29210
 
#line 29211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29211
 
} // closed Puma
29212
 
class WinIfExists;
29213
 
class WinImportHandler;
29214
 
class WinMacros;
29215
 
class CMatchSyntax;
29216
 
class ExtGnu;
29217
 
class ExtAC;
29218
 
class ExtACBuilderCoupling;
29219
 
class ExtACSyntaxCoupling;
29220
 
class ExtACTree;
29221
 
class ExtACKeywords;
29222
 
class WinAsm;
29223
 
class WinDeclSpecs;
29224
 
class WinMemberExplSpec;
29225
 
class WinTypeKeywords;
29226
 
class PragmaOnceUnitState;
29227
 
class PragmaOnce;
29228
 
class CCExprResolve;
29229
 
class CExprResolve;
29230
 
namespace Puma {
29231
 
 
29232
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29233
 
class CT_IfThenExpr : public CT_Expression {
29234
 
#line 29235 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29235
 
  friend class ::WinIfExists;
29236
 
  friend class ::WinImportHandler;
29237
 
  friend class ::WinMacros;
29238
 
  friend class ::CMatchSyntax;
29239
 
  friend class ::ExtGnu;
29240
 
  friend class ::ExtAC;
29241
 
  friend class ::ExtACBuilderCoupling;
29242
 
  friend class ::ExtACSyntaxCoupling;
29243
 
  friend class ::ExtACTree;
29244
 
  friend class ::ExtACKeywords;
29245
 
  friend class ::WinAsm;
29246
 
  friend class ::WinDeclSpecs;
29247
 
  friend class ::WinMemberExplSpec;
29248
 
  friend class ::WinTypeKeywords;
29249
 
  friend class ::PragmaOnceUnitState;
29250
 
  friend class ::PragmaOnce;
29251
 
  friend class ::CCExprResolve;
29252
 
  friend class ::CExprResolve;
29253
 
 
29254
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29255
 
 
29256
 
  CTree *sons[5]; // cond, oper, left, colon, right
29257
 
 
29258
 
public:
29259
 
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
29260
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
29261
 
  }
29262
 
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
29263
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
29264
 
  }
29265
 
  static const char *NodeId ();
29266
 
  const char *NodeName () const { return NodeId (); }
29267
 
  int Sons () const { return CTree::Sons (sons, 5); }
29268
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
29269
 
  CTree *Condition () const { return sons[0]; }
29270
 
  CTree *LeftOperand () const { return sons[2]; }
29271
 
  CTree *RightOperand () const { return sons[4]; }
29272
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29273
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
29274
 
  }
29275
 
   private:
29276
 
  typedef CT_IfThenExpr CCExprResolveExpr;
29277
 
 
29278
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29279
 
 public :
29280
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
29281
 
  typedef CT_IfThenExpr CExprResolveExpr;
29282
 
 
29283
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29284
 
 public :
29285
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29286
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29287
 
};
29288
 
 
29289
 
 
29290
 
#line 29291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29291
 
} // closed Puma
29292
 
class WinIfExists;
29293
 
class WinImportHandler;
29294
 
class WinMacros;
29295
 
class CMatchSyntax;
29296
 
class ExtGnu;
29297
 
class ExtAC;
29298
 
class ExtACBuilderCoupling;
29299
 
class ExtACSyntaxCoupling;
29300
 
class ExtACTree;
29301
 
class ExtACKeywords;
29302
 
class WinAsm;
29303
 
class WinDeclSpecs;
29304
 
class WinMemberExplSpec;
29305
 
class WinTypeKeywords;
29306
 
class PragmaOnceUnitState;
29307
 
class PragmaOnce;
29308
 
class CCExprResolve;
29309
 
class CExprResolve;
29310
 
namespace Puma {
29311
 
 
29312
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29313
 
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
29314
 
#line 29315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29315
 
  friend class ::WinIfExists;
29316
 
  friend class ::WinImportHandler;
29317
 
  friend class ::WinMacros;
29318
 
  friend class ::CMatchSyntax;
29319
 
  friend class ::ExtGnu;
29320
 
  friend class ::ExtAC;
29321
 
  friend class ::ExtACBuilderCoupling;
29322
 
  friend class ::ExtACSyntaxCoupling;
29323
 
  friend class ::ExtACTree;
29324
 
  friend class ::ExtACKeywords;
29325
 
  friend class ::WinAsm;
29326
 
  friend class ::WinDeclSpecs;
29327
 
  friend class ::WinMemberExplSpec;
29328
 
  friend class ::WinTypeKeywords;
29329
 
  friend class ::PragmaOnceUnitState;
29330
 
  friend class ::PragmaOnce;
29331
 
  friend class ::CCExprResolve;
29332
 
  friend class ::CExprResolve;
29333
 
 
29334
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29335
 
 
29336
 
  CTree *sons[4]; // open, type, close, init
29337
 
 
29338
 
public:
29339
 
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
29340
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
29341
 
  }
29342
 
  static const char *NodeId ();
29343
 
  const char *NodeName () const { return NodeId (); }
29344
 
  int Sons () const { return 4; }
29345
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
29346
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29347
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
29348
 
  }
29349
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
29350
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
29351
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
29352
 
   private:
29353
 
  typedef CT_CmpdLiteral CCExprResolveExpr;
29354
 
 
29355
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29356
 
 public :
29357
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
29358
 
  typedef CT_CmpdLiteral CExprResolveExpr;
29359
 
 
29360
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29361
 
 public :
29362
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29363
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29364
 
};
29365
 
 
29366
 
 
29367
 
#line 29368 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29368
 
} // closed Puma
29369
 
class WinIfExists;
29370
 
class WinImportHandler;
29371
 
class WinMacros;
29372
 
class CMatchSyntax;
29373
 
class ExtGnu;
29374
 
class ExtAC;
29375
 
class ExtACBuilderCoupling;
29376
 
class ExtACSyntaxCoupling;
29377
 
class ExtACTree;
29378
 
class ExtACKeywords;
29379
 
class WinAsm;
29380
 
class WinDeclSpecs;
29381
 
class WinMemberExplSpec;
29382
 
class WinTypeKeywords;
29383
 
class PragmaOnceUnitState;
29384
 
class PragmaOnce;
29385
 
class CCExprResolve;
29386
 
class CExprResolve;
29387
 
namespace Puma {
29388
 
 
29389
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29390
 
class CT_ConstructExpr : public CT_Expression, public CSemObject {
29391
 
#line 29392 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29392
 
  friend class ::WinIfExists;
29393
 
  friend class ::WinImportHandler;
29394
 
  friend class ::WinMacros;
29395
 
  friend class ::CMatchSyntax;
29396
 
  friend class ::ExtGnu;
29397
 
  friend class ::ExtAC;
29398
 
  friend class ::ExtACBuilderCoupling;
29399
 
  friend class ::ExtACSyntaxCoupling;
29400
 
  friend class ::ExtACTree;
29401
 
  friend class ::ExtACKeywords;
29402
 
  friend class ::WinAsm;
29403
 
  friend class ::WinDeclSpecs;
29404
 
  friend class ::WinMemberExplSpec;
29405
 
  friend class ::WinTypeKeywords;
29406
 
  friend class ::PragmaOnceUnitState;
29407
 
  friend class ::PragmaOnce;
29408
 
  friend class ::CCExprResolve;
29409
 
  friend class ::CExprResolve;
29410
 
 
29411
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29412
 
 
29413
 
  CTree *sons[2]; // type, init
29414
 
 
29415
 
public:
29416
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
29417
 
  static const char *NodeId ();
29418
 
  const char *NodeName () const { return NodeId (); }
29419
 
  int Sons () const { return 2; }
29420
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
29421
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29422
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
29423
 
  }
29424
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
29425
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
29426
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
29427
 
   private:
29428
 
  typedef CT_ConstructExpr CCExprResolveExpr;
29429
 
 
29430
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29431
 
 public :
29432
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
29433
 
  typedef CT_ConstructExpr CExprResolveExpr;
29434
 
 
29435
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29436
 
 public :
29437
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29438
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29439
 
};
29440
 
 
29441
 
 
29442
 
#line 29443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29443
 
} // closed Puma
29444
 
class WinIfExists;
29445
 
class WinImportHandler;
29446
 
class WinMacros;
29447
 
class CMatchSyntax;
29448
 
class ExtGnu;
29449
 
class ExtAC;
29450
 
class ExtACBuilderCoupling;
29451
 
class ExtACSyntaxCoupling;
29452
 
class ExtACTree;
29453
 
class ExtACKeywords;
29454
 
class WinAsm;
29455
 
class WinDeclSpecs;
29456
 
class WinMemberExplSpec;
29457
 
class WinTypeKeywords;
29458
 
class PragmaOnceUnitState;
29459
 
class PragmaOnce;
29460
 
class CCExprResolve;
29461
 
class CExprResolve;
29462
 
namespace Puma {
29463
 
 
29464
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29465
 
class CT_ThrowExpr : public CT_Expression {
29466
 
#line 29467 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29467
 
  friend class ::WinIfExists;
29468
 
  friend class ::WinImportHandler;
29469
 
  friend class ::WinMacros;
29470
 
  friend class ::CMatchSyntax;
29471
 
  friend class ::ExtGnu;
29472
 
  friend class ::ExtAC;
29473
 
  friend class ::ExtACBuilderCoupling;
29474
 
  friend class ::ExtACSyntaxCoupling;
29475
 
  friend class ::ExtACTree;
29476
 
  friend class ::ExtACKeywords;
29477
 
  friend class ::WinAsm;
29478
 
  friend class ::WinDeclSpecs;
29479
 
  friend class ::WinMemberExplSpec;
29480
 
  friend class ::WinTypeKeywords;
29481
 
  friend class ::PragmaOnceUnitState;
29482
 
  friend class ::PragmaOnce;
29483
 
  friend class ::CCExprResolve;
29484
 
  friend class ::CExprResolve;
29485
 
 
29486
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29487
 
 
29488
 
  CTree *sons[2]; // throw, expr
29489
 
 
29490
 
public:
29491
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
29492
 
  static const char *NodeId ();
29493
 
  const char *NodeName () const { return NodeId (); }
29494
 
  int Sons () const { return CTree::Sons (sons, 2); }
29495
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
29496
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29497
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
29498
 
  }
29499
 
  CTree *Expr () const { return sons[1]; }
29500
 
   private:
29501
 
  typedef CT_ThrowExpr CCExprResolveExpr;
29502
 
 
29503
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29504
 
 public :
29505
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
29506
 
  typedef CT_ThrowExpr CExprResolveExpr;
29507
 
 
29508
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29509
 
 public :
29510
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29511
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29512
 
};
29513
 
 
29514
 
 
29515
 
#line 29516 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29516
 
} // closed Puma
29517
 
class WinIfExists;
29518
 
class WinImportHandler;
29519
 
class WinMacros;
29520
 
class CMatchSyntax;
29521
 
class ExtGnu;
29522
 
class ExtAC;
29523
 
class ExtACBuilderCoupling;
29524
 
class ExtACSyntaxCoupling;
29525
 
class ExtACTree;
29526
 
class ExtACKeywords;
29527
 
class WinAsm;
29528
 
class WinDeclSpecs;
29529
 
class WinMemberExplSpec;
29530
 
class WinTypeKeywords;
29531
 
class PragmaOnceUnitState;
29532
 
class PragmaOnce;
29533
 
class CCExprResolve;
29534
 
class CExprResolve;
29535
 
namespace Puma {
29536
 
 
29537
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29538
 
class CT_IndexExpr : public CT_Expression {
29539
 
#line 29540 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29540
 
  friend class ::WinIfExists;
29541
 
  friend class ::WinImportHandler;
29542
 
  friend class ::WinMacros;
29543
 
  friend class ::CMatchSyntax;
29544
 
  friend class ::ExtGnu;
29545
 
  friend class ::ExtAC;
29546
 
  friend class ::ExtACBuilderCoupling;
29547
 
  friend class ::ExtACSyntaxCoupling;
29548
 
  friend class ::ExtACTree;
29549
 
  friend class ::ExtACKeywords;
29550
 
  friend class ::WinAsm;
29551
 
  friend class ::WinDeclSpecs;
29552
 
  friend class ::WinMemberExplSpec;
29553
 
  friend class ::WinTypeKeywords;
29554
 
  friend class ::PragmaOnceUnitState;
29555
 
  friend class ::PragmaOnce;
29556
 
  friend class ::CCExprResolve;
29557
 
  friend class ::CExprResolve;
29558
 
 
29559
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29560
 
 
29561
 
  CTree *sons[4]; // expr, open, index, close
29562
 
 
29563
 
public:
29564
 
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
29565
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
29566
 
  }
29567
 
  static const char *NodeId ();
29568
 
  const char *NodeName () const { return NodeId (); }
29569
 
  int Sons () const { return 4; }
29570
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
29571
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29572
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
29573
 
  }
29574
 
   private:
29575
 
  typedef CT_IndexExpr CCExprResolveExpr;
29576
 
 
29577
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29578
 
 public :
29579
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
29580
 
  typedef CT_IndexExpr CExprResolveExpr;
29581
 
 
29582
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29583
 
 public :
29584
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29585
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29586
 
};
29587
 
 
29588
 
 
29589
 
#line 29590 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29590
 
} // closed Puma
29591
 
class WinIfExists;
29592
 
class WinImportHandler;
29593
 
class WinMacros;
29594
 
class CMatchSyntax;
29595
 
class ExtGnu;
29596
 
class ExtAC;
29597
 
class ExtACBuilderCoupling;
29598
 
class ExtACSyntaxCoupling;
29599
 
class ExtACTree;
29600
 
class ExtACKeywords;
29601
 
class WinAsm;
29602
 
class WinDeclSpecs;
29603
 
class WinMemberExplSpec;
29604
 
class WinTypeKeywords;
29605
 
class PragmaOnceUnitState;
29606
 
class PragmaOnce;
29607
 
class CCExprResolve;
29608
 
class CExprResolve;
29609
 
namespace Puma {
29610
 
 
29611
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29612
 
class CT_CallExpr : public CT_Expression, public CSemObject {
29613
 
#line 29614 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29614
 
  friend class ::WinIfExists;
29615
 
  friend class ::WinImportHandler;
29616
 
  friend class ::WinMacros;
29617
 
  friend class ::CMatchSyntax;
29618
 
  friend class ::ExtGnu;
29619
 
  friend class ::ExtAC;
29620
 
  friend class ::ExtACBuilderCoupling;
29621
 
  friend class ::ExtACSyntaxCoupling;
29622
 
  friend class ::ExtACTree;
29623
 
  friend class ::ExtACKeywords;
29624
 
  friend class ::WinAsm;
29625
 
  friend class ::WinDeclSpecs;
29626
 
  friend class ::WinMemberExplSpec;
29627
 
  friend class ::WinTypeKeywords;
29628
 
  friend class ::PragmaOnceUnitState;
29629
 
  friend class ::PragmaOnce;
29630
 
  friend class ::CCExprResolve;
29631
 
  friend class ::CExprResolve;
29632
 
 
29633
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29634
 
 
29635
 
  CTree *sons[2]; // expr, args
29636
 
 
29637
 
public:
29638
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
29639
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
29640
 
  static const char *NodeId ();
29641
 
  const char *NodeName () const { return NodeId (); }
29642
 
  int Sons () const { return CTree::Sons (sons, 2); }
29643
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
29644
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29645
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
29646
 
  }
29647
 
  CTree *Expr () const { return sons[0]; }
29648
 
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
29649
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
29650
 
   private:
29651
 
  typedef CT_CallExpr CCExprResolveExpr;
29652
 
 
29653
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29654
 
 public :
29655
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
29656
 
  typedef CT_CallExpr CExprResolveExpr;
29657
 
 
29658
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29659
 
 public :
29660
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29661
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29662
 
};
29663
 
 
29664
 
 
29665
 
#line 29666 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29666
 
} // closed Puma
29667
 
class WinIfExists;
29668
 
class WinImportHandler;
29669
 
class WinMacros;
29670
 
class CMatchSyntax;
29671
 
class ExtGnu;
29672
 
class ExtAC;
29673
 
class ExtACBuilderCoupling;
29674
 
class ExtACSyntaxCoupling;
29675
 
class ExtACTree;
29676
 
class ExtACKeywords;
29677
 
class WinAsm;
29678
 
class WinDeclSpecs;
29679
 
class WinMemberExplSpec;
29680
 
class WinTypeKeywords;
29681
 
class PragmaOnceUnitState;
29682
 
class PragmaOnce;
29683
 
class CCExprResolve;
29684
 
class CExprResolve;
29685
 
namespace Puma {
29686
 
 
29687
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29688
 
class CT_CastExpr : public CT_Expression {
29689
 
#line 29690 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29690
 
  friend class ::WinIfExists;
29691
 
  friend class ::WinImportHandler;
29692
 
  friend class ::WinMacros;
29693
 
  friend class ::CMatchSyntax;
29694
 
  friend class ::ExtGnu;
29695
 
  friend class ::ExtAC;
29696
 
  friend class ::ExtACBuilderCoupling;
29697
 
  friend class ::ExtACSyntaxCoupling;
29698
 
  friend class ::ExtACTree;
29699
 
  friend class ::ExtACKeywords;
29700
 
  friend class ::WinAsm;
29701
 
  friend class ::WinDeclSpecs;
29702
 
  friend class ::WinMemberExplSpec;
29703
 
  friend class ::WinTypeKeywords;
29704
 
  friend class ::PragmaOnceUnitState;
29705
 
  friend class ::PragmaOnce;
29706
 
  friend class ::CCExprResolve;
29707
 
  friend class ::CExprResolve;
29708
 
 
29709
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29710
 
 
29711
 
  CTree *sons[4]; // open, type, close, expr
29712
 
 
29713
 
public:
29714
 
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
29715
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
29716
 
  }
29717
 
  static const char *NodeId ();
29718
 
  const char *NodeName () const { return NodeId (); }
29719
 
  int Sons () const { return 4; }
29720
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
29721
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29722
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
29723
 
  }
29724
 
  CTree *Expr () const { return sons[3]; }
29725
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
29726
 
   private:
29727
 
  typedef CT_CastExpr CCExprResolveExpr;
29728
 
 
29729
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29730
 
 public :
29731
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
29732
 
  typedef CT_CastExpr CExprResolveExpr;
29733
 
 
29734
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29735
 
 public :
29736
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29737
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29738
 
};
29739
 
 
29740
 
 
29741
 
#line 29742 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29742
 
} // closed Puma
29743
 
class WinIfExists;
29744
 
class WinImportHandler;
29745
 
class WinMacros;
29746
 
class CMatchSyntax;
29747
 
class ExtGnu;
29748
 
class ExtAC;
29749
 
class ExtACBuilderCoupling;
29750
 
class ExtACSyntaxCoupling;
29751
 
class ExtACTree;
29752
 
class ExtACKeywords;
29753
 
class WinAsm;
29754
 
class WinDeclSpecs;
29755
 
class WinMemberExplSpec;
29756
 
class WinTypeKeywords;
29757
 
class PragmaOnceUnitState;
29758
 
class PragmaOnce;
29759
 
class CCExprResolve;
29760
 
class CExprResolve;
29761
 
namespace Puma {
29762
 
 
29763
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29764
 
class CT_StaticCast : public CT_Expression {
29765
 
#line 29766 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29766
 
  friend class ::WinIfExists;
29767
 
  friend class ::WinImportHandler;
29768
 
  friend class ::WinMacros;
29769
 
  friend class ::CMatchSyntax;
29770
 
  friend class ::ExtGnu;
29771
 
  friend class ::ExtAC;
29772
 
  friend class ::ExtACBuilderCoupling;
29773
 
  friend class ::ExtACSyntaxCoupling;
29774
 
  friend class ::ExtACTree;
29775
 
  friend class ::ExtACKeywords;
29776
 
  friend class ::WinAsm;
29777
 
  friend class ::WinDeclSpecs;
29778
 
  friend class ::WinMemberExplSpec;
29779
 
  friend class ::WinTypeKeywords;
29780
 
  friend class ::PragmaOnceUnitState;
29781
 
  friend class ::PragmaOnce;
29782
 
  friend class ::CCExprResolve;
29783
 
  friend class ::CExprResolve;
29784
 
 
29785
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29786
 
 
29787
 
  CTree *sons[5]; // cast, open, type, close, expr
29788
 
 
29789
 
public:
29790
 
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
29791
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
29792
 
  }
29793
 
  static const char *NodeId ();
29794
 
  const char *NodeName () const { return NodeId (); }
29795
 
  int Sons () const { return 5; }
29796
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
29797
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
29798
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
29799
 
  }
29800
 
  CTree *Expr () const { return sons[4]; }
29801
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
29802
 
   private:
29803
 
  typedef CT_StaticCast CCExprResolveExpr;
29804
 
 
29805
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29806
 
 public :
29807
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
29808
 
  typedef CT_StaticCast CExprResolveExpr;
29809
 
 
29810
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29811
 
 public :
29812
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29813
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29814
 
};
29815
 
 
29816
 
 
29817
 
#line 29818 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29818
 
} // closed Puma
29819
 
class WinIfExists;
29820
 
class WinImportHandler;
29821
 
class WinMacros;
29822
 
class CMatchSyntax;
29823
 
class ExtGnu;
29824
 
class ExtAC;
29825
 
class ExtACBuilderCoupling;
29826
 
class ExtACSyntaxCoupling;
29827
 
class ExtACTree;
29828
 
class ExtACKeywords;
29829
 
class WinAsm;
29830
 
class WinDeclSpecs;
29831
 
class WinMemberExplSpec;
29832
 
class WinTypeKeywords;
29833
 
class PragmaOnceUnitState;
29834
 
class PragmaOnce;
29835
 
class CCExprResolve;
29836
 
class CExprResolve;
29837
 
namespace Puma {
29838
 
 
29839
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29840
 
class CT_ConstCast : public CT_StaticCast {
29841
 
#line 29842 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29842
 
  friend class ::WinIfExists;
29843
 
  friend class ::WinImportHandler;
29844
 
  friend class ::WinMacros;
29845
 
  friend class ::CMatchSyntax;
29846
 
  friend class ::ExtGnu;
29847
 
  friend class ::ExtAC;
29848
 
  friend class ::ExtACBuilderCoupling;
29849
 
  friend class ::ExtACSyntaxCoupling;
29850
 
  friend class ::ExtACTree;
29851
 
  friend class ::ExtACKeywords;
29852
 
  friend class ::WinAsm;
29853
 
  friend class ::WinDeclSpecs;
29854
 
  friend class ::WinMemberExplSpec;
29855
 
  friend class ::WinTypeKeywords;
29856
 
  friend class ::PragmaOnceUnitState;
29857
 
  friend class ::PragmaOnce;
29858
 
  friend class ::CCExprResolve;
29859
 
  friend class ::CExprResolve;
29860
 
 
29861
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29862
 
 
29863
 
public:
29864
 
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
29865
 
    CT_StaticCast (cst, o, t, c, e) {}
29866
 
  static const char *NodeId ();
29867
 
  const char *NodeName () const { return NodeId (); }
29868
 
   private:
29869
 
  typedef CT_ConstCast CCExprResolveExpr;
29870
 
 
29871
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29872
 
 public :
29873
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
29874
 
  typedef CT_ConstCast CExprResolveExpr;
29875
 
 
29876
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29877
 
 public :
29878
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29879
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29880
 
};
29881
 
 
29882
 
 
29883
 
#line 29884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29884
 
} // closed Puma
29885
 
class WinIfExists;
29886
 
class WinImportHandler;
29887
 
class WinMacros;
29888
 
class CMatchSyntax;
29889
 
class ExtGnu;
29890
 
class ExtAC;
29891
 
class ExtACBuilderCoupling;
29892
 
class ExtACSyntaxCoupling;
29893
 
class ExtACTree;
29894
 
class ExtACKeywords;
29895
 
class WinAsm;
29896
 
class WinDeclSpecs;
29897
 
class WinMemberExplSpec;
29898
 
class WinTypeKeywords;
29899
 
class PragmaOnceUnitState;
29900
 
class PragmaOnce;
29901
 
class CCExprResolve;
29902
 
class CExprResolve;
29903
 
namespace Puma {
29904
 
 
29905
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29906
 
class CT_ReintCast : public CT_StaticCast {
29907
 
#line 29908 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29908
 
  friend class ::WinIfExists;
29909
 
  friend class ::WinImportHandler;
29910
 
  friend class ::WinMacros;
29911
 
  friend class ::CMatchSyntax;
29912
 
  friend class ::ExtGnu;
29913
 
  friend class ::ExtAC;
29914
 
  friend class ::ExtACBuilderCoupling;
29915
 
  friend class ::ExtACSyntaxCoupling;
29916
 
  friend class ::ExtACTree;
29917
 
  friend class ::ExtACKeywords;
29918
 
  friend class ::WinAsm;
29919
 
  friend class ::WinDeclSpecs;
29920
 
  friend class ::WinMemberExplSpec;
29921
 
  friend class ::WinTypeKeywords;
29922
 
  friend class ::PragmaOnceUnitState;
29923
 
  friend class ::PragmaOnce;
29924
 
  friend class ::CCExprResolve;
29925
 
  friend class ::CExprResolve;
29926
 
 
29927
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29928
 
 
29929
 
public:
29930
 
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
29931
 
    CT_StaticCast (cst, o, t, c, e) {}
29932
 
  static const char *NodeId ();
29933
 
  const char *NodeName () const { return NodeId (); }
29934
 
   private:
29935
 
  typedef CT_ReintCast CCExprResolveExpr;
29936
 
 
29937
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
29938
 
 public :
29939
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
29940
 
  typedef CT_ReintCast CExprResolveExpr;
29941
 
 
29942
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
29943
 
 public :
29944
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
29945
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29946
 
};
29947
 
 
29948
 
 
29949
 
#line 29950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29950
 
} // closed Puma
29951
 
class WinIfExists;
29952
 
class WinImportHandler;
29953
 
class WinMacros;
29954
 
class CMatchSyntax;
29955
 
class ExtGnu;
29956
 
class ExtAC;
29957
 
class ExtACBuilderCoupling;
29958
 
class ExtACSyntaxCoupling;
29959
 
class ExtACTree;
29960
 
class ExtACKeywords;
29961
 
class WinAsm;
29962
 
class WinDeclSpecs;
29963
 
class WinMemberExplSpec;
29964
 
class WinTypeKeywords;
29965
 
class PragmaOnceUnitState;
29966
 
class PragmaOnce;
29967
 
class CCExprResolve;
29968
 
class CExprResolve;
29969
 
namespace Puma {
29970
 
 
29971
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29972
 
class CT_DynamicCast : public CT_StaticCast {
29973
 
#line 29974 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
29974
 
  friend class ::WinIfExists;
29975
 
  friend class ::WinImportHandler;
29976
 
  friend class ::WinMacros;
29977
 
  friend class ::CMatchSyntax;
29978
 
  friend class ::ExtGnu;
29979
 
  friend class ::ExtAC;
29980
 
  friend class ::ExtACBuilderCoupling;
29981
 
  friend class ::ExtACSyntaxCoupling;
29982
 
  friend class ::ExtACTree;
29983
 
  friend class ::ExtACKeywords;
29984
 
  friend class ::WinAsm;
29985
 
  friend class ::WinDeclSpecs;
29986
 
  friend class ::WinMemberExplSpec;
29987
 
  friend class ::WinTypeKeywords;
29988
 
  friend class ::PragmaOnceUnitState;
29989
 
  friend class ::PragmaOnce;
29990
 
  friend class ::CCExprResolve;
29991
 
  friend class ::CExprResolve;
29992
 
 
29993
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
29994
 
 
29995
 
public:
29996
 
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
29997
 
    CT_StaticCast (cst, o, t, c, e) {}
29998
 
  static const char *NodeId ();
29999
 
  const char *NodeName () const { return NodeId (); }
30000
 
   private:
30001
 
  typedef CT_DynamicCast CCExprResolveExpr;
30002
 
 
30003
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
30004
 
 public :
30005
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
30006
 
  typedef CT_DynamicCast CExprResolveExpr;
30007
 
 
30008
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
30009
 
 public :
30010
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
30011
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30012
 
};
30013
 
 
30014
 
 
30015
 
#line 30016 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30016
 
} // closed Puma
30017
 
class WinIfExists;
30018
 
class WinImportHandler;
30019
 
class WinMacros;
30020
 
class CMatchSyntax;
30021
 
class ExtGnu;
30022
 
class ExtAC;
30023
 
class ExtACBuilderCoupling;
30024
 
class ExtACSyntaxCoupling;
30025
 
class ExtACTree;
30026
 
class ExtACKeywords;
30027
 
class WinAsm;
30028
 
class WinDeclSpecs;
30029
 
class WinMemberExplSpec;
30030
 
class WinTypeKeywords;
30031
 
class PragmaOnceUnitState;
30032
 
class PragmaOnce;
30033
 
class CCExprResolve;
30034
 
class CExprResolve;
30035
 
namespace Puma {
30036
 
 
30037
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30038
 
class CT_ImplicitCast : public CT_Expression {
30039
 
#line 30040 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30040
 
  friend class ::WinIfExists;
30041
 
  friend class ::WinImportHandler;
30042
 
  friend class ::WinMacros;
30043
 
  friend class ::CMatchSyntax;
30044
 
  friend class ::ExtGnu;
30045
 
  friend class ::ExtAC;
30046
 
  friend class ::ExtACBuilderCoupling;
30047
 
  friend class ::ExtACSyntaxCoupling;
30048
 
  friend class ::ExtACTree;
30049
 
  friend class ::ExtACKeywords;
30050
 
  friend class ::WinAsm;
30051
 
  friend class ::WinDeclSpecs;
30052
 
  friend class ::WinMemberExplSpec;
30053
 
  friend class ::WinTypeKeywords;
30054
 
  friend class ::PragmaOnceUnitState;
30055
 
  friend class ::PragmaOnce;
30056
 
  friend class ::CCExprResolve;
30057
 
  friend class ::CExprResolve;
30058
 
 
30059
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30060
 
 
30061
 
  CTree *_expr; // casted expression
30062
 
 
30063
 
public:
30064
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
30065
 
  static const char *NodeId ();
30066
 
  const char *NodeName () const { return NodeId (); }
30067
 
  int Sons () const { return 1; }
30068
 
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
30069
 
  CTree *Expr () const { return _expr; }
30070
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
30071
 
   { if (old_son == _expr) _expr = new_son; }
30072
 
   private:
30073
 
  typedef CT_ImplicitCast CCExprResolveExpr;
30074
 
 
30075
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
30076
 
 public :
30077
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
30078
 
  typedef CT_ImplicitCast CExprResolveExpr;
30079
 
 
30080
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
30081
 
 public :
30082
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
30083
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30084
 
};
30085
 
 
30086
 
 
30087
 
#line 30088 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30088
 
} // closed Puma
30089
 
class WinIfExists;
30090
 
class WinImportHandler;
30091
 
class WinMacros;
30092
 
class CMatchSyntax;
30093
 
class ExtGnu;
30094
 
class ExtAC;
30095
 
class ExtACBuilderCoupling;
30096
 
class ExtACSyntaxCoupling;
30097
 
class ExtACTree;
30098
 
class ExtACKeywords;
30099
 
class WinAsm;
30100
 
class WinDeclSpecs;
30101
 
class WinMemberExplSpec;
30102
 
class WinTypeKeywords;
30103
 
class PragmaOnceUnitState;
30104
 
class PragmaOnce;
30105
 
class CCExprResolve;
30106
 
class CExprResolve;
30107
 
namespace Puma {
30108
 
 
30109
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30110
 
class CT_TypeidExpr : public CT_Expression {
30111
 
#line 30112 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30112
 
  friend class ::WinIfExists;
30113
 
  friend class ::WinImportHandler;
30114
 
  friend class ::WinMacros;
30115
 
  friend class ::CMatchSyntax;
30116
 
  friend class ::ExtGnu;
30117
 
  friend class ::ExtAC;
30118
 
  friend class ::ExtACBuilderCoupling;
30119
 
  friend class ::ExtACSyntaxCoupling;
30120
 
  friend class ::ExtACTree;
30121
 
  friend class ::ExtACKeywords;
30122
 
  friend class ::WinAsm;
30123
 
  friend class ::WinDeclSpecs;
30124
 
  friend class ::WinMemberExplSpec;
30125
 
  friend class ::WinTypeKeywords;
30126
 
  friend class ::PragmaOnceUnitState;
30127
 
  friend class ::PragmaOnce;
30128
 
  friend class ::CCExprResolve;
30129
 
  friend class ::CExprResolve;
30130
 
 
30131
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30132
 
 
30133
 
  CTree *sons[4]; // typeid, open, type_id/expr, close
30134
 
 
30135
 
public:
30136
 
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
30137
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
30138
 
  }
30139
 
  static const char *NodeId ();
30140
 
  const char *NodeName () const { return NodeId (); }
30141
 
  int Sons () const { return 4; }
30142
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
30143
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30144
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
30145
 
  }
30146
 
  CTree *Arg () const { return sons[2]; }
30147
 
   private:
30148
 
  typedef CT_TypeidExpr CCExprResolveExpr;
30149
 
 
30150
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
30151
 
 public :
30152
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
30153
 
  typedef CT_TypeidExpr CExprResolveExpr;
30154
 
 
30155
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
30156
 
 public :
30157
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
30158
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30159
 
};
30160
 
 
30161
 
 
30162
 
#line 30163 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30163
 
} // closed Puma
30164
 
class WinIfExists;
30165
 
class WinImportHandler;
30166
 
class WinMacros;
30167
 
class CMatchSyntax;
30168
 
class ExtGnu;
30169
 
class ExtAC;
30170
 
class ExtACBuilderCoupling;
30171
 
class ExtACSyntaxCoupling;
30172
 
class ExtACTree;
30173
 
class ExtACKeywords;
30174
 
class WinAsm;
30175
 
class WinDeclSpecs;
30176
 
class WinMemberExplSpec;
30177
 
class WinTypeKeywords;
30178
 
class PragmaOnceUnitState;
30179
 
class PragmaOnce;
30180
 
class CCExprResolve;
30181
 
class CExprResolve;
30182
 
namespace Puma {
30183
 
 
30184
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30185
 
class CT_SizeofExpr : public CT_Expression {
30186
 
#line 30187 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30187
 
  friend class ::WinIfExists;
30188
 
  friend class ::WinImportHandler;
30189
 
  friend class ::WinMacros;
30190
 
  friend class ::CMatchSyntax;
30191
 
  friend class ::ExtGnu;
30192
 
  friend class ::ExtAC;
30193
 
  friend class ::ExtACBuilderCoupling;
30194
 
  friend class ::ExtACSyntaxCoupling;
30195
 
  friend class ::ExtACTree;
30196
 
  friend class ::ExtACKeywords;
30197
 
  friend class ::WinAsm;
30198
 
  friend class ::WinDeclSpecs;
30199
 
  friend class ::WinMemberExplSpec;
30200
 
  friend class ::WinTypeKeywords;
30201
 
  friend class ::PragmaOnceUnitState;
30202
 
  friend class ::PragmaOnce;
30203
 
  friend class ::CCExprResolve;
30204
 
  friend class ::CExprResolve;
30205
 
 
30206
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30207
 
 
30208
 
  CTree *sons[5]; // key, open, type, close, expr
30209
 
 
30210
 
public:
30211
 
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
30212
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
30213
 
  }
30214
 
  CT_SizeofExpr (CTree *k, CTree *e) {
30215
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
30216
 
  }
30217
 
  static const char *NodeId ();
30218
 
  const char *NodeName () const { return NodeId (); }
30219
 
  int Sons () const { return CTree::Sons (sons, 5); }
30220
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
30221
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30222
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
30223
 
  }
30224
 
  CTree *Expr () const { return sons[4]; }
30225
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
30226
 
   private:
30227
 
  typedef CT_SizeofExpr CCExprResolveExpr;
30228
 
 
30229
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
30230
 
 public :
30231
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
30232
 
  typedef CT_SizeofExpr CExprResolveExpr;
30233
 
 
30234
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
30235
 
 public :
30236
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
30237
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30238
 
};
30239
 
 
30240
 
 
30241
 
#line 30242 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30242
 
} // closed Puma
30243
 
class WinIfExists;
30244
 
class WinImportHandler;
30245
 
class WinMacros;
30246
 
class CMatchSyntax;
30247
 
class ExtGnu;
30248
 
class ExtAC;
30249
 
class ExtACBuilderCoupling;
30250
 
class ExtACSyntaxCoupling;
30251
 
class ExtACTree;
30252
 
class ExtACKeywords;
30253
 
class WinAsm;
30254
 
class WinDeclSpecs;
30255
 
class WinMemberExplSpec;
30256
 
class WinTypeKeywords;
30257
 
class PragmaOnceUnitState;
30258
 
class PragmaOnce;
30259
 
class CCExprResolve;
30260
 
class CExprResolve;
30261
 
namespace Puma {
30262
 
 
30263
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30264
 
class CT_IndexDesignator : public CT_Expression {
30265
 
#line 30266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30266
 
  friend class ::WinIfExists;
30267
 
  friend class ::WinImportHandler;
30268
 
  friend class ::WinMacros;
30269
 
  friend class ::CMatchSyntax;
30270
 
  friend class ::ExtGnu;
30271
 
  friend class ::ExtAC;
30272
 
  friend class ::ExtACBuilderCoupling;
30273
 
  friend class ::ExtACSyntaxCoupling;
30274
 
  friend class ::ExtACTree;
30275
 
  friend class ::ExtACKeywords;
30276
 
  friend class ::WinAsm;
30277
 
  friend class ::WinDeclSpecs;
30278
 
  friend class ::WinMemberExplSpec;
30279
 
  friend class ::WinTypeKeywords;
30280
 
  friend class ::PragmaOnceUnitState;
30281
 
  friend class ::PragmaOnce;
30282
 
  friend class ::CCExprResolve;
30283
 
  friend class ::CExprResolve;
30284
 
 
30285
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30286
 
 
30287
 
  CTree *sons[3]; // open, index, close
30288
 
 
30289
 
public:
30290
 
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
30291
 
    sons[0] = o; sons[1] = i; sons[2] = c;
30292
 
  }
30293
 
  static const char *NodeId ();
30294
 
  const char *NodeName () const { return NodeId (); }
30295
 
  int Sons () const { return 3; }
30296
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
30297
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30298
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
30299
 
  }
30300
 
   private:
30301
 
  typedef CT_IndexDesignator CCExprResolveExpr;
30302
 
 
30303
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
30304
 
 public :
30305
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
30306
 
  typedef CT_IndexDesignator CExprResolveExpr;
30307
 
 
30308
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
30309
 
 public :
30310
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
30311
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30312
 
};
30313
 
 
30314
 
 
30315
 
#line 30316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30316
 
} // closed Puma
30317
 
class WinIfExists;
30318
 
class WinImportHandler;
30319
 
class WinMacros;
30320
 
class CMatchSyntax;
30321
 
class ExtGnu;
30322
 
class ExtAC;
30323
 
class ExtACBuilderCoupling;
30324
 
class ExtACSyntaxCoupling;
30325
 
class ExtACTree;
30326
 
class ExtACKeywords;
30327
 
class WinAsm;
30328
 
class WinDeclSpecs;
30329
 
class WinMemberExplSpec;
30330
 
class WinTypeKeywords;
30331
 
class PragmaOnceUnitState;
30332
 
class PragmaOnce;
30333
 
class CCExprResolve;
30334
 
class CExprResolve;
30335
 
namespace Puma {
30336
 
 
30337
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30338
 
class CT_MembDesignator : public CT_Expression {
30339
 
#line 30340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30340
 
  friend class ::WinIfExists;
30341
 
  friend class ::WinImportHandler;
30342
 
  friend class ::WinMacros;
30343
 
  friend class ::CMatchSyntax;
30344
 
  friend class ::ExtGnu;
30345
 
  friend class ::ExtAC;
30346
 
  friend class ::ExtACBuilderCoupling;
30347
 
  friend class ::ExtACSyntaxCoupling;
30348
 
  friend class ::ExtACTree;
30349
 
  friend class ::ExtACKeywords;
30350
 
  friend class ::WinAsm;
30351
 
  friend class ::WinDeclSpecs;
30352
 
  friend class ::WinMemberExplSpec;
30353
 
  friend class ::WinTypeKeywords;
30354
 
  friend class ::PragmaOnceUnitState;
30355
 
  friend class ::PragmaOnce;
30356
 
  friend class ::CCExprResolve;
30357
 
  friend class ::CExprResolve;
30358
 
 
30359
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30360
 
 
30361
 
  CTree *sons[2]; // dot, member
30362
 
 
30363
 
public:
30364
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
30365
 
  static const char *NodeId ();
30366
 
  const char *NodeName () const { return NodeId (); }
30367
 
  int Sons () const { return 2; }
30368
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
30369
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30370
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
30371
 
  }
30372
 
   private:
30373
 
  typedef CT_MembDesignator CCExprResolveExpr;
30374
 
 
30375
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
30376
 
 public :
30377
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
30378
 
  typedef CT_MembDesignator CExprResolveExpr;
30379
 
 
30380
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
30381
 
 public :
30382
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
30383
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30384
 
};
30385
 
 
30386
 
 
30387
 
#line 30388 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30388
 
} // closed Puma
30389
 
class WinIfExists;
30390
 
class WinImportHandler;
30391
 
class WinMacros;
30392
 
class CMatchSyntax;
30393
 
class ExtGnu;
30394
 
class ExtAC;
30395
 
class ExtACBuilderCoupling;
30396
 
class ExtACSyntaxCoupling;
30397
 
class ExtACTree;
30398
 
class ExtACKeywords;
30399
 
class WinAsm;
30400
 
class WinDeclSpecs;
30401
 
class WinMemberExplSpec;
30402
 
class WinTypeKeywords;
30403
 
class PragmaOnceUnitState;
30404
 
class PragmaOnce;
30405
 
class CCExprResolve;
30406
 
class CExprResolve;
30407
 
namespace Puma {
30408
 
 
30409
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30410
 
class CT_DesignatorSeq : public CT_List, public CSemValue {
30411
 
#line 30412 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30412
 
  friend class ::WinIfExists;
30413
 
  friend class ::WinImportHandler;
30414
 
  friend class ::WinMacros;
30415
 
  friend class ::CMatchSyntax;
30416
 
  friend class ::ExtGnu;
30417
 
  friend class ::ExtAC;
30418
 
  friend class ::ExtACBuilderCoupling;
30419
 
  friend class ::ExtACSyntaxCoupling;
30420
 
  friend class ::ExtACTree;
30421
 
  friend class ::ExtACKeywords;
30422
 
  friend class ::WinAsm;
30423
 
  friend class ::WinDeclSpecs;
30424
 
  friend class ::WinMemberExplSpec;
30425
 
  friend class ::WinTypeKeywords;
30426
 
  friend class ::PragmaOnceUnitState;
30427
 
  friend class ::PragmaOnce;
30428
 
  friend class ::CCExprResolve;
30429
 
  friend class ::CExprResolve;
30430
 
 
30431
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30432
 
 
30433
 
public:
30434
 
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
30435
 
  static const char *NodeId ();
30436
 
  const char *NodeName () const { return NodeId (); }
30437
 
 
30438
 
  CTypeInfo *Type () const { return type; }
30439
 
  CExprValue *Value () const { return value; }
30440
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
30441
 
};
30442
 
 
30443
 
/*****************************************************************************/
30444
 
/*                                                                           */
30445
 
/*                         Declaration specifiers                            */
30446
 
/*                                                                           */
30447
 
/*****************************************************************************/
30448
 
 
30449
 
 
30450
 
#line 30451 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30451
 
} // closed Puma
30452
 
class WinIfExists;
30453
 
class WinImportHandler;
30454
 
class WinMacros;
30455
 
class CMatchSyntax;
30456
 
class ExtGnu;
30457
 
class ExtAC;
30458
 
class ExtACBuilderCoupling;
30459
 
class ExtACSyntaxCoupling;
30460
 
class ExtACTree;
30461
 
class ExtACKeywords;
30462
 
class WinAsm;
30463
 
class WinDeclSpecs;
30464
 
class WinMemberExplSpec;
30465
 
class WinTypeKeywords;
30466
 
class PragmaOnceUnitState;
30467
 
class PragmaOnce;
30468
 
class CCExprResolve;
30469
 
class CExprResolve;
30470
 
namespace Puma {
30471
 
 
30472
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30473
 
class CT_DeclSpec : public CTree {
30474
 
#line 30475 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30475
 
  friend class ::WinIfExists;
30476
 
  friend class ::WinImportHandler;
30477
 
  friend class ::WinMacros;
30478
 
  friend class ::CMatchSyntax;
30479
 
  friend class ::ExtGnu;
30480
 
  friend class ::ExtAC;
30481
 
  friend class ::ExtACBuilderCoupling;
30482
 
  friend class ::ExtACSyntaxCoupling;
30483
 
  friend class ::ExtACTree;
30484
 
  friend class ::ExtACKeywords;
30485
 
  friend class ::WinAsm;
30486
 
  friend class ::WinDeclSpecs;
30487
 
  friend class ::WinMemberExplSpec;
30488
 
  friend class ::WinTypeKeywords;
30489
 
  friend class ::PragmaOnceUnitState;
30490
 
  friend class ::PragmaOnce;
30491
 
  friend class ::CCExprResolve;
30492
 
  friend class ::CExprResolve;
30493
 
 
30494
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30495
 
 
30496
 
protected:
30497
 
  CT_DeclSpec () {}
30498
 
};
30499
 
 
30500
 
 
30501
 
#line 30502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30502
 
} // closed Puma
30503
 
class WinIfExists;
30504
 
class WinImportHandler;
30505
 
class WinMacros;
30506
 
class CMatchSyntax;
30507
 
class ExtGnu;
30508
 
class ExtAC;
30509
 
class ExtACBuilderCoupling;
30510
 
class ExtACSyntaxCoupling;
30511
 
class ExtACTree;
30512
 
class ExtACKeywords;
30513
 
class WinAsm;
30514
 
class WinDeclSpecs;
30515
 
class WinMemberExplSpec;
30516
 
class WinTypeKeywords;
30517
 
class PragmaOnceUnitState;
30518
 
class PragmaOnce;
30519
 
class CCExprResolve;
30520
 
class CExprResolve;
30521
 
namespace Puma {
30522
 
 
30523
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30524
 
class CT_PrimDeclSpec : public CT_DeclSpec {
30525
 
#line 30526 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30526
 
  friend class ::WinIfExists;
30527
 
  friend class ::WinImportHandler;
30528
 
  friend class ::WinMacros;
30529
 
  friend class ::CMatchSyntax;
30530
 
  friend class ::ExtGnu;
30531
 
  friend class ::ExtAC;
30532
 
  friend class ::ExtACBuilderCoupling;
30533
 
  friend class ::ExtACSyntaxCoupling;
30534
 
  friend class ::ExtACTree;
30535
 
  friend class ::ExtACKeywords;
30536
 
  friend class ::WinAsm;
30537
 
  friend class ::WinDeclSpecs;
30538
 
  friend class ::WinMemberExplSpec;
30539
 
  friend class ::WinTypeKeywords;
30540
 
  friend class ::PragmaOnceUnitState;
30541
 
  friend class ::PragmaOnce;
30542
 
  friend class ::CCExprResolve;
30543
 
  friend class ::CExprResolve;
30544
 
 
30545
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30546
 
 
30547
 
public:
30548
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
30549
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
30550
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
30551
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
30552
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
30553
 
              // AspectC++ specific type specifier
30554
 
              PDS_UNKNOWN_T,
30555
 
              // Win specific declaration specifiers
30556
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
30557
 
              PDS_UNKNOWN, PDS_NUM };
30558
 
 
30559
 
private:
30560
 
  Type _type;
30561
 
  CT_Token *_token;
30562
 
 
30563
 
  void determine_type ();
30564
 
 
30565
 
public:
30566
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
30567
 
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
30568
 
  static const char *NodeId ();
30569
 
  const char *NodeName () const { return NodeId (); }
30570
 
  int Sons () const { return _token ? 1 : 0; }
30571
 
  CTree *Son (int n) const 
30572
 
   { return (n == 0) ? _token : (CTree*)0; }
30573
 
  const char *SpecText () const 
30574
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
30575
 
  Type SpecType () const { return _type; }
30576
 
  static const int NumTypes = PDS_NUM;
30577
 
};
30578
 
 
30579
 
 
30580
 
#line 30581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30581
 
} // closed Puma
30582
 
class WinIfExists;
30583
 
class WinImportHandler;
30584
 
class WinMacros;
30585
 
class CMatchSyntax;
30586
 
class ExtGnu;
30587
 
class ExtAC;
30588
 
class ExtACBuilderCoupling;
30589
 
class ExtACSyntaxCoupling;
30590
 
class ExtACTree;
30591
 
class ExtACKeywords;
30592
 
class WinAsm;
30593
 
class WinDeclSpecs;
30594
 
class WinMemberExplSpec;
30595
 
class WinTypeKeywords;
30596
 
class PragmaOnceUnitState;
30597
 
class PragmaOnce;
30598
 
class CCExprResolve;
30599
 
class CExprResolve;
30600
 
namespace Puma {
30601
 
 
30602
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30603
 
class CT_NamedType : public CT_DeclSpec, public CSemObject {
30604
 
#line 30605 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30605
 
  friend class ::WinIfExists;
30606
 
  friend class ::WinImportHandler;
30607
 
  friend class ::WinMacros;
30608
 
  friend class ::CMatchSyntax;
30609
 
  friend class ::ExtGnu;
30610
 
  friend class ::ExtAC;
30611
 
  friend class ::ExtACBuilderCoupling;
30612
 
  friend class ::ExtACSyntaxCoupling;
30613
 
  friend class ::ExtACTree;
30614
 
  friend class ::ExtACKeywords;
30615
 
  friend class ::WinAsm;
30616
 
  friend class ::WinDeclSpecs;
30617
 
  friend class ::WinMemberExplSpec;
30618
 
  friend class ::WinTypeKeywords;
30619
 
  friend class ::PragmaOnceUnitState;
30620
 
  friend class ::PragmaOnce;
30621
 
  friend class ::CCExprResolve;
30622
 
  friend class ::CExprResolve;
30623
 
 
30624
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30625
 
 
30626
 
  CTree *sons[2]; // declspecs, declarator
30627
 
 
30628
 
public:
30629
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
30630
 
  static const char *NodeId ();
30631
 
  const char *NodeName () const { return NodeId (); }
30632
 
  int Sons () const { return CTree::Sons (sons, 2); }
30633
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
30634
 
  CTree *Declarator () const { return sons[1]; }
30635
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30636
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
30637
 
  }
30638
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
30639
 
};
30640
 
      
30641
 
 
30642
 
#line 30643 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30643
 
} // closed Puma
30644
 
class WinIfExists;
30645
 
class WinImportHandler;
30646
 
class WinMacros;
30647
 
class CMatchSyntax;
30648
 
class ExtGnu;
30649
 
class ExtAC;
30650
 
class ExtACBuilderCoupling;
30651
 
class ExtACSyntaxCoupling;
30652
 
class ExtACTree;
30653
 
class ExtACKeywords;
30654
 
class WinAsm;
30655
 
class WinDeclSpecs;
30656
 
class WinMemberExplSpec;
30657
 
class WinTypeKeywords;
30658
 
class PragmaOnceUnitState;
30659
 
class PragmaOnce;
30660
 
class CCExprResolve;
30661
 
class CExprResolve;
30662
 
namespace Puma {
30663
 
 
30664
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30665
 
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
30666
 
#line 30667 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30667
 
  friend class ::WinIfExists;
30668
 
  friend class ::WinImportHandler;
30669
 
  friend class ::WinMacros;
30670
 
  friend class ::CMatchSyntax;
30671
 
  friend class ::ExtGnu;
30672
 
  friend class ::ExtAC;
30673
 
  friend class ::ExtACBuilderCoupling;
30674
 
  friend class ::ExtACSyntaxCoupling;
30675
 
  friend class ::ExtACTree;
30676
 
  friend class ::ExtACKeywords;
30677
 
  friend class ::WinAsm;
30678
 
  friend class ::WinDeclSpecs;
30679
 
  friend class ::WinMemberExplSpec;
30680
 
  friend class ::WinTypeKeywords;
30681
 
  friend class ::PragmaOnceUnitState;
30682
 
  friend class ::PragmaOnce;
30683
 
  friend class ::CCExprResolve;
30684
 
  friend class ::CExprResolve;
30685
 
 
30686
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30687
 
 
30688
 
  CTree *sons[2]; // key, name
30689
 
  
30690
 
public:
30691
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
30692
 
  static const char *NodeId ();
30693
 
  const char *NodeName () const { return NodeId (); }
30694
 
  int Sons () const { return 2; }
30695
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
30696
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
30697
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
30698
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30699
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
30700
 
  }
30701
 
};
30702
 
 
30703
 
 
30704
 
#line 30705 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30705
 
} // closed Puma
30706
 
class WinIfExists;
30707
 
class WinImportHandler;
30708
 
class WinMacros;
30709
 
class CMatchSyntax;
30710
 
class ExtGnu;
30711
 
class ExtAC;
30712
 
class ExtACBuilderCoupling;
30713
 
class ExtACSyntaxCoupling;
30714
 
class ExtACTree;
30715
 
class ExtACKeywords;
30716
 
class WinAsm;
30717
 
class WinDeclSpecs;
30718
 
class WinMemberExplSpec;
30719
 
class WinTypeKeywords;
30720
 
class PragmaOnceUnitState;
30721
 
class PragmaOnce;
30722
 
class CCExprResolve;
30723
 
class CExprResolve;
30724
 
namespace Puma {
30725
 
 
30726
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30727
 
class CT_UnionSpec : public CT_ClassSpec {
30728
 
#line 30729 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30729
 
  friend class ::WinIfExists;
30730
 
  friend class ::WinImportHandler;
30731
 
  friend class ::WinMacros;
30732
 
  friend class ::CMatchSyntax;
30733
 
  friend class ::ExtGnu;
30734
 
  friend class ::ExtAC;
30735
 
  friend class ::ExtACBuilderCoupling;
30736
 
  friend class ::ExtACSyntaxCoupling;
30737
 
  friend class ::ExtACTree;
30738
 
  friend class ::ExtACKeywords;
30739
 
  friend class ::WinAsm;
30740
 
  friend class ::WinDeclSpecs;
30741
 
  friend class ::WinMemberExplSpec;
30742
 
  friend class ::WinTypeKeywords;
30743
 
  friend class ::PragmaOnceUnitState;
30744
 
  friend class ::PragmaOnce;
30745
 
  friend class ::CCExprResolve;
30746
 
  friend class ::CExprResolve;
30747
 
 
30748
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30749
 
 
30750
 
public:
30751
 
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
30752
 
  static const char *NodeId ();
30753
 
  const char *NodeName () const { return NodeId (); }
30754
 
};
30755
 
 
30756
 
 
30757
 
#line 30758 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30758
 
} // closed Puma
30759
 
class WinIfExists;
30760
 
class WinImportHandler;
30761
 
class WinMacros;
30762
 
class CMatchSyntax;
30763
 
class ExtGnu;
30764
 
class ExtAC;
30765
 
class ExtACBuilderCoupling;
30766
 
class ExtACSyntaxCoupling;
30767
 
class ExtACTree;
30768
 
class ExtACKeywords;
30769
 
class WinAsm;
30770
 
class WinDeclSpecs;
30771
 
class WinMemberExplSpec;
30772
 
class WinTypeKeywords;
30773
 
class PragmaOnceUnitState;
30774
 
class PragmaOnce;
30775
 
class CCExprResolve;
30776
 
class CExprResolve;
30777
 
namespace Puma {
30778
 
 
30779
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30780
 
class CT_EnumSpec : public CT_ClassSpec {
30781
 
#line 30782 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30782
 
  friend class ::WinIfExists;
30783
 
  friend class ::WinImportHandler;
30784
 
  friend class ::WinMacros;
30785
 
  friend class ::CMatchSyntax;
30786
 
  friend class ::ExtGnu;
30787
 
  friend class ::ExtAC;
30788
 
  friend class ::ExtACBuilderCoupling;
30789
 
  friend class ::ExtACSyntaxCoupling;
30790
 
  friend class ::ExtACTree;
30791
 
  friend class ::ExtACKeywords;
30792
 
  friend class ::WinAsm;
30793
 
  friend class ::WinDeclSpecs;
30794
 
  friend class ::WinMemberExplSpec;
30795
 
  friend class ::WinTypeKeywords;
30796
 
  friend class ::PragmaOnceUnitState;
30797
 
  friend class ::PragmaOnce;
30798
 
  friend class ::CCExprResolve;
30799
 
  friend class ::CExprResolve;
30800
 
 
30801
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30802
 
 
30803
 
public:
30804
 
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
30805
 
  static const char *NodeId ();
30806
 
  const char *NodeName () const { return NodeId (); }
30807
 
};
30808
 
 
30809
 
 
30810
 
#line 30811 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30811
 
} // closed Puma
30812
 
class WinIfExists;
30813
 
class WinImportHandler;
30814
 
class WinMacros;
30815
 
class CMatchSyntax;
30816
 
class ExtGnu;
30817
 
class ExtAC;
30818
 
class ExtACBuilderCoupling;
30819
 
class ExtACSyntaxCoupling;
30820
 
class ExtACTree;
30821
 
class ExtACKeywords;
30822
 
class WinAsm;
30823
 
class WinDeclSpecs;
30824
 
class WinMemberExplSpec;
30825
 
class WinTypeKeywords;
30826
 
class PragmaOnceUnitState;
30827
 
class PragmaOnce;
30828
 
class CCExprResolve;
30829
 
class CExprResolve;
30830
 
namespace Puma {
30831
 
 
30832
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30833
 
class CT_ExceptionSpec : public CT_DeclSpec {
30834
 
#line 30835 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30835
 
  friend class ::WinIfExists;
30836
 
  friend class ::WinImportHandler;
30837
 
  friend class ::WinMacros;
30838
 
  friend class ::CMatchSyntax;
30839
 
  friend class ::ExtGnu;
30840
 
  friend class ::ExtAC;
30841
 
  friend class ::ExtACBuilderCoupling;
30842
 
  friend class ::ExtACSyntaxCoupling;
30843
 
  friend class ::ExtACTree;
30844
 
  friend class ::ExtACKeywords;
30845
 
  friend class ::WinAsm;
30846
 
  friend class ::WinDeclSpecs;
30847
 
  friend class ::WinMemberExplSpec;
30848
 
  friend class ::WinTypeKeywords;
30849
 
  friend class ::PragmaOnceUnitState;
30850
 
  friend class ::PragmaOnce;
30851
 
  friend class ::CCExprResolve;
30852
 
  friend class ::CExprResolve;
30853
 
 
30854
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30855
 
 
30856
 
  CTree *sons[2]; // throw, type_id_list
30857
 
  
30858
 
public:
30859
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
30860
 
  static const char *NodeId ();
30861
 
  const char *NodeName () const { return NodeId (); }
30862
 
  int Sons () const { return 2; }
30863
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
30864
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
30865
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
30866
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
30867
 
  }
30868
 
};
30869
 
 
30870
 
/*****************************************************************************/
30871
 
/*                                                                           */
30872
 
/*                              Declarations                                 */
30873
 
/*                                                                           */
30874
 
/*****************************************************************************/
30875
 
 
30876
 
 
30877
 
#line 30878 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30878
 
} // closed Puma
30879
 
class WinIfExists;
30880
 
class WinImportHandler;
30881
 
class WinMacros;
30882
 
class CMatchSyntax;
30883
 
class ExtGnu;
30884
 
class ExtAC;
30885
 
class ExtACBuilderCoupling;
30886
 
class ExtACSyntaxCoupling;
30887
 
class ExtACTree;
30888
 
class ExtACKeywords;
30889
 
class WinAsm;
30890
 
class WinDeclSpecs;
30891
 
class WinMemberExplSpec;
30892
 
class WinTypeKeywords;
30893
 
class PragmaOnceUnitState;
30894
 
class PragmaOnce;
30895
 
class CCExprResolve;
30896
 
class CExprResolve;
30897
 
namespace Puma {
30898
 
 
30899
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30900
 
class CT_Decl : public CTree {
30901
 
#line 30902 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30902
 
  friend class ::WinIfExists;
30903
 
  friend class ::WinImportHandler;
30904
 
  friend class ::WinMacros;
30905
 
  friend class ::CMatchSyntax;
30906
 
  friend class ::ExtGnu;
30907
 
  friend class ::ExtAC;
30908
 
  friend class ::ExtACBuilderCoupling;
30909
 
  friend class ::ExtACSyntaxCoupling;
30910
 
  friend class ::ExtACTree;
30911
 
  friend class ::ExtACKeywords;
30912
 
  friend class ::WinAsm;
30913
 
  friend class ::WinDeclSpecs;
30914
 
  friend class ::WinMemberExplSpec;
30915
 
  friend class ::WinTypeKeywords;
30916
 
  friend class ::PragmaOnceUnitState;
30917
 
  friend class ::PragmaOnce;
30918
 
  friend class ::CCExprResolve;
30919
 
  friend class ::CExprResolve;
30920
 
 
30921
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30922
 
 
30923
 
  CT_LinkageSpec *_linkage;
30924
 
protected:
30925
 
  CT_Decl () : _linkage (0) {}
30926
 
public:
30927
 
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
30928
 
  CT_LinkageSpec *Linkage () const { return _linkage; }
30929
 
};
30930
 
 
30931
 
 
30932
 
#line 30933 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30933
 
} // closed Puma
30934
 
class WinIfExists;
30935
 
class WinImportHandler;
30936
 
class WinMacros;
30937
 
class CMatchSyntax;
30938
 
class ExtGnu;
30939
 
class ExtAC;
30940
 
class ExtACBuilderCoupling;
30941
 
class ExtACSyntaxCoupling;
30942
 
class ExtACTree;
30943
 
class ExtACKeywords;
30944
 
class WinAsm;
30945
 
class WinDeclSpecs;
30946
 
class WinMemberExplSpec;
30947
 
class WinTypeKeywords;
30948
 
class PragmaOnceUnitState;
30949
 
class PragmaOnce;
30950
 
class CCExprResolve;
30951
 
class CExprResolve;
30952
 
namespace Puma {
30953
 
 
30954
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30955
 
class CT_Program : public CT_DeclList, public CSemScope {
30956
 
#line 30957 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30957
 
  friend class ::WinIfExists;
30958
 
  friend class ::WinImportHandler;
30959
 
  friend class ::WinMacros;
30960
 
  friend class ::CMatchSyntax;
30961
 
  friend class ::ExtGnu;
30962
 
  friend class ::ExtAC;
30963
 
  friend class ::ExtACBuilderCoupling;
30964
 
  friend class ::ExtACSyntaxCoupling;
30965
 
  friend class ::ExtACTree;
30966
 
  friend class ::ExtACKeywords;
30967
 
  friend class ::WinAsm;
30968
 
  friend class ::WinDeclSpecs;
30969
 
  friend class ::WinMemberExplSpec;
30970
 
  friend class ::WinTypeKeywords;
30971
 
  friend class ::PragmaOnceUnitState;
30972
 
  friend class ::PragmaOnce;
30973
 
  friend class ::CCExprResolve;
30974
 
  friend class ::CExprResolve;
30975
 
 
30976
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
30977
 
 
30978
 
public:
30979
 
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
30980
 
  static const char *NodeId ();
30981
 
  const char *NodeName () const { return NodeId (); }
30982
 
};
30983
 
   
30984
 
 
30985
 
#line 30986 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
30986
 
} // closed Puma
30987
 
class WinIfExists;
30988
 
class WinImportHandler;
30989
 
class WinMacros;
30990
 
class CMatchSyntax;
30991
 
class ExtGnu;
30992
 
class ExtAC;
30993
 
class ExtACBuilderCoupling;
30994
 
class ExtACSyntaxCoupling;
30995
 
class ExtACTree;
30996
 
class ExtACKeywords;
30997
 
class WinAsm;
30998
 
class WinDeclSpecs;
30999
 
class WinMemberExplSpec;
31000
 
class WinTypeKeywords;
31001
 
class PragmaOnceUnitState;
31002
 
class PragmaOnce;
31003
 
class CCExprResolve;
31004
 
class CExprResolve;
31005
 
namespace Puma {
31006
 
 
31007
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31008
 
class CT_ObjDecl : public CT_Decl {
31009
 
#line 31010 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31010
 
  friend class ::WinIfExists;
31011
 
  friend class ::WinImportHandler;
31012
 
  friend class ::WinMacros;
31013
 
  friend class ::CMatchSyntax;
31014
 
  friend class ::ExtGnu;
31015
 
  friend class ::ExtAC;
31016
 
  friend class ::ExtACBuilderCoupling;
31017
 
  friend class ::ExtACSyntaxCoupling;
31018
 
  friend class ::ExtACTree;
31019
 
  friend class ::ExtACKeywords;
31020
 
  friend class ::WinAsm;
31021
 
  friend class ::WinDeclSpecs;
31022
 
  friend class ::WinMemberExplSpec;
31023
 
  friend class ::WinTypeKeywords;
31024
 
  friend class ::PragmaOnceUnitState;
31025
 
  friend class ::PragmaOnce;
31026
 
  friend class ::CCExprResolve;
31027
 
  friend class ::CExprResolve;
31028
 
 
31029
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31030
 
 
31031
 
  CTree *sons[3]; // declspecs, declarators, colon
31032
 
 
31033
 
public:
31034
 
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
31035
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
31036
 
  }
31037
 
  static const char *NodeId ();
31038
 
  const char *NodeName () const { return NodeId (); }
31039
 
  int Sons () const { return 3; }
31040
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
31041
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
31042
 
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
31043
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31044
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
31045
 
  }
31046
 
};
31047
 
 
31048
 
 
31049
 
#line 31050 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31050
 
} // closed Puma
31051
 
class WinIfExists;
31052
 
class WinImportHandler;
31053
 
class WinMacros;
31054
 
class CMatchSyntax;
31055
 
class ExtGnu;
31056
 
class ExtAC;
31057
 
class ExtACBuilderCoupling;
31058
 
class ExtACSyntaxCoupling;
31059
 
class ExtACTree;
31060
 
class ExtACKeywords;
31061
 
class WinAsm;
31062
 
class WinDeclSpecs;
31063
 
class WinMemberExplSpec;
31064
 
class WinTypeKeywords;
31065
 
class PragmaOnceUnitState;
31066
 
class PragmaOnce;
31067
 
class CCExprResolve;
31068
 
class CExprResolve;
31069
 
namespace Puma {
31070
 
 
31071
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31072
 
class CT_TemplateDecl : public CT_Decl, public CSemScope {
31073
 
#line 31074 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31074
 
  friend class ::WinIfExists;
31075
 
  friend class ::WinImportHandler;
31076
 
  friend class ::WinMacros;
31077
 
  friend class ::CMatchSyntax;
31078
 
  friend class ::ExtGnu;
31079
 
  friend class ::ExtAC;
31080
 
  friend class ::ExtACBuilderCoupling;
31081
 
  friend class ::ExtACSyntaxCoupling;
31082
 
  friend class ::ExtACTree;
31083
 
  friend class ::ExtACKeywords;
31084
 
  friend class ::WinAsm;
31085
 
  friend class ::WinDeclSpecs;
31086
 
  friend class ::WinMemberExplSpec;
31087
 
  friend class ::WinTypeKeywords;
31088
 
  friend class ::PragmaOnceUnitState;
31089
 
  friend class ::PragmaOnce;
31090
 
  friend class ::CCExprResolve;
31091
 
  friend class ::CExprResolve;
31092
 
 
31093
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31094
 
 
31095
 
  CTree *sons[3]; // export, param_list, decl
31096
 
 
31097
 
public:
31098
 
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
31099
 
    sons[0] = e; sons[1] = p; sons[2] = d;
31100
 
  }
31101
 
  static const char *NodeId ();
31102
 
  const char *NodeName () const { return NodeId (); }
31103
 
  int Sons () const { return CTree::Sons (sons, 3); }
31104
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
31105
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31106
 
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
31107
 
  }
31108
 
  CTree *Export () const { return sons[0]; }
31109
 
  CT_TemplateParamList *Parameters () const { 
31110
 
    return (CT_TemplateParamList*)sons[1]; 
31111
 
  }
31112
 
  CTree *Declaration () const { return sons[2]; }
31113
 
};
31114
 
 
31115
 
 
31116
 
#line 31117 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31117
 
} // closed Puma
31118
 
class WinIfExists;
31119
 
class WinImportHandler;
31120
 
class WinMacros;
31121
 
class CMatchSyntax;
31122
 
class ExtGnu;
31123
 
class ExtAC;
31124
 
class ExtACBuilderCoupling;
31125
 
class ExtACSyntaxCoupling;
31126
 
class ExtACTree;
31127
 
class ExtACKeywords;
31128
 
class WinAsm;
31129
 
class WinDeclSpecs;
31130
 
class WinMemberExplSpec;
31131
 
class WinTypeKeywords;
31132
 
class PragmaOnceUnitState;
31133
 
class PragmaOnce;
31134
 
class CCExprResolve;
31135
 
class CExprResolve;
31136
 
namespace Puma {
31137
 
 
31138
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31139
 
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
31140
 
#line 31141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31141
 
  friend class ::WinIfExists;
31142
 
  friend class ::WinImportHandler;
31143
 
  friend class ::WinMacros;
31144
 
  friend class ::CMatchSyntax;
31145
 
  friend class ::ExtGnu;
31146
 
  friend class ::ExtAC;
31147
 
  friend class ::ExtACBuilderCoupling;
31148
 
  friend class ::ExtACSyntaxCoupling;
31149
 
  friend class ::ExtACTree;
31150
 
  friend class ::ExtACKeywords;
31151
 
  friend class ::WinAsm;
31152
 
  friend class ::WinDeclSpecs;
31153
 
  friend class ::WinMemberExplSpec;
31154
 
  friend class ::WinTypeKeywords;
31155
 
  friend class ::PragmaOnceUnitState;
31156
 
  friend class ::PragmaOnce;
31157
 
  friend class ::CCExprResolve;
31158
 
  friend class ::CExprResolve;
31159
 
 
31160
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31161
 
 
31162
 
protected:
31163
 
  CT_TemplateParamDecl () {}
31164
 
  
31165
 
public:
31166
 
  virtual CT_ExprList *DefaultArgument () const = 0;
31167
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
31168
 
};
31169
 
 
31170
 
 
31171
 
#line 31172 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31172
 
} // closed Puma
31173
 
class WinIfExists;
31174
 
class WinImportHandler;
31175
 
class WinMacros;
31176
 
class CMatchSyntax;
31177
 
class ExtGnu;
31178
 
class ExtAC;
31179
 
class ExtACBuilderCoupling;
31180
 
class ExtACSyntaxCoupling;
31181
 
class ExtACTree;
31182
 
class ExtACKeywords;
31183
 
class WinAsm;
31184
 
class WinDeclSpecs;
31185
 
class WinMemberExplSpec;
31186
 
class WinTypeKeywords;
31187
 
class PragmaOnceUnitState;
31188
 
class PragmaOnce;
31189
 
class CCExprResolve;
31190
 
class CExprResolve;
31191
 
namespace Puma {
31192
 
 
31193
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31194
 
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
31195
 
#line 31196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31196
 
  friend class ::WinIfExists;
31197
 
  friend class ::WinImportHandler;
31198
 
  friend class ::WinMacros;
31199
 
  friend class ::CMatchSyntax;
31200
 
  friend class ::ExtGnu;
31201
 
  friend class ::ExtAC;
31202
 
  friend class ::ExtACBuilderCoupling;
31203
 
  friend class ::ExtACSyntaxCoupling;
31204
 
  friend class ::ExtACTree;
31205
 
  friend class ::ExtACKeywords;
31206
 
  friend class ::WinAsm;
31207
 
  friend class ::WinDeclSpecs;
31208
 
  friend class ::WinMemberExplSpec;
31209
 
  friend class ::WinTypeKeywords;
31210
 
  friend class ::PragmaOnceUnitState;
31211
 
  friend class ::PragmaOnce;
31212
 
  friend class ::CCExprResolve;
31213
 
  friend class ::CExprResolve;
31214
 
 
31215
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31216
 
 
31217
 
  CTree *sons[3]; // declspecs, declarator, init
31218
 
 
31219
 
public:
31220
 
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
31221
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
31222
 
  }
31223
 
  static const char *NodeId ();
31224
 
  const char *NodeName () const { return NodeId (); }
31225
 
  int Sons () const { return CTree::Sons (sons, 3); }
31226
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
31227
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
31228
 
  CTree *Declarator () const { return sons[1]; }
31229
 
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
31230
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
31231
 
  void Initializer (CTree *i) { sons[2] = i; }
31232
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31233
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
31234
 
  }
31235
 
};
31236
 
 
31237
 
 
31238
 
#line 31239 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31239
 
} // closed Puma
31240
 
class WinIfExists;
31241
 
class WinImportHandler;
31242
 
class WinMacros;
31243
 
class CMatchSyntax;
31244
 
class ExtGnu;
31245
 
class ExtAC;
31246
 
class ExtACBuilderCoupling;
31247
 
class ExtACSyntaxCoupling;
31248
 
class ExtACTree;
31249
 
class ExtACKeywords;
31250
 
class WinAsm;
31251
 
class WinDeclSpecs;
31252
 
class WinMemberExplSpec;
31253
 
class WinTypeKeywords;
31254
 
class PragmaOnceUnitState;
31255
 
class PragmaOnce;
31256
 
class CCExprResolve;
31257
 
class CExprResolve;
31258
 
namespace Puma {
31259
 
 
31260
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31261
 
class CT_TypeParamDecl : public CT_TemplateParamDecl {
31262
 
#line 31263 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31263
 
  friend class ::WinIfExists;
31264
 
  friend class ::WinImportHandler;
31265
 
  friend class ::WinMacros;
31266
 
  friend class ::CMatchSyntax;
31267
 
  friend class ::ExtGnu;
31268
 
  friend class ::ExtAC;
31269
 
  friend class ::ExtACBuilderCoupling;
31270
 
  friend class ::ExtACSyntaxCoupling;
31271
 
  friend class ::ExtACTree;
31272
 
  friend class ::ExtACKeywords;
31273
 
  friend class ::WinAsm;
31274
 
  friend class ::WinDeclSpecs;
31275
 
  friend class ::WinMemberExplSpec;
31276
 
  friend class ::WinTypeKeywords;
31277
 
  friend class ::PragmaOnceUnitState;
31278
 
  friend class ::PragmaOnce;
31279
 
  friend class ::CCExprResolve;
31280
 
  friend class ::CExprResolve;
31281
 
 
31282
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31283
 
 
31284
 
  CTree *sons[4]; // params, key, id, init
31285
 
 
31286
 
public:
31287
 
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
31288
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
31289
 
  }
31290
 
  static const char *NodeId ();
31291
 
  const char *NodeName () const { return NodeId (); }
31292
 
  int Sons () const { return CTree::Sons (sons, 4); }
31293
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
31294
 
  CT_TemplateParamList *Parameters () const { 
31295
 
    return (CT_TemplateParamList*)sons[0]; 
31296
 
  }
31297
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
31298
 
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
31299
 
  void Initializer (CTree *i) { sons[3] = i; }
31300
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31301
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
31302
 
  }
31303
 
};
31304
 
 
31305
 
 
31306
 
#line 31307 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31307
 
} // closed Puma
31308
 
class WinIfExists;
31309
 
class WinImportHandler;
31310
 
class WinMacros;
31311
 
class CMatchSyntax;
31312
 
class ExtGnu;
31313
 
class ExtAC;
31314
 
class ExtACBuilderCoupling;
31315
 
class ExtACSyntaxCoupling;
31316
 
class ExtACTree;
31317
 
class ExtACKeywords;
31318
 
class WinAsm;
31319
 
class WinDeclSpecs;
31320
 
class WinMemberExplSpec;
31321
 
class WinTypeKeywords;
31322
 
class PragmaOnceUnitState;
31323
 
class PragmaOnce;
31324
 
class CCExprResolve;
31325
 
class CExprResolve;
31326
 
namespace Puma {
31327
 
 
31328
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31329
 
class CT_EnumDef : public CT_Decl, public CSemObject {
31330
 
#line 31331 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31331
 
  friend class ::WinIfExists;
31332
 
  friend class ::WinImportHandler;
31333
 
  friend class ::WinMacros;
31334
 
  friend class ::CMatchSyntax;
31335
 
  friend class ::ExtGnu;
31336
 
  friend class ::ExtAC;
31337
 
  friend class ::ExtACBuilderCoupling;
31338
 
  friend class ::ExtACSyntaxCoupling;
31339
 
  friend class ::ExtACTree;
31340
 
  friend class ::ExtACKeywords;
31341
 
  friend class ::WinAsm;
31342
 
  friend class ::WinDeclSpecs;
31343
 
  friend class ::WinMemberExplSpec;
31344
 
  friend class ::WinTypeKeywords;
31345
 
  friend class ::PragmaOnceUnitState;
31346
 
  friend class ::PragmaOnce;
31347
 
  friend class ::CCExprResolve;
31348
 
  friend class ::CExprResolve;
31349
 
 
31350
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31351
 
 
31352
 
  CTree *sons[3]; // key, name, enumerators
31353
 
 
31354
 
public:
31355
 
  CT_EnumDef (CTree *k, CTree *n) {
31356
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
31357
 
  }
31358
 
  static const char *NodeId ();
31359
 
  const char *NodeName () const { return NodeId (); }
31360
 
  int Sons () const { return CTree::Sons (sons, 3); }
31361
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
31362
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
31363
 
  void Enumerators (CTree *el) { sons[2] = el; }
31364
 
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
31365
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31366
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
31367
 
  }
31368
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
31369
 
};
31370
 
 
31371
 
 
31372
 
#line 31373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31373
 
} // closed Puma
31374
 
class WinIfExists;
31375
 
class WinImportHandler;
31376
 
class WinMacros;
31377
 
class CMatchSyntax;
31378
 
class ExtGnu;
31379
 
class ExtAC;
31380
 
class ExtACBuilderCoupling;
31381
 
class ExtACSyntaxCoupling;
31382
 
class ExtACTree;
31383
 
class ExtACKeywords;
31384
 
class WinAsm;
31385
 
class WinDeclSpecs;
31386
 
class WinMemberExplSpec;
31387
 
class WinTypeKeywords;
31388
 
class PragmaOnceUnitState;
31389
 
class PragmaOnce;
31390
 
class CCExprResolve;
31391
 
class CExprResolve;
31392
 
namespace Puma {
31393
 
 
31394
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31395
 
class CT_Enumerator : public CT_Decl, public CSemObject {
31396
 
#line 31397 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31397
 
  friend class ::WinIfExists;
31398
 
  friend class ::WinImportHandler;
31399
 
  friend class ::WinMacros;
31400
 
  friend class ::CMatchSyntax;
31401
 
  friend class ::ExtGnu;
31402
 
  friend class ::ExtAC;
31403
 
  friend class ::ExtACBuilderCoupling;
31404
 
  friend class ::ExtACSyntaxCoupling;
31405
 
  friend class ::ExtACTree;
31406
 
  friend class ::ExtACKeywords;
31407
 
  friend class ::WinAsm;
31408
 
  friend class ::WinDeclSpecs;
31409
 
  friend class ::WinMemberExplSpec;
31410
 
  friend class ::WinTypeKeywords;
31411
 
  friend class ::PragmaOnceUnitState;
31412
 
  friend class ::PragmaOnce;
31413
 
  friend class ::CCExprResolve;
31414
 
  friend class ::CExprResolve;
31415
 
 
31416
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31417
 
 
31418
 
  CTree *sons[2]; // name, init
31419
 
 
31420
 
public:
31421
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
31422
 
  static const char *NodeId ();
31423
 
  const char *NodeName () const { return NodeId (); }
31424
 
  int Sons () const { return CTree::Sons (sons, 2); }
31425
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
31426
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
31427
 
  void Initializer (CTree *i) { sons[1] = i; }
31428
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
31429
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31430
 
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
31431
 
  }
31432
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
31433
 
};
31434
 
 
31435
 
 
31436
 
#line 31437 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31437
 
} // closed Puma
31438
 
class WinIfExists;
31439
 
class WinImportHandler;
31440
 
class WinMacros;
31441
 
class CMatchSyntax;
31442
 
class ExtGnu;
31443
 
class ExtAC;
31444
 
class ExtACBuilderCoupling;
31445
 
class ExtACSyntaxCoupling;
31446
 
class ExtACTree;
31447
 
class ExtACKeywords;
31448
 
class WinAsm;
31449
 
class WinDeclSpecs;
31450
 
class WinMemberExplSpec;
31451
 
class WinTypeKeywords;
31452
 
class PragmaOnceUnitState;
31453
 
class PragmaOnce;
31454
 
class CCExprResolve;
31455
 
class CExprResolve;
31456
 
namespace Puma {
31457
 
 
31458
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31459
 
class CT_FctDef : public CT_Decl, public CSemObject {
31460
 
#line 31461 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31461
 
  friend class ::WinIfExists;
31462
 
  friend class ::WinImportHandler;
31463
 
  friend class ::WinMacros;
31464
 
  friend class ::CMatchSyntax;
31465
 
  friend class ::ExtGnu;
31466
 
  friend class ::ExtAC;
31467
 
  friend class ::ExtACBuilderCoupling;
31468
 
  friend class ::ExtACSyntaxCoupling;
31469
 
  friend class ::ExtACTree;
31470
 
  friend class ::ExtACKeywords;
31471
 
  friend class ::WinAsm;
31472
 
  friend class ::WinDeclSpecs;
31473
 
  friend class ::WinMemberExplSpec;
31474
 
  friend class ::WinTypeKeywords;
31475
 
  friend class ::PragmaOnceUnitState;
31476
 
  friend class ::PragmaOnce;
31477
 
  friend class ::CCExprResolve;
31478
 
  friend class ::CExprResolve;
31479
 
 
31480
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31481
 
 
31482
 
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
31483
 
 
31484
 
public:
31485
 
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
31486
 
             CTree *b, CTree *hs) {
31487
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
31488
 
    sons[5] = b; sons[6] = hs; 
31489
 
  }
31490
 
  static const char *NodeId ();
31491
 
  const char *NodeName () const { return NodeId (); }
31492
 
  int Sons () const { return CTree::Sons (sons, 7); }
31493
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
31494
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
31495
 
  CTree *Declarator () const { return sons[1]; }
31496
 
  CT_Token *TryKey () const { return (CT_Token*)sons[2]; }
31497
 
  CTree *CtorInit () const { return sons[3]; }
31498
 
  CT_ArgDeclSeq *ArgDeclSeq () const { return (CT_ArgDeclSeq*)sons[4]; }
31499
 
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
31500
 
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
31501
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
31502
 
  void CtorInit (CTree *i) { sons[3] = i; }
31503
 
  void Body (CTree *b) { sons[5] = b; }
31504
 
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
31505
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
31506
 
  }
31507
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31508
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
31509
 
  }
31510
 
};
31511
 
 
31512
 
 
31513
 
#line 31514 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31514
 
} // closed Puma
31515
 
class WinIfExists;
31516
 
class WinImportHandler;
31517
 
class WinMacros;
31518
 
class CMatchSyntax;
31519
 
class ExtGnu;
31520
 
class ExtAC;
31521
 
class ExtACBuilderCoupling;
31522
 
class ExtACSyntaxCoupling;
31523
 
class ExtACTree;
31524
 
class ExtACKeywords;
31525
 
class WinAsm;
31526
 
class WinDeclSpecs;
31527
 
class WinMemberExplSpec;
31528
 
class WinTypeKeywords;
31529
 
class PragmaOnceUnitState;
31530
 
class PragmaOnce;
31531
 
class CCExprResolve;
31532
 
class CExprResolve;
31533
 
namespace Puma {
31534
 
 
31535
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31536
 
class CT_AsmDef : public CT_Decl {
31537
 
#line 31538 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31538
 
  friend class ::WinIfExists;
31539
 
  friend class ::WinImportHandler;
31540
 
  friend class ::WinMacros;
31541
 
  friend class ::CMatchSyntax;
31542
 
  friend class ::ExtGnu;
31543
 
  friend class ::ExtAC;
31544
 
  friend class ::ExtACBuilderCoupling;
31545
 
  friend class ::ExtACSyntaxCoupling;
31546
 
  friend class ::ExtACTree;
31547
 
  friend class ::ExtACKeywords;
31548
 
  friend class ::WinAsm;
31549
 
  friend class ::WinDeclSpecs;
31550
 
  friend class ::WinMemberExplSpec;
31551
 
  friend class ::WinTypeKeywords;
31552
 
  friend class ::PragmaOnceUnitState;
31553
 
  friend class ::PragmaOnce;
31554
 
  friend class ::CCExprResolve;
31555
 
  friend class ::CExprResolve;
31556
 
 
31557
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31558
 
 
31559
 
  CTree *sons[5]; // asm, open, str, close, semi_colon
31560
 
 
31561
 
public:
31562
 
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
31563
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
31564
 
  }
31565
 
  static const char *NodeId ();
31566
 
  const char *NodeName () const { return NodeId (); }
31567
 
  int Sons () const { return 5; }
31568
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
31569
 
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
31570
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31571
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
31572
 
  }
31573
 
};
31574
 
 
31575
 
 
31576
 
#line 31577 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31577
 
} // closed Puma
31578
 
class WinIfExists;
31579
 
class WinImportHandler;
31580
 
class WinMacros;
31581
 
class CMatchSyntax;
31582
 
class ExtGnu;
31583
 
class ExtAC;
31584
 
class ExtACBuilderCoupling;
31585
 
class ExtACSyntaxCoupling;
31586
 
class ExtACTree;
31587
 
class ExtACKeywords;
31588
 
class WinAsm;
31589
 
class WinDeclSpecs;
31590
 
class WinMemberExplSpec;
31591
 
class WinTypeKeywords;
31592
 
class PragmaOnceUnitState;
31593
 
class PragmaOnce;
31594
 
class CCExprResolve;
31595
 
class CExprResolve;
31596
 
namespace Puma {
31597
 
 
31598
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31599
 
class CT_Handler : public CT_Decl, public CSemScope {
31600
 
#line 31601 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31601
 
  friend class ::WinIfExists;
31602
 
  friend class ::WinImportHandler;
31603
 
  friend class ::WinMacros;
31604
 
  friend class ::CMatchSyntax;
31605
 
  friend class ::ExtGnu;
31606
 
  friend class ::ExtAC;
31607
 
  friend class ::ExtACBuilderCoupling;
31608
 
  friend class ::ExtACSyntaxCoupling;
31609
 
  friend class ::ExtACTree;
31610
 
  friend class ::ExtACKeywords;
31611
 
  friend class ::WinAsm;
31612
 
  friend class ::WinDeclSpecs;
31613
 
  friend class ::WinMemberExplSpec;
31614
 
  friend class ::WinTypeKeywords;
31615
 
  friend class ::PragmaOnceUnitState;
31616
 
  friend class ::PragmaOnce;
31617
 
  friend class ::CCExprResolve;
31618
 
  friend class ::CExprResolve;
31619
 
 
31620
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31621
 
 
31622
 
  CTree *sons[3]; // catch, exception_decl, stmt
31623
 
 
31624
 
public:
31625
 
  CT_Handler (CTree *c, CTree *e, CTree *s) {
31626
 
    sons[0] = c; sons[1] = e; sons[2] = s;
31627
 
  }
31628
 
  static const char *NodeId ();
31629
 
  const char *NodeName () const { return NodeId (); }
31630
 
  int Sons () const { return 3; }
31631
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
31632
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
31633
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
31634
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31635
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
31636
 
  }
31637
 
};
31638
 
 
31639
 
 
31640
 
#line 31641 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31641
 
} // closed Puma
31642
 
class WinIfExists;
31643
 
class WinImportHandler;
31644
 
class WinMacros;
31645
 
class CMatchSyntax;
31646
 
class ExtGnu;
31647
 
class ExtAC;
31648
 
class ExtACBuilderCoupling;
31649
 
class ExtACSyntaxCoupling;
31650
 
class ExtACTree;
31651
 
class ExtACKeywords;
31652
 
class WinAsm;
31653
 
class WinDeclSpecs;
31654
 
class WinMemberExplSpec;
31655
 
class WinTypeKeywords;
31656
 
class PragmaOnceUnitState;
31657
 
class PragmaOnce;
31658
 
class CCExprResolve;
31659
 
class CExprResolve;
31660
 
namespace Puma {
31661
 
 
31662
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31663
 
class CT_LinkageSpec : public CT_Decl {
31664
 
#line 31665 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31665
 
  friend class ::WinIfExists;
31666
 
  friend class ::WinImportHandler;
31667
 
  friend class ::WinMacros;
31668
 
  friend class ::CMatchSyntax;
31669
 
  friend class ::ExtGnu;
31670
 
  friend class ::ExtAC;
31671
 
  friend class ::ExtACBuilderCoupling;
31672
 
  friend class ::ExtACSyntaxCoupling;
31673
 
  friend class ::ExtACTree;
31674
 
  friend class ::ExtACKeywords;
31675
 
  friend class ::WinAsm;
31676
 
  friend class ::WinDeclSpecs;
31677
 
  friend class ::WinMemberExplSpec;
31678
 
  friend class ::WinTypeKeywords;
31679
 
  friend class ::PragmaOnceUnitState;
31680
 
  friend class ::PragmaOnce;
31681
 
  friend class ::CCExprResolve;
31682
 
  friend class ::CExprResolve;
31683
 
 
31684
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31685
 
 
31686
 
  CTree *sons[5]; // extern, str, open, decls, close
31687
 
 
31688
 
public:
31689
 
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
31690
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
31691
 
    if (isList ())
31692
 
      ((CT_DeclList*)Decls ())->Linkage (this);
31693
 
    else
31694
 
      ((CT_Decl*)Decls ())->Linkage (this);
31695
 
  }
31696
 
  static const char *NodeId ();
31697
 
  const char *NodeName () const { return NodeId (); }
31698
 
  int Sons () const { return CTree::Sons (sons, 5); }
31699
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
31700
 
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
31701
 
  CTree *Decls () const { return sons[3]; }
31702
 
  bool isList () const {
31703
 
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
31704
 
  }
31705
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31706
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
31707
 
  }
31708
 
};
31709
 
 
31710
 
 
31711
 
#line 31712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31712
 
} // closed Puma
31713
 
class WinIfExists;
31714
 
class WinImportHandler;
31715
 
class WinMacros;
31716
 
class CMatchSyntax;
31717
 
class ExtGnu;
31718
 
class ExtAC;
31719
 
class ExtACBuilderCoupling;
31720
 
class ExtACSyntaxCoupling;
31721
 
class ExtACTree;
31722
 
class ExtACKeywords;
31723
 
class WinAsm;
31724
 
class WinDeclSpecs;
31725
 
class WinMemberExplSpec;
31726
 
class WinTypeKeywords;
31727
 
class PragmaOnceUnitState;
31728
 
class PragmaOnce;
31729
 
class CCExprResolve;
31730
 
class CExprResolve;
31731
 
namespace Puma {
31732
 
 
31733
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31734
 
class CT_ArgDecl : public CT_Decl, public CSemObject {
31735
 
#line 31736 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31736
 
  friend class ::WinIfExists;
31737
 
  friend class ::WinImportHandler;
31738
 
  friend class ::WinMacros;
31739
 
  friend class ::CMatchSyntax;
31740
 
  friend class ::ExtGnu;
31741
 
  friend class ::ExtAC;
31742
 
  friend class ::ExtACBuilderCoupling;
31743
 
  friend class ::ExtACSyntaxCoupling;
31744
 
  friend class ::ExtACTree;
31745
 
  friend class ::ExtACKeywords;
31746
 
  friend class ::WinAsm;
31747
 
  friend class ::WinDeclSpecs;
31748
 
  friend class ::WinMemberExplSpec;
31749
 
  friend class ::WinTypeKeywords;
31750
 
  friend class ::PragmaOnceUnitState;
31751
 
  friend class ::PragmaOnce;
31752
 
  friend class ::CCExprResolve;
31753
 
  friend class ::CExprResolve;
31754
 
 
31755
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31756
 
 
31757
 
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
31758
 
 
31759
 
public:
31760
 
  CT_ArgDecl (CTree *dsl, CTree *d) {
31761
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
31762
 
  }
31763
 
  CT_ArgDecl (CTree *ellipsis) {
31764
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
31765
 
  }
31766
 
  static const char *NodeId ();
31767
 
  const char *NodeName () const { return NodeId (); }
31768
 
  int Sons () const { return CTree::Sons (sons, 4); }
31769
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
31770
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
31771
 
  CTree *Declarator () const { return sons[1]; }
31772
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
31773
 
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
31774
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
31775
 
  void Initializer (CTree *i) { sons[2] = i; }
31776
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
31777
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
31778
 
  }
31779
 
};
31780
 
 
31781
 
 
31782
 
#line 31783 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31783
 
} // closed Puma
31784
 
class WinIfExists;
31785
 
class WinImportHandler;
31786
 
class WinMacros;
31787
 
class CMatchSyntax;
31788
 
class ExtGnu;
31789
 
class ExtAC;
31790
 
class ExtACBuilderCoupling;
31791
 
class ExtACSyntaxCoupling;
31792
 
class ExtACTree;
31793
 
class ExtACKeywords;
31794
 
class WinAsm;
31795
 
class WinDeclSpecs;
31796
 
class WinMemberExplSpec;
31797
 
class WinTypeKeywords;
31798
 
class PragmaOnceUnitState;
31799
 
class PragmaOnce;
31800
 
class CCExprResolve;
31801
 
class CExprResolve;
31802
 
namespace Puma {
31803
 
 
31804
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31805
 
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
31806
 
#line 31807 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31807
 
  friend class ::WinIfExists;
31808
 
  friend class ::WinImportHandler;
31809
 
  friend class ::WinMacros;
31810
 
  friend class ::CMatchSyntax;
31811
 
  friend class ::ExtGnu;
31812
 
  friend class ::ExtAC;
31813
 
  friend class ::ExtACBuilderCoupling;
31814
 
  friend class ::ExtACSyntaxCoupling;
31815
 
  friend class ::ExtACTree;
31816
 
  friend class ::ExtACKeywords;
31817
 
  friend class ::WinAsm;
31818
 
  friend class ::WinDeclSpecs;
31819
 
  friend class ::WinMemberExplSpec;
31820
 
  friend class ::WinTypeKeywords;
31821
 
  friend class ::PragmaOnceUnitState;
31822
 
  friend class ::PragmaOnce;
31823
 
  friend class ::CCExprResolve;
31824
 
  friend class ::CExprResolve;
31825
 
 
31826
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31827
 
 
31828
 
public:
31829
 
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
31830
 
   CT_DeclList (size, 2) { AddProperties (props); }
31831
 
  static const char *NodeId ();
31832
 
  const char *NodeName () const { return NodeId (); }
31833
 
};
31834
 
 
31835
 
 
31836
 
#line 31837 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31837
 
} // closed Puma
31838
 
class WinIfExists;
31839
 
class WinImportHandler;
31840
 
class WinMacros;
31841
 
class CMatchSyntax;
31842
 
class ExtGnu;
31843
 
class ExtAC;
31844
 
class ExtACBuilderCoupling;
31845
 
class ExtACSyntaxCoupling;
31846
 
class ExtACTree;
31847
 
class ExtACKeywords;
31848
 
class WinAsm;
31849
 
class WinDeclSpecs;
31850
 
class WinMemberExplSpec;
31851
 
class WinTypeKeywords;
31852
 
class PragmaOnceUnitState;
31853
 
class PragmaOnce;
31854
 
class CCExprResolve;
31855
 
class CExprResolve;
31856
 
namespace Puma {
31857
 
 
31858
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31859
 
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
31860
 
#line 31861 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31861
 
  friend class ::WinIfExists;
31862
 
  friend class ::WinImportHandler;
31863
 
  friend class ::WinMacros;
31864
 
  friend class ::CMatchSyntax;
31865
 
  friend class ::ExtGnu;
31866
 
  friend class ::ExtAC;
31867
 
  friend class ::ExtACBuilderCoupling;
31868
 
  friend class ::ExtACSyntaxCoupling;
31869
 
  friend class ::ExtACTree;
31870
 
  friend class ::ExtACKeywords;
31871
 
  friend class ::WinAsm;
31872
 
  friend class ::WinDeclSpecs;
31873
 
  friend class ::WinMemberExplSpec;
31874
 
  friend class ::WinTypeKeywords;
31875
 
  friend class ::PragmaOnceUnitState;
31876
 
  friend class ::PragmaOnce;
31877
 
  friend class ::CCExprResolve;
31878
 
  friend class ::CExprResolve;
31879
 
 
31880
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31881
 
 
31882
 
public:
31883
 
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
31884
 
  static const char *NodeId ();
31885
 
  const char *NodeName () const { return NodeId (); }
31886
 
};
31887
 
 
31888
 
 
31889
 
#line 31890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31890
 
} // closed Puma
31891
 
class WinIfExists;
31892
 
class WinImportHandler;
31893
 
class WinMacros;
31894
 
class CMatchSyntax;
31895
 
class ExtGnu;
31896
 
class ExtAC;
31897
 
class ExtACBuilderCoupling;
31898
 
class ExtACSyntaxCoupling;
31899
 
class ExtACTree;
31900
 
class ExtACKeywords;
31901
 
class WinAsm;
31902
 
class WinDeclSpecs;
31903
 
class WinMemberExplSpec;
31904
 
class WinTypeKeywords;
31905
 
class PragmaOnceUnitState;
31906
 
class PragmaOnce;
31907
 
class CCExprResolve;
31908
 
class CExprResolve;
31909
 
namespace Puma {
31910
 
 
31911
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31912
 
class CT_ArgNameList : public CT_ArgDeclList {
31913
 
#line 31914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31914
 
  friend class ::WinIfExists;
31915
 
  friend class ::WinImportHandler;
31916
 
  friend class ::WinMacros;
31917
 
  friend class ::CMatchSyntax;
31918
 
  friend class ::ExtGnu;
31919
 
  friend class ::ExtAC;
31920
 
  friend class ::ExtACBuilderCoupling;
31921
 
  friend class ::ExtACSyntaxCoupling;
31922
 
  friend class ::ExtACTree;
31923
 
  friend class ::ExtACKeywords;
31924
 
  friend class ::WinAsm;
31925
 
  friend class ::WinDeclSpecs;
31926
 
  friend class ::WinMemberExplSpec;
31927
 
  friend class ::WinTypeKeywords;
31928
 
  friend class ::PragmaOnceUnitState;
31929
 
  friend class ::PragmaOnce;
31930
 
  friend class ::CCExprResolve;
31931
 
  friend class ::CExprResolve;
31932
 
 
31933
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31934
 
 
31935
 
public:
31936
 
  CT_ArgNameList () : CT_ArgDeclList () {}
31937
 
  static const char *NodeId ();
31938
 
  const char *NodeName () const { return NodeId (); }
31939
 
};
31940
 
 
31941
 
 
31942
 
#line 31943 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31943
 
} // closed Puma
31944
 
class WinIfExists;
31945
 
class WinImportHandler;
31946
 
class WinMacros;
31947
 
class CMatchSyntax;
31948
 
class ExtGnu;
31949
 
class ExtAC;
31950
 
class ExtACBuilderCoupling;
31951
 
class ExtACSyntaxCoupling;
31952
 
class ExtACTree;
31953
 
class ExtACKeywords;
31954
 
class WinAsm;
31955
 
class WinDeclSpecs;
31956
 
class WinMemberExplSpec;
31957
 
class WinTypeKeywords;
31958
 
class PragmaOnceUnitState;
31959
 
class PragmaOnce;
31960
 
class CCExprResolve;
31961
 
class CExprResolve;
31962
 
namespace Puma {
31963
 
 
31964
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31965
 
class CT_NamespaceDef : public CT_Decl, public CSemObject {
31966
 
#line 31967 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
31967
 
  friend class ::WinIfExists;
31968
 
  friend class ::WinImportHandler;
31969
 
  friend class ::WinMacros;
31970
 
  friend class ::CMatchSyntax;
31971
 
  friend class ::ExtGnu;
31972
 
  friend class ::ExtAC;
31973
 
  friend class ::ExtACBuilderCoupling;
31974
 
  friend class ::ExtACSyntaxCoupling;
31975
 
  friend class ::ExtACTree;
31976
 
  friend class ::ExtACKeywords;
31977
 
  friend class ::WinAsm;
31978
 
  friend class ::WinDeclSpecs;
31979
 
  friend class ::WinMemberExplSpec;
31980
 
  friend class ::WinTypeKeywords;
31981
 
  friend class ::PragmaOnceUnitState;
31982
 
  friend class ::PragmaOnce;
31983
 
  friend class ::CCExprResolve;
31984
 
  friend class ::CExprResolve;
31985
 
 
31986
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
31987
 
 
31988
 
  CTree *sons[3]; // ns, name, members
31989
 
 
31990
 
public:
31991
 
  CT_NamespaceDef (CTree *n, CTree *nm) {
31992
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
31993
 
  }
31994
 
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
31995
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
31996
 
  }
31997
 
  static const char *NodeId ();
31998
 
  const char *NodeName () const { return NodeId (); }
31999
 
  int Sons () const { return CTree::Sons (sons, 3); }
32000
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
32001
 
  void Members (CTree *m) { sons[2] = m; }
32002
 
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
32003
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
32004
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
32005
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32006
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
32007
 
  }
32008
 
};
32009
 
 
32010
 
 
32011
 
#line 32012 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32012
 
} // closed Puma
32013
 
class WinIfExists;
32014
 
class WinImportHandler;
32015
 
class WinMacros;
32016
 
class CMatchSyntax;
32017
 
class ExtGnu;
32018
 
class ExtAC;
32019
 
class ExtACBuilderCoupling;
32020
 
class ExtACSyntaxCoupling;
32021
 
class ExtACTree;
32022
 
class ExtACKeywords;
32023
 
class WinAsm;
32024
 
class WinDeclSpecs;
32025
 
class WinMemberExplSpec;
32026
 
class WinTypeKeywords;
32027
 
class PragmaOnceUnitState;
32028
 
class PragmaOnce;
32029
 
class CCExprResolve;
32030
 
class CExprResolve;
32031
 
namespace Puma {
32032
 
 
32033
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32034
 
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
32035
 
#line 32036 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32036
 
  friend class ::WinIfExists;
32037
 
  friend class ::WinImportHandler;
32038
 
  friend class ::WinMacros;
32039
 
  friend class ::CMatchSyntax;
32040
 
  friend class ::ExtGnu;
32041
 
  friend class ::ExtAC;
32042
 
  friend class ::ExtACBuilderCoupling;
32043
 
  friend class ::ExtACSyntaxCoupling;
32044
 
  friend class ::ExtACTree;
32045
 
  friend class ::ExtACKeywords;
32046
 
  friend class ::WinAsm;
32047
 
  friend class ::WinDeclSpecs;
32048
 
  friend class ::WinMemberExplSpec;
32049
 
  friend class ::WinTypeKeywords;
32050
 
  friend class ::PragmaOnceUnitState;
32051
 
  friend class ::PragmaOnce;
32052
 
  friend class ::CCExprResolve;
32053
 
  friend class ::CExprResolve;
32054
 
 
32055
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32056
 
 
32057
 
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
32058
 
 
32059
 
public:
32060
 
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
32061
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
32062
 
  }
32063
 
  static const char *NodeId ();
32064
 
  const char *NodeName () const { return NodeId (); }
32065
 
  int Sons () const { return 5; }
32066
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
32067
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
32068
 
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
32069
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
32070
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32071
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
32072
 
  }
32073
 
};
32074
 
 
32075
 
 
32076
 
#line 32077 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32077
 
} // closed Puma
32078
 
class WinIfExists;
32079
 
class WinImportHandler;
32080
 
class WinMacros;
32081
 
class CMatchSyntax;
32082
 
class ExtGnu;
32083
 
class ExtAC;
32084
 
class ExtACBuilderCoupling;
32085
 
class ExtACSyntaxCoupling;
32086
 
class ExtACTree;
32087
 
class ExtACKeywords;
32088
 
class WinAsm;
32089
 
class WinDeclSpecs;
32090
 
class WinMemberExplSpec;
32091
 
class WinTypeKeywords;
32092
 
class PragmaOnceUnitState;
32093
 
class PragmaOnce;
32094
 
class CCExprResolve;
32095
 
class CExprResolve;
32096
 
namespace Puma {
32097
 
 
32098
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32099
 
class CT_UsingDirective : public CT_Decl {
32100
 
#line 32101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32101
 
  friend class ::WinIfExists;
32102
 
  friend class ::WinImportHandler;
32103
 
  friend class ::WinMacros;
32104
 
  friend class ::CMatchSyntax;
32105
 
  friend class ::ExtGnu;
32106
 
  friend class ::ExtAC;
32107
 
  friend class ::ExtACBuilderCoupling;
32108
 
  friend class ::ExtACSyntaxCoupling;
32109
 
  friend class ::ExtACTree;
32110
 
  friend class ::ExtACKeywords;
32111
 
  friend class ::WinAsm;
32112
 
  friend class ::WinDeclSpecs;
32113
 
  friend class ::WinMemberExplSpec;
32114
 
  friend class ::WinTypeKeywords;
32115
 
  friend class ::PragmaOnceUnitState;
32116
 
  friend class ::PragmaOnce;
32117
 
  friend class ::CCExprResolve;
32118
 
  friend class ::CExprResolve;
32119
 
 
32120
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32121
 
 
32122
 
  CTree *sons[4]; // using, ns, name, semi_colon
32123
 
 
32124
 
public:
32125
 
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
32126
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
32127
 
  }
32128
 
  static const char *NodeId ();
32129
 
  const char *NodeName () const { return NodeId (); }
32130
 
  int Sons () const { return 4; }
32131
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
32132
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
32133
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32134
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
32135
 
  }
32136
 
};
32137
 
 
32138
 
/*****************************************************************************/
32139
 
/*                                                                           */
32140
 
/*                              Declarators                                  */
32141
 
/*                                                                           */
32142
 
/*****************************************************************************/
32143
 
 
32144
 
 
32145
 
#line 32146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32146
 
} // closed Puma
32147
 
class WinIfExists;
32148
 
class WinImportHandler;
32149
 
class WinMacros;
32150
 
class CMatchSyntax;
32151
 
class ExtGnu;
32152
 
class ExtAC;
32153
 
class ExtACBuilderCoupling;
32154
 
class ExtACSyntaxCoupling;
32155
 
class ExtACTree;
32156
 
class ExtACKeywords;
32157
 
class WinAsm;
32158
 
class WinDeclSpecs;
32159
 
class WinMemberExplSpec;
32160
 
class WinTypeKeywords;
32161
 
class PragmaOnceUnitState;
32162
 
class PragmaOnce;
32163
 
class CCExprResolve;
32164
 
class CExprResolve;
32165
 
namespace Puma {
32166
 
 
32167
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32168
 
class CT_Declarator : public CTree {
32169
 
#line 32170 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32170
 
  friend class ::WinIfExists;
32171
 
  friend class ::WinImportHandler;
32172
 
  friend class ::WinMacros;
32173
 
  friend class ::CMatchSyntax;
32174
 
  friend class ::ExtGnu;
32175
 
  friend class ::ExtAC;
32176
 
  friend class ::ExtACBuilderCoupling;
32177
 
  friend class ::ExtACSyntaxCoupling;
32178
 
  friend class ::ExtACTree;
32179
 
  friend class ::ExtACKeywords;
32180
 
  friend class ::WinAsm;
32181
 
  friend class ::WinDeclSpecs;
32182
 
  friend class ::WinMemberExplSpec;
32183
 
  friend class ::WinTypeKeywords;
32184
 
  friend class ::PragmaOnceUnitState;
32185
 
  friend class ::PragmaOnce;
32186
 
  friend class ::CCExprResolve;
32187
 
  friend class ::CExprResolve;
32188
 
 
32189
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32190
 
 
32191
 
protected:
32192
 
  CT_Declarator () {}
32193
 
 
32194
 
public:
32195
 
  virtual CTree *Declarator () const = 0;
32196
 
  //classification function
32197
 
  virtual CT_Declarator *IsDeclarator () { return this; }
32198
 
  // locate the name node
32199
 
  CT_SimpleName *Name ();
32200
 
  CT_SimpleName *Name (CT_Declarator *&last_declarator);
32201
 
};
32202
 
 
32203
 
 
32204
 
#line 32205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32205
 
} // closed Puma
32206
 
class WinIfExists;
32207
 
class WinImportHandler;
32208
 
class WinMacros;
32209
 
class CMatchSyntax;
32210
 
class ExtGnu;
32211
 
class ExtAC;
32212
 
class ExtACBuilderCoupling;
32213
 
class ExtACSyntaxCoupling;
32214
 
class ExtACTree;
32215
 
class ExtACKeywords;
32216
 
class WinAsm;
32217
 
class WinDeclSpecs;
32218
 
class WinMemberExplSpec;
32219
 
class WinTypeKeywords;
32220
 
class PragmaOnceUnitState;
32221
 
class PragmaOnce;
32222
 
class CCExprResolve;
32223
 
class CExprResolve;
32224
 
namespace Puma {
32225
 
 
32226
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32227
 
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
32228
 
#line 32229 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32229
 
  friend class ::WinIfExists;
32230
 
  friend class ::WinImportHandler;
32231
 
  friend class ::WinMacros;
32232
 
  friend class ::CMatchSyntax;
32233
 
  friend class ::ExtGnu;
32234
 
  friend class ::ExtAC;
32235
 
  friend class ::ExtACBuilderCoupling;
32236
 
  friend class ::ExtACSyntaxCoupling;
32237
 
  friend class ::ExtACTree;
32238
 
  friend class ::ExtACKeywords;
32239
 
  friend class ::WinAsm;
32240
 
  friend class ::WinDeclSpecs;
32241
 
  friend class ::WinMemberExplSpec;
32242
 
  friend class ::WinTypeKeywords;
32243
 
  friend class ::PragmaOnceUnitState;
32244
 
  friend class ::PragmaOnce;
32245
 
  friend class ::CCExprResolve;
32246
 
  friend class ::CExprResolve;
32247
 
 
32248
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32249
 
 
32250
 
  CTree *sons[2]; // declarator, init
32251
 
  CTree *obj_decl;
32252
 
 
32253
 
public:
32254
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
32255
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
32256
 
  }
32257
 
  static const char *NodeId ();
32258
 
  const char *NodeName () const { return NodeId (); }
32259
 
  int Sons () const { return CTree::Sons (sons, 2); }
32260
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
32261
 
  CTree *Declarator () const { return sons[0]; }
32262
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
32263
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
32264
 
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
32265
 
  void Initializer (CTree* i) { sons[1] = i; }
32266
 
  void ObjDecl (CTree *od) { obj_decl = od; }
32267
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32268
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
32269
 
  }
32270
 
};
32271
 
 
32272
 
 
32273
 
#line 32274 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32274
 
} // closed Puma
32275
 
class WinIfExists;
32276
 
class WinImportHandler;
32277
 
class WinMacros;
32278
 
class CMatchSyntax;
32279
 
class ExtGnu;
32280
 
class ExtAC;
32281
 
class ExtACBuilderCoupling;
32282
 
class ExtACSyntaxCoupling;
32283
 
class ExtACTree;
32284
 
class ExtACKeywords;
32285
 
class WinAsm;
32286
 
class WinDeclSpecs;
32287
 
class WinMemberExplSpec;
32288
 
class WinTypeKeywords;
32289
 
class PragmaOnceUnitState;
32290
 
class PragmaOnce;
32291
 
class CCExprResolve;
32292
 
class CExprResolve;
32293
 
namespace Puma {
32294
 
 
32295
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32296
 
class CT_BracedDeclarator : public CT_Declarator {
32297
 
#line 32298 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32298
 
  friend class ::WinIfExists;
32299
 
  friend class ::WinImportHandler;
32300
 
  friend class ::WinMacros;
32301
 
  friend class ::CMatchSyntax;
32302
 
  friend class ::ExtGnu;
32303
 
  friend class ::ExtAC;
32304
 
  friend class ::ExtACBuilderCoupling;
32305
 
  friend class ::ExtACSyntaxCoupling;
32306
 
  friend class ::ExtACTree;
32307
 
  friend class ::ExtACKeywords;
32308
 
  friend class ::WinAsm;
32309
 
  friend class ::WinDeclSpecs;
32310
 
  friend class ::WinMemberExplSpec;
32311
 
  friend class ::WinTypeKeywords;
32312
 
  friend class ::PragmaOnceUnitState;
32313
 
  friend class ::PragmaOnce;
32314
 
  friend class ::CCExprResolve;
32315
 
  friend class ::CExprResolve;
32316
 
 
32317
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32318
 
 
32319
 
  CTree *sons[4]; // open, win_specs, declarator, close
32320
 
 
32321
 
public:
32322
 
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
32323
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
32324
 
  }
32325
 
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
32326
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
32327
 
  }
32328
 
  static const char *NodeId ();
32329
 
  const char *NodeName () const { return NodeId (); }
32330
 
  int Sons () const { return CTree::Sons (sons, 4); }
32331
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
32332
 
  CTree *Declarator () const { return sons[2]; }
32333
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32334
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
32335
 
  }
32336
 
};
32337
 
 
32338
 
 
32339
 
#line 32340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32340
 
} // closed Puma
32341
 
class WinIfExists;
32342
 
class WinImportHandler;
32343
 
class WinMacros;
32344
 
class CMatchSyntax;
32345
 
class ExtGnu;
32346
 
class ExtAC;
32347
 
class ExtACBuilderCoupling;
32348
 
class ExtACSyntaxCoupling;
32349
 
class ExtACTree;
32350
 
class ExtACKeywords;
32351
 
class WinAsm;
32352
 
class WinDeclSpecs;
32353
 
class WinMemberExplSpec;
32354
 
class WinTypeKeywords;
32355
 
class PragmaOnceUnitState;
32356
 
class PragmaOnce;
32357
 
class CCExprResolve;
32358
 
class CExprResolve;
32359
 
namespace Puma {
32360
 
 
32361
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32362
 
class CT_ArrayDelimiter : public CTree {
32363
 
#line 32364 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32364
 
  friend class ::WinIfExists;
32365
 
  friend class ::WinImportHandler;
32366
 
  friend class ::WinMacros;
32367
 
  friend class ::CMatchSyntax;
32368
 
  friend class ::ExtGnu;
32369
 
  friend class ::ExtAC;
32370
 
  friend class ::ExtACBuilderCoupling;
32371
 
  friend class ::ExtACSyntaxCoupling;
32372
 
  friend class ::ExtACTree;
32373
 
  friend class ::ExtACKeywords;
32374
 
  friend class ::WinAsm;
32375
 
  friend class ::WinDeclSpecs;
32376
 
  friend class ::WinMemberExplSpec;
32377
 
  friend class ::WinTypeKeywords;
32378
 
  friend class ::PragmaOnceUnitState;
32379
 
  friend class ::PragmaOnce;
32380
 
  friend class ::CCExprResolve;
32381
 
  friend class ::CExprResolve;
32382
 
 
32383
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32384
 
 
32385
 
  CTree *sons[4]; // star, static, quals, expr
32386
 
  bool pos0;
32387
 
 
32388
 
public:
32389
 
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
32390
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
32391
 
  }
32392
 
  static const char *NodeId ();
32393
 
  const char *NodeName () const { return NodeId (); }
32394
 
  int Sons () const { return CTree::Sons (sons, 4); }
32395
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
32396
 
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
32397
 
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
32398
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
32399
 
  CTree *Expr () const { return sons[3]; }
32400
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32401
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
32402
 
  }
32403
 
};
32404
 
 
32405
 
 
32406
 
#line 32407 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32407
 
} // closed Puma
32408
 
class WinIfExists;
32409
 
class WinImportHandler;
32410
 
class WinMacros;
32411
 
class CMatchSyntax;
32412
 
class ExtGnu;
32413
 
class ExtAC;
32414
 
class ExtACBuilderCoupling;
32415
 
class ExtACSyntaxCoupling;
32416
 
class ExtACTree;
32417
 
class ExtACKeywords;
32418
 
class WinAsm;
32419
 
class WinDeclSpecs;
32420
 
class WinMemberExplSpec;
32421
 
class WinTypeKeywords;
32422
 
class PragmaOnceUnitState;
32423
 
class PragmaOnce;
32424
 
class CCExprResolve;
32425
 
class CExprResolve;
32426
 
namespace Puma {
32427
 
 
32428
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32429
 
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
32430
 
#line 32431 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32431
 
  friend class ::WinIfExists;
32432
 
  friend class ::WinImportHandler;
32433
 
  friend class ::WinMacros;
32434
 
  friend class ::CMatchSyntax;
32435
 
  friend class ::ExtGnu;
32436
 
  friend class ::ExtAC;
32437
 
  friend class ::ExtACBuilderCoupling;
32438
 
  friend class ::ExtACSyntaxCoupling;
32439
 
  friend class ::ExtACTree;
32440
 
  friend class ::ExtACKeywords;
32441
 
  friend class ::WinAsm;
32442
 
  friend class ::WinDeclSpecs;
32443
 
  friend class ::WinMemberExplSpec;
32444
 
  friend class ::WinTypeKeywords;
32445
 
  friend class ::PragmaOnceUnitState;
32446
 
  friend class ::PragmaOnce;
32447
 
  friend class ::CCExprResolve;
32448
 
  friend class ::CExprResolve;
32449
 
 
32450
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32451
 
 
32452
 
  CTree *sons[4]; // declarator, open, delim, close
32453
 
 
32454
 
public:
32455
 
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
32456
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
32457
 
  }
32458
 
  static const char *NodeId ();
32459
 
  const char *NodeName () const { return NodeId (); }
32460
 
  int Sons () const { return 4; }
32461
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
32462
 
  CTree *Declarator () const { return sons[0]; }
32463
 
  CT_ArrayDelimiter *Delimiter () const 
32464
 
   { return (CT_ArrayDelimiter*)sons[2]; }
32465
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32466
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
32467
 
  }
32468
 
  CTypeInfo *Type () const { return type; }
32469
 
  CExprValue *Value () const { return value; }
32470
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
32471
 
};
32472
 
 
32473
 
 
32474
 
#line 32475 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32475
 
} // closed Puma
32476
 
class WinIfExists;
32477
 
class WinImportHandler;
32478
 
class WinMacros;
32479
 
class CMatchSyntax;
32480
 
class ExtGnu;
32481
 
class ExtAC;
32482
 
class ExtACBuilderCoupling;
32483
 
class ExtACSyntaxCoupling;
32484
 
class ExtACTree;
32485
 
class ExtACKeywords;
32486
 
class WinAsm;
32487
 
class WinDeclSpecs;
32488
 
class WinMemberExplSpec;
32489
 
class WinTypeKeywords;
32490
 
class PragmaOnceUnitState;
32491
 
class PragmaOnce;
32492
 
class CCExprResolve;
32493
 
class CExprResolve;
32494
 
namespace Puma {
32495
 
 
32496
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32497
 
class CT_FctDeclarator : public CT_Declarator {
32498
 
#line 32499 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32499
 
  friend class ::WinIfExists;
32500
 
  friend class ::WinImportHandler;
32501
 
  friend class ::WinMacros;
32502
 
  friend class ::CMatchSyntax;
32503
 
  friend class ::ExtGnu;
32504
 
  friend class ::ExtAC;
32505
 
  friend class ::ExtACBuilderCoupling;
32506
 
  friend class ::ExtACSyntaxCoupling;
32507
 
  friend class ::ExtACTree;
32508
 
  friend class ::ExtACKeywords;
32509
 
  friend class ::WinAsm;
32510
 
  friend class ::WinDeclSpecs;
32511
 
  friend class ::WinMemberExplSpec;
32512
 
  friend class ::WinTypeKeywords;
32513
 
  friend class ::PragmaOnceUnitState;
32514
 
  friend class ::PragmaOnce;
32515
 
  friend class ::CCExprResolve;
32516
 
  friend class ::CExprResolve;
32517
 
 
32518
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32519
 
 
32520
 
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
32521
 
 
32522
 
public:
32523
 
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
32524
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
32525
 
  }
32526
 
  static const char *NodeId ();
32527
 
  const char *NodeName () const { return NodeId (); }
32528
 
  int Sons () const { return CTree::Sons (sons, 4); }
32529
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
32530
 
  CTree *Declarator () const { return sons[0]; }
32531
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
32532
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
32533
 
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
32534
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32535
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
32536
 
  }
32537
 
};
32538
 
 
32539
 
 
32540
 
#line 32541 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32541
 
} // closed Puma
32542
 
class WinIfExists;
32543
 
class WinImportHandler;
32544
 
class WinMacros;
32545
 
class CMatchSyntax;
32546
 
class ExtGnu;
32547
 
class ExtAC;
32548
 
class ExtACBuilderCoupling;
32549
 
class ExtACSyntaxCoupling;
32550
 
class ExtACTree;
32551
 
class ExtACKeywords;
32552
 
class WinAsm;
32553
 
class WinDeclSpecs;
32554
 
class WinMemberExplSpec;
32555
 
class WinTypeKeywords;
32556
 
class PragmaOnceUnitState;
32557
 
class PragmaOnce;
32558
 
class CCExprResolve;
32559
 
class CExprResolve;
32560
 
namespace Puma {
32561
 
 
32562
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32563
 
class CT_RefDeclarator : public CT_Declarator {
32564
 
#line 32565 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32565
 
  friend class ::WinIfExists;
32566
 
  friend class ::WinImportHandler;
32567
 
  friend class ::WinMacros;
32568
 
  friend class ::CMatchSyntax;
32569
 
  friend class ::ExtGnu;
32570
 
  friend class ::ExtAC;
32571
 
  friend class ::ExtACBuilderCoupling;
32572
 
  friend class ::ExtACSyntaxCoupling;
32573
 
  friend class ::ExtACTree;
32574
 
  friend class ::ExtACKeywords;
32575
 
  friend class ::WinAsm;
32576
 
  friend class ::WinDeclSpecs;
32577
 
  friend class ::WinMemberExplSpec;
32578
 
  friend class ::WinTypeKeywords;
32579
 
  friend class ::PragmaOnceUnitState;
32580
 
  friend class ::PragmaOnce;
32581
 
  friend class ::CCExprResolve;
32582
 
  friend class ::CExprResolve;
32583
 
 
32584
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32585
 
 
32586
 
  CTree *sons[2]; // ref, declarator
32587
 
 
32588
 
public:
32589
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
32590
 
  static const char *NodeId ();
32591
 
  const char *NodeName () const { return NodeId (); }
32592
 
  int Sons () const { return 2; }
32593
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
32594
 
  CTree *Declarator () const { return sons[1]; }
32595
 
  void ReplaceSon (CTree *old_son, CTree *new_son) {
32596
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
32597
 
  }
32598
 
};
32599
 
 
32600
 
 
32601
 
#line 32602 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32602
 
} // closed Puma
32603
 
class WinIfExists;
32604
 
class WinImportHandler;
32605
 
class WinMacros;
32606
 
class CMatchSyntax;
32607
 
class ExtGnu;
32608
 
class ExtAC;
32609
 
class ExtACBuilderCoupling;
32610
 
class ExtACSyntaxCoupling;
32611
 
class ExtACTree;
32612
 
class ExtACKeywords;
32613
 
class WinAsm;
32614
 
class WinDeclSpecs;
32615
 
class WinMemberExplSpec;
32616
 
class WinTypeKeywords;
32617
 
class PragmaOnceUnitState;
32618
 
class PragmaOnce;
32619
 
class CCExprResolve;
32620
 
class CExprResolve;
32621
 
namespace Puma {
32622
 
 
32623
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32624
 
class CT_PtrDeclarator : public CT_Declarator {
32625
 
#line 32626 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32626
 
  friend class ::WinIfExists;
32627
 
  friend class ::WinImportHandler;
32628
 
  friend class ::WinMacros;
32629
 
  friend class ::CMatchSyntax;
32630
 
  friend class ::ExtGnu;
32631
 
  friend class ::ExtAC;
32632
 
  friend class ::ExtACBuilderCoupling;
32633
 
  friend class ::ExtACSyntaxCoupling;
32634
 
  friend class ::ExtACTree;
32635
 
  friend class ::ExtACKeywords;
32636
 
  friend class ::WinAsm;
32637
 
  friend class ::WinDeclSpecs;
32638
 
  friend class ::WinMemberExplSpec;
32639
 
  friend class ::WinTypeKeywords;
32640
 
  friend class ::PragmaOnceUnitState;
32641
 
  friend class ::PragmaOnce;
32642
 
  friend class ::CCExprResolve;
32643
 
  friend class ::CExprResolve;
32644
 
 
32645
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32646
 
 
32647
 
  CTree *sons[3]; // ptr, cv_quals, declarator
32648
 
 
32649
 
public:
32650
 
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
32651
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
32652
 
  }
32653
 
  static const char *NodeId ();
32654
 
  const char *NodeName () const { return NodeId (); }
32655
 
  int Sons () const { return CTree::Sons (sons, 3); }
32656
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
32657
 
  CTree *Declarator () const { return sons[2]; }
32658
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
32659
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32660
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
32661
 
  }
32662
 
};
32663
 
 
32664
 
 
32665
 
#line 32666 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32666
 
} // closed Puma
32667
 
class WinIfExists;
32668
 
class WinImportHandler;
32669
 
class WinMacros;
32670
 
class CMatchSyntax;
32671
 
class ExtGnu;
32672
 
class ExtAC;
32673
 
class ExtACBuilderCoupling;
32674
 
class ExtACSyntaxCoupling;
32675
 
class ExtACTree;
32676
 
class ExtACKeywords;
32677
 
class WinAsm;
32678
 
class WinDeclSpecs;
32679
 
class WinMemberExplSpec;
32680
 
class WinTypeKeywords;
32681
 
class PragmaOnceUnitState;
32682
 
class PragmaOnce;
32683
 
class CCExprResolve;
32684
 
class CExprResolve;
32685
 
namespace Puma {
32686
 
 
32687
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32688
 
class CT_MembPtrDeclarator : public CT_Declarator {
32689
 
#line 32690 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32690
 
  friend class ::WinIfExists;
32691
 
  friend class ::WinImportHandler;
32692
 
  friend class ::WinMacros;
32693
 
  friend class ::CMatchSyntax;
32694
 
  friend class ::ExtGnu;
32695
 
  friend class ::ExtAC;
32696
 
  friend class ::ExtACBuilderCoupling;
32697
 
  friend class ::ExtACSyntaxCoupling;
32698
 
  friend class ::ExtACTree;
32699
 
  friend class ::ExtACKeywords;
32700
 
  friend class ::WinAsm;
32701
 
  friend class ::WinDeclSpecs;
32702
 
  friend class ::WinMemberExplSpec;
32703
 
  friend class ::WinTypeKeywords;
32704
 
  friend class ::PragmaOnceUnitState;
32705
 
  friend class ::PragmaOnce;
32706
 
  friend class ::CCExprResolve;
32707
 
  friend class ::CExprResolve;
32708
 
 
32709
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32710
 
 
32711
 
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
32712
 
 
32713
 
public:
32714
 
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
32715
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
32716
 
  }
32717
 
  static const char *NodeId ();
32718
 
  const char *NodeName () const { return NodeId (); }
32719
 
  int Sons () const { return CTree::Sons (sons, 5); }
32720
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
32721
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
32722
 
  CTree *Declarator () const { return sons[4]; }
32723
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
32724
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32725
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
32726
 
  }
32727
 
};
32728
 
 
32729
 
 
32730
 
#line 32731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32731
 
} // closed Puma
32732
 
class WinIfExists;
32733
 
class WinImportHandler;
32734
 
class WinMacros;
32735
 
class CMatchSyntax;
32736
 
class ExtGnu;
32737
 
class ExtAC;
32738
 
class ExtACBuilderCoupling;
32739
 
class ExtACSyntaxCoupling;
32740
 
class ExtACTree;
32741
 
class ExtACKeywords;
32742
 
class WinAsm;
32743
 
class WinDeclSpecs;
32744
 
class WinMemberExplSpec;
32745
 
class WinTypeKeywords;
32746
 
class PragmaOnceUnitState;
32747
 
class PragmaOnce;
32748
 
class CCExprResolve;
32749
 
class CExprResolve;
32750
 
namespace Puma {
32751
 
 
32752
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32753
 
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
32754
 
#line 32755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32755
 
  friend class ::WinIfExists;
32756
 
  friend class ::WinImportHandler;
32757
 
  friend class ::WinMacros;
32758
 
  friend class ::CMatchSyntax;
32759
 
  friend class ::ExtGnu;
32760
 
  friend class ::ExtAC;
32761
 
  friend class ::ExtACBuilderCoupling;
32762
 
  friend class ::ExtACSyntaxCoupling;
32763
 
  friend class ::ExtACTree;
32764
 
  friend class ::ExtACKeywords;
32765
 
  friend class ::WinAsm;
32766
 
  friend class ::WinDeclSpecs;
32767
 
  friend class ::WinMemberExplSpec;
32768
 
  friend class ::WinTypeKeywords;
32769
 
  friend class ::PragmaOnceUnitState;
32770
 
  friend class ::PragmaOnce;
32771
 
  friend class ::CCExprResolve;
32772
 
  friend class ::CExprResolve;
32773
 
 
32774
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32775
 
 
32776
 
  CTree *sons[3]; // declarator, colon, expr
32777
 
 
32778
 
public:
32779
 
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
32780
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
32781
 
  }
32782
 
  static const char *NodeId ();
32783
 
  const char *NodeName () const { return NodeId (); }
32784
 
  int Sons () const { return CTree::Sons (sons, 3); }
32785
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
32786
 
  CTree *Declarator () const { return sons[0]; }
32787
 
  CTree *Expr () const { return sons[2]; }
32788
 
  void FieldSize (CTree *s) { sons[2] = s; }
32789
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
32790
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32791
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
32792
 
  }
32793
 
};
32794
 
 
32795
 
/*****************************************************************************/
32796
 
/*                                                                           */
32797
 
/*                              Statements                                   */
32798
 
/*                                                                           */
32799
 
/*****************************************************************************/
32800
 
 
32801
 
 
32802
 
#line 32803 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32803
 
} // closed Puma
32804
 
class WinIfExists;
32805
 
class WinImportHandler;
32806
 
class WinMacros;
32807
 
class CMatchSyntax;
32808
 
class ExtGnu;
32809
 
class ExtAC;
32810
 
class ExtACBuilderCoupling;
32811
 
class ExtACSyntaxCoupling;
32812
 
class ExtACTree;
32813
 
class ExtACKeywords;
32814
 
class WinAsm;
32815
 
class WinDeclSpecs;
32816
 
class WinMemberExplSpec;
32817
 
class WinTypeKeywords;
32818
 
class PragmaOnceUnitState;
32819
 
class PragmaOnce;
32820
 
class CCExprResolve;
32821
 
class CExprResolve;
32822
 
namespace Puma {
32823
 
 
32824
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32825
 
class CT_Statement : public CTree {
32826
 
#line 32827 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32827
 
  friend class ::WinIfExists;
32828
 
  friend class ::WinImportHandler;
32829
 
  friend class ::WinMacros;
32830
 
  friend class ::CMatchSyntax;
32831
 
  friend class ::ExtGnu;
32832
 
  friend class ::ExtAC;
32833
 
  friend class ::ExtACBuilderCoupling;
32834
 
  friend class ::ExtACSyntaxCoupling;
32835
 
  friend class ::ExtACTree;
32836
 
  friend class ::ExtACKeywords;
32837
 
  friend class ::WinAsm;
32838
 
  friend class ::WinDeclSpecs;
32839
 
  friend class ::WinMemberExplSpec;
32840
 
  friend class ::WinTypeKeywords;
32841
 
  friend class ::PragmaOnceUnitState;
32842
 
  friend class ::PragmaOnce;
32843
 
  friend class ::CCExprResolve;
32844
 
  friend class ::CExprResolve;
32845
 
 
32846
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32847
 
 
32848
 
protected:
32849
 
  CT_Statement () {}
32850
 
};
32851
 
 
32852
 
 
32853
 
#line 32854 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32854
 
} // closed Puma
32855
 
class WinIfExists;
32856
 
class WinImportHandler;
32857
 
class WinMacros;
32858
 
class CMatchSyntax;
32859
 
class ExtGnu;
32860
 
class ExtAC;
32861
 
class ExtACBuilderCoupling;
32862
 
class ExtACSyntaxCoupling;
32863
 
class ExtACTree;
32864
 
class ExtACKeywords;
32865
 
class WinAsm;
32866
 
class WinDeclSpecs;
32867
 
class WinMemberExplSpec;
32868
 
class WinTypeKeywords;
32869
 
class PragmaOnceUnitState;
32870
 
class PragmaOnce;
32871
 
class CCExprResolve;
32872
 
class CExprResolve;
32873
 
namespace Puma {
32874
 
 
32875
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32876
 
class CT_LabelStmt : public CT_Statement {
32877
 
#line 32878 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32878
 
  friend class ::WinIfExists;
32879
 
  friend class ::WinImportHandler;
32880
 
  friend class ::WinMacros;
32881
 
  friend class ::CMatchSyntax;
32882
 
  friend class ::ExtGnu;
32883
 
  friend class ::ExtAC;
32884
 
  friend class ::ExtACBuilderCoupling;
32885
 
  friend class ::ExtACSyntaxCoupling;
32886
 
  friend class ::ExtACTree;
32887
 
  friend class ::ExtACKeywords;
32888
 
  friend class ::WinAsm;
32889
 
  friend class ::WinDeclSpecs;
32890
 
  friend class ::WinMemberExplSpec;
32891
 
  friend class ::WinTypeKeywords;
32892
 
  friend class ::PragmaOnceUnitState;
32893
 
  friend class ::PragmaOnce;
32894
 
  friend class ::CCExprResolve;
32895
 
  friend class ::CExprResolve;
32896
 
 
32897
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32898
 
 
32899
 
  CTree *sons[3]; // id, colon, stmt
32900
 
 
32901
 
public:
32902
 
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
32903
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
32904
 
  }
32905
 
  static const char *NodeId ();
32906
 
  const char *NodeName () const { return NodeId (); }
32907
 
  int Sons () const { return 3; }
32908
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
32909
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
32910
 
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
32911
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32912
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
32913
 
  }
32914
 
};
32915
 
 
32916
 
 
32917
 
#line 32918 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32918
 
} // closed Puma
32919
 
class WinIfExists;
32920
 
class WinImportHandler;
32921
 
class WinMacros;
32922
 
class CMatchSyntax;
32923
 
class ExtGnu;
32924
 
class ExtAC;
32925
 
class ExtACBuilderCoupling;
32926
 
class ExtACSyntaxCoupling;
32927
 
class ExtACTree;
32928
 
class ExtACKeywords;
32929
 
class WinAsm;
32930
 
class WinDeclSpecs;
32931
 
class WinMemberExplSpec;
32932
 
class WinTypeKeywords;
32933
 
class PragmaOnceUnitState;
32934
 
class PragmaOnce;
32935
 
class CCExprResolve;
32936
 
class CExprResolve;
32937
 
namespace Puma {
32938
 
 
32939
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32940
 
class CT_DefaultStmt : public CT_Statement {
32941
 
#line 32942 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32942
 
  friend class ::WinIfExists;
32943
 
  friend class ::WinImportHandler;
32944
 
  friend class ::WinMacros;
32945
 
  friend class ::CMatchSyntax;
32946
 
  friend class ::ExtGnu;
32947
 
  friend class ::ExtAC;
32948
 
  friend class ::ExtACBuilderCoupling;
32949
 
  friend class ::ExtACSyntaxCoupling;
32950
 
  friend class ::ExtACTree;
32951
 
  friend class ::ExtACKeywords;
32952
 
  friend class ::WinAsm;
32953
 
  friend class ::WinDeclSpecs;
32954
 
  friend class ::WinMemberExplSpec;
32955
 
  friend class ::WinTypeKeywords;
32956
 
  friend class ::PragmaOnceUnitState;
32957
 
  friend class ::PragmaOnce;
32958
 
  friend class ::CCExprResolve;
32959
 
  friend class ::CExprResolve;
32960
 
 
32961
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
32962
 
 
32963
 
  CTree *sons[3]; // keyword, colon, stmt
32964
 
 
32965
 
public:
32966
 
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
32967
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
32968
 
  }
32969
 
  static const char *NodeId ();
32970
 
  const char *NodeName () const { return NodeId (); }
32971
 
  int Sons () const { return 3; }
32972
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
32973
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
32974
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
32975
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
32976
 
  }
32977
 
};
32978
 
 
32979
 
 
32980
 
#line 32981 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
32981
 
} // closed Puma
32982
 
class WinIfExists;
32983
 
class WinImportHandler;
32984
 
class WinMacros;
32985
 
class CMatchSyntax;
32986
 
class ExtGnu;
32987
 
class ExtAC;
32988
 
class ExtACBuilderCoupling;
32989
 
class ExtACSyntaxCoupling;
32990
 
class ExtACTree;
32991
 
class ExtACKeywords;
32992
 
class WinAsm;
32993
 
class WinDeclSpecs;
32994
 
class WinMemberExplSpec;
32995
 
class WinTypeKeywords;
32996
 
class PragmaOnceUnitState;
32997
 
class PragmaOnce;
32998
 
class CCExprResolve;
32999
 
class CExprResolve;
33000
 
namespace Puma {
33001
 
 
33002
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33003
 
class CT_TryStmt : public CT_Statement {
33004
 
#line 33005 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33005
 
  friend class ::WinIfExists;
33006
 
  friend class ::WinImportHandler;
33007
 
  friend class ::WinMacros;
33008
 
  friend class ::CMatchSyntax;
33009
 
  friend class ::ExtGnu;
33010
 
  friend class ::ExtAC;
33011
 
  friend class ::ExtACBuilderCoupling;
33012
 
  friend class ::ExtACSyntaxCoupling;
33013
 
  friend class ::ExtACTree;
33014
 
  friend class ::ExtACKeywords;
33015
 
  friend class ::WinAsm;
33016
 
  friend class ::WinDeclSpecs;
33017
 
  friend class ::WinMemberExplSpec;
33018
 
  friend class ::WinTypeKeywords;
33019
 
  friend class ::PragmaOnceUnitState;
33020
 
  friend class ::PragmaOnce;
33021
 
  friend class ::CCExprResolve;
33022
 
  friend class ::CExprResolve;
33023
 
 
33024
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33025
 
 
33026
 
  CTree *sons[3]; // try, stmt, handlers
33027
 
 
33028
 
public:
33029
 
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
33030
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
33031
 
  }
33032
 
  static const char *NodeId ();
33033
 
  const char *NodeName () const { return NodeId (); }
33034
 
  int Sons () const { return 3; }
33035
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
33036
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
33037
 
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
33038
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33039
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
33040
 
  }
33041
 
};
33042
 
 
33043
 
 
33044
 
#line 33045 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33045
 
} // closed Puma
33046
 
class WinIfExists;
33047
 
class WinImportHandler;
33048
 
class WinMacros;
33049
 
class CMatchSyntax;
33050
 
class ExtGnu;
33051
 
class ExtAC;
33052
 
class ExtACBuilderCoupling;
33053
 
class ExtACSyntaxCoupling;
33054
 
class ExtACTree;
33055
 
class ExtACKeywords;
33056
 
class WinAsm;
33057
 
class WinDeclSpecs;
33058
 
class WinMemberExplSpec;
33059
 
class WinTypeKeywords;
33060
 
class PragmaOnceUnitState;
33061
 
class PragmaOnce;
33062
 
class CCExprResolve;
33063
 
class CExprResolve;
33064
 
namespace Puma {
33065
 
 
33066
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33067
 
class CT_CaseStmt : public CT_Statement {
33068
 
#line 33069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33069
 
  friend class ::WinIfExists;
33070
 
  friend class ::WinImportHandler;
33071
 
  friend class ::WinMacros;
33072
 
  friend class ::CMatchSyntax;
33073
 
  friend class ::ExtGnu;
33074
 
  friend class ::ExtAC;
33075
 
  friend class ::ExtACBuilderCoupling;
33076
 
  friend class ::ExtACSyntaxCoupling;
33077
 
  friend class ::ExtACTree;
33078
 
  friend class ::ExtACKeywords;
33079
 
  friend class ::WinAsm;
33080
 
  friend class ::WinDeclSpecs;
33081
 
  friend class ::WinMemberExplSpec;
33082
 
  friend class ::WinTypeKeywords;
33083
 
  friend class ::PragmaOnceUnitState;
33084
 
  friend class ::PragmaOnce;
33085
 
  friend class ::CCExprResolve;
33086
 
  friend class ::CExprResolve;
33087
 
 
33088
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33089
 
 
33090
 
  CTree *sons[4]; // keyword, expr, colon, stmt
33091
 
 
33092
 
public:
33093
 
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
33094
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
33095
 
  }
33096
 
  static const char *NodeId ();
33097
 
  const char *NodeName () const { return NodeId (); }
33098
 
  int Sons () const { return 4; }
33099
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
33100
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
33101
 
  CTree *Expr () const { return sons[1]; }
33102
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33103
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
33104
 
  }
33105
 
};
33106
 
 
33107
 
 
33108
 
#line 33109 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33109
 
} // closed Puma
33110
 
class WinIfExists;
33111
 
class WinImportHandler;
33112
 
class WinMacros;
33113
 
class CMatchSyntax;
33114
 
class ExtGnu;
33115
 
class ExtAC;
33116
 
class ExtACBuilderCoupling;
33117
 
class ExtACSyntaxCoupling;
33118
 
class ExtACTree;
33119
 
class ExtACKeywords;
33120
 
class WinAsm;
33121
 
class WinDeclSpecs;
33122
 
class WinMemberExplSpec;
33123
 
class WinTypeKeywords;
33124
 
class PragmaOnceUnitState;
33125
 
class PragmaOnce;
33126
 
class CCExprResolve;
33127
 
class CExprResolve;
33128
 
namespace Puma {
33129
 
 
33130
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33131
 
class CT_ExprStmt : public CT_Statement {
33132
 
#line 33133 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33133
 
  friend class ::WinIfExists;
33134
 
  friend class ::WinImportHandler;
33135
 
  friend class ::WinMacros;
33136
 
  friend class ::CMatchSyntax;
33137
 
  friend class ::ExtGnu;
33138
 
  friend class ::ExtAC;
33139
 
  friend class ::ExtACBuilderCoupling;
33140
 
  friend class ::ExtACSyntaxCoupling;
33141
 
  friend class ::ExtACTree;
33142
 
  friend class ::ExtACKeywords;
33143
 
  friend class ::WinAsm;
33144
 
  friend class ::WinDeclSpecs;
33145
 
  friend class ::WinMemberExplSpec;
33146
 
  friend class ::WinTypeKeywords;
33147
 
  friend class ::PragmaOnceUnitState;
33148
 
  friend class ::PragmaOnce;
33149
 
  friend class ::CCExprResolve;
33150
 
  friend class ::CExprResolve;
33151
 
 
33152
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33153
 
 
33154
 
  CTree *sons[2]; // expr, semi_colon
33155
 
 
33156
 
public:
33157
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
33158
 
  static const char *NodeId ();
33159
 
  const char *NodeName () const { return NodeId (); }
33160
 
  int Sons () const { return CTree::Sons (sons, 2); }
33161
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
33162
 
  CTree *Expr () const { return sons[0]; }
33163
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33164
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
33165
 
  }
33166
 
};
33167
 
 
33168
 
 
33169
 
#line 33170 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33170
 
} // closed Puma
33171
 
class WinIfExists;
33172
 
class WinImportHandler;
33173
 
class WinMacros;
33174
 
class CMatchSyntax;
33175
 
class ExtGnu;
33176
 
class ExtAC;
33177
 
class ExtACBuilderCoupling;
33178
 
class ExtACSyntaxCoupling;
33179
 
class ExtACTree;
33180
 
class ExtACKeywords;
33181
 
class WinAsm;
33182
 
class WinDeclSpecs;
33183
 
class WinMemberExplSpec;
33184
 
class WinTypeKeywords;
33185
 
class PragmaOnceUnitState;
33186
 
class PragmaOnce;
33187
 
class CCExprResolve;
33188
 
class CExprResolve;
33189
 
namespace Puma {
33190
 
 
33191
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33192
 
class CT_DeclStmt : public CT_Statement {
33193
 
#line 33194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33194
 
  friend class ::WinIfExists;
33195
 
  friend class ::WinImportHandler;
33196
 
  friend class ::WinMacros;
33197
 
  friend class ::CMatchSyntax;
33198
 
  friend class ::ExtGnu;
33199
 
  friend class ::ExtAC;
33200
 
  friend class ::ExtACBuilderCoupling;
33201
 
  friend class ::ExtACSyntaxCoupling;
33202
 
  friend class ::ExtACTree;
33203
 
  friend class ::ExtACKeywords;
33204
 
  friend class ::WinAsm;
33205
 
  friend class ::WinDeclSpecs;
33206
 
  friend class ::WinMemberExplSpec;
33207
 
  friend class ::WinTypeKeywords;
33208
 
  friend class ::PragmaOnceUnitState;
33209
 
  friend class ::PragmaOnce;
33210
 
  friend class ::CCExprResolve;
33211
 
  friend class ::CExprResolve;
33212
 
 
33213
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33214
 
 
33215
 
  CTree *_decl;
33216
 
 
33217
 
public:
33218
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
33219
 
  static const char *NodeId ();
33220
 
  const char *NodeName () const { return NodeId (); }
33221
 
  int Sons () const { return 1; }
33222
 
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
33223
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
33224
 
   { if (old_son == _decl) _decl = new_son; }
33225
 
};
33226
 
 
33227
 
 
33228
 
#line 33229 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33229
 
} // closed Puma
33230
 
class WinIfExists;
33231
 
class WinImportHandler;
33232
 
class WinMacros;
33233
 
class CMatchSyntax;
33234
 
class ExtGnu;
33235
 
class ExtAC;
33236
 
class ExtACBuilderCoupling;
33237
 
class ExtACSyntaxCoupling;
33238
 
class ExtACTree;
33239
 
class ExtACKeywords;
33240
 
class WinAsm;
33241
 
class WinDeclSpecs;
33242
 
class WinMemberExplSpec;
33243
 
class WinTypeKeywords;
33244
 
class PragmaOnceUnitState;
33245
 
class PragmaOnce;
33246
 
class CCExprResolve;
33247
 
class CExprResolve;
33248
 
namespace Puma {
33249
 
 
33250
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33251
 
class CT_SwitchStmt : public CT_Statement, public CSemScope {
33252
 
#line 33253 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33253
 
  friend class ::WinIfExists;
33254
 
  friend class ::WinImportHandler;
33255
 
  friend class ::WinMacros;
33256
 
  friend class ::CMatchSyntax;
33257
 
  friend class ::ExtGnu;
33258
 
  friend class ::ExtAC;
33259
 
  friend class ::ExtACBuilderCoupling;
33260
 
  friend class ::ExtACSyntaxCoupling;
33261
 
  friend class ::ExtACTree;
33262
 
  friend class ::ExtACKeywords;
33263
 
  friend class ::WinAsm;
33264
 
  friend class ::WinDeclSpecs;
33265
 
  friend class ::WinMemberExplSpec;
33266
 
  friend class ::WinTypeKeywords;
33267
 
  friend class ::PragmaOnceUnitState;
33268
 
  friend class ::PragmaOnce;
33269
 
  friend class ::CCExprResolve;
33270
 
  friend class ::CExprResolve;
33271
 
 
33272
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33273
 
 
33274
 
  CTree *sons[5]; // keyword, open, cond, close, stmt
33275
 
 
33276
 
public:
33277
 
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
33278
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
33279
 
  }
33280
 
  static const char *NodeId ();
33281
 
  const char *NodeName () const { return NodeId (); }
33282
 
  int Sons () const { return 5; }
33283
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
33284
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
33285
 
  CTree *Condition () const { return sons[2]; }
33286
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33287
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
33288
 
  }
33289
 
};
33290
 
 
33291
 
 
33292
 
#line 33293 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33293
 
} // closed Puma
33294
 
class WinIfExists;
33295
 
class WinImportHandler;
33296
 
class WinMacros;
33297
 
class CMatchSyntax;
33298
 
class ExtGnu;
33299
 
class ExtAC;
33300
 
class ExtACBuilderCoupling;
33301
 
class ExtACSyntaxCoupling;
33302
 
class ExtACTree;
33303
 
class ExtACKeywords;
33304
 
class WinAsm;
33305
 
class WinDeclSpecs;
33306
 
class WinMemberExplSpec;
33307
 
class WinTypeKeywords;
33308
 
class PragmaOnceUnitState;
33309
 
class PragmaOnce;
33310
 
class CCExprResolve;
33311
 
class CExprResolve;
33312
 
namespace Puma {
33313
 
 
33314
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33315
 
class CT_IfStmt : public CT_Statement, public CSemScope {
33316
 
#line 33317 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33317
 
  friend class ::WinIfExists;
33318
 
  friend class ::WinImportHandler;
33319
 
  friend class ::WinMacros;
33320
 
  friend class ::CMatchSyntax;
33321
 
  friend class ::ExtGnu;
33322
 
  friend class ::ExtAC;
33323
 
  friend class ::ExtACBuilderCoupling;
33324
 
  friend class ::ExtACSyntaxCoupling;
33325
 
  friend class ::ExtACTree;
33326
 
  friend class ::ExtACKeywords;
33327
 
  friend class ::WinAsm;
33328
 
  friend class ::WinDeclSpecs;
33329
 
  friend class ::WinMemberExplSpec;
33330
 
  friend class ::WinTypeKeywords;
33331
 
  friend class ::PragmaOnceUnitState;
33332
 
  friend class ::PragmaOnce;
33333
 
  friend class ::CCExprResolve;
33334
 
  friend class ::CExprResolve;
33335
 
 
33336
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33337
 
 
33338
 
  CTree *sons[5]; // keyword, open, cond, close, stmt
33339
 
 
33340
 
public:
33341
 
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
33342
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
33343
 
  }
33344
 
  static const char *NodeId ();
33345
 
  const char *NodeName () const { return NodeId (); }
33346
 
  int Sons () const { return 5; }
33347
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
33348
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
33349
 
  CTree *Condition () const { return sons[2]; }
33350
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33351
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
33352
 
  }
33353
 
};
33354
 
 
33355
 
 
33356
 
#line 33357 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33357
 
} // closed Puma
33358
 
class WinIfExists;
33359
 
class WinImportHandler;
33360
 
class WinMacros;
33361
 
class CMatchSyntax;
33362
 
class ExtGnu;
33363
 
class ExtAC;
33364
 
class ExtACBuilderCoupling;
33365
 
class ExtACSyntaxCoupling;
33366
 
class ExtACTree;
33367
 
class ExtACKeywords;
33368
 
class WinAsm;
33369
 
class WinDeclSpecs;
33370
 
class WinMemberExplSpec;
33371
 
class WinTypeKeywords;
33372
 
class PragmaOnceUnitState;
33373
 
class PragmaOnce;
33374
 
class CCExprResolve;
33375
 
class CExprResolve;
33376
 
namespace Puma {
33377
 
 
33378
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33379
 
class CT_IfElseStmt : public CT_Statement, public CSemScope {
33380
 
#line 33381 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33381
 
  friend class ::WinIfExists;
33382
 
  friend class ::WinImportHandler;
33383
 
  friend class ::WinMacros;
33384
 
  friend class ::CMatchSyntax;
33385
 
  friend class ::ExtGnu;
33386
 
  friend class ::ExtAC;
33387
 
  friend class ::ExtACBuilderCoupling;
33388
 
  friend class ::ExtACSyntaxCoupling;
33389
 
  friend class ::ExtACTree;
33390
 
  friend class ::ExtACKeywords;
33391
 
  friend class ::WinAsm;
33392
 
  friend class ::WinDeclSpecs;
33393
 
  friend class ::WinMemberExplSpec;
33394
 
  friend class ::WinTypeKeywords;
33395
 
  friend class ::PragmaOnceUnitState;
33396
 
  friend class ::PragmaOnce;
33397
 
  friend class ::CCExprResolve;
33398
 
  friend class ::CExprResolve;
33399
 
 
33400
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33401
 
 
33402
 
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
33403
 
 
33404
 
public:
33405
 
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
33406
 
                 CTree *is, CTree *e, CTree *es) {
33407
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
33408
 
    sons[5] = e; sons[6] = es; 
33409
 
  }
33410
 
  static const char *NodeId ();
33411
 
  const char *NodeName () const { return NodeId (); }
33412
 
  int Sons () const { return 7; }
33413
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
33414
 
  CTree *Condition () const { return sons[2]; }
33415
 
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
33416
 
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
33417
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33418
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
33419
 
  }
33420
 
};
33421
 
 
33422
 
 
33423
 
#line 33424 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33424
 
} // closed Puma
33425
 
class WinIfExists;
33426
 
class WinImportHandler;
33427
 
class WinMacros;
33428
 
class CMatchSyntax;
33429
 
class ExtGnu;
33430
 
class ExtAC;
33431
 
class ExtACBuilderCoupling;
33432
 
class ExtACSyntaxCoupling;
33433
 
class ExtACTree;
33434
 
class ExtACKeywords;
33435
 
class WinAsm;
33436
 
class WinDeclSpecs;
33437
 
class WinMemberExplSpec;
33438
 
class WinTypeKeywords;
33439
 
class PragmaOnceUnitState;
33440
 
class PragmaOnce;
33441
 
class CCExprResolve;
33442
 
class CExprResolve;
33443
 
namespace Puma {
33444
 
 
33445
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33446
 
class CT_BreakStmt : public CT_Statement {
33447
 
#line 33448 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33448
 
  friend class ::WinIfExists;
33449
 
  friend class ::WinImportHandler;
33450
 
  friend class ::WinMacros;
33451
 
  friend class ::CMatchSyntax;
33452
 
  friend class ::ExtGnu;
33453
 
  friend class ::ExtAC;
33454
 
  friend class ::ExtACBuilderCoupling;
33455
 
  friend class ::ExtACSyntaxCoupling;
33456
 
  friend class ::ExtACTree;
33457
 
  friend class ::ExtACKeywords;
33458
 
  friend class ::WinAsm;
33459
 
  friend class ::WinDeclSpecs;
33460
 
  friend class ::WinMemberExplSpec;
33461
 
  friend class ::WinTypeKeywords;
33462
 
  friend class ::PragmaOnceUnitState;
33463
 
  friend class ::PragmaOnce;
33464
 
  friend class ::CCExprResolve;
33465
 
  friend class ::CExprResolve;
33466
 
 
33467
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33468
 
 
33469
 
  CTree *sons[2]; // key, semi_colon
33470
 
 
33471
 
public:
33472
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
33473
 
  static const char *NodeId ();
33474
 
  const char *NodeName () const { return NodeId (); }
33475
 
  int Sons () const { return 2; }
33476
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
33477
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33478
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
33479
 
  }
33480
 
};
33481
 
 
33482
 
 
33483
 
#line 33484 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33484
 
} // closed Puma
33485
 
class WinIfExists;
33486
 
class WinImportHandler;
33487
 
class WinMacros;
33488
 
class CMatchSyntax;
33489
 
class ExtGnu;
33490
 
class ExtAC;
33491
 
class ExtACBuilderCoupling;
33492
 
class ExtACSyntaxCoupling;
33493
 
class ExtACTree;
33494
 
class ExtACKeywords;
33495
 
class WinAsm;
33496
 
class WinDeclSpecs;
33497
 
class WinMemberExplSpec;
33498
 
class WinTypeKeywords;
33499
 
class PragmaOnceUnitState;
33500
 
class PragmaOnce;
33501
 
class CCExprResolve;
33502
 
class CExprResolve;
33503
 
namespace Puma {
33504
 
 
33505
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33506
 
class CT_ContinueStmt : public CT_Statement {
33507
 
#line 33508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33508
 
  friend class ::WinIfExists;
33509
 
  friend class ::WinImportHandler;
33510
 
  friend class ::WinMacros;
33511
 
  friend class ::CMatchSyntax;
33512
 
  friend class ::ExtGnu;
33513
 
  friend class ::ExtAC;
33514
 
  friend class ::ExtACBuilderCoupling;
33515
 
  friend class ::ExtACSyntaxCoupling;
33516
 
  friend class ::ExtACTree;
33517
 
  friend class ::ExtACKeywords;
33518
 
  friend class ::WinAsm;
33519
 
  friend class ::WinDeclSpecs;
33520
 
  friend class ::WinMemberExplSpec;
33521
 
  friend class ::WinTypeKeywords;
33522
 
  friend class ::PragmaOnceUnitState;
33523
 
  friend class ::PragmaOnce;
33524
 
  friend class ::CCExprResolve;
33525
 
  friend class ::CExprResolve;
33526
 
 
33527
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33528
 
 
33529
 
  CTree *sons[2]; // key, semi_colon
33530
 
 
33531
 
public:
33532
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
33533
 
  static const char *NodeId ();
33534
 
  const char *NodeName () const { return NodeId (); }
33535
 
  int Sons () const { return 2; }
33536
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
33537
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33538
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
33539
 
  }
33540
 
};
33541
 
 
33542
 
 
33543
 
#line 33544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33544
 
} // closed Puma
33545
 
class WinIfExists;
33546
 
class WinImportHandler;
33547
 
class WinMacros;
33548
 
class CMatchSyntax;
33549
 
class ExtGnu;
33550
 
class ExtAC;
33551
 
class ExtACBuilderCoupling;
33552
 
class ExtACSyntaxCoupling;
33553
 
class ExtACTree;
33554
 
class ExtACKeywords;
33555
 
class WinAsm;
33556
 
class WinDeclSpecs;
33557
 
class WinMemberExplSpec;
33558
 
class WinTypeKeywords;
33559
 
class PragmaOnceUnitState;
33560
 
class PragmaOnce;
33561
 
class CCExprResolve;
33562
 
class CExprResolve;
33563
 
namespace Puma {
33564
 
 
33565
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33566
 
class CT_GotoStmt : public CT_Statement {
33567
 
#line 33568 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33568
 
  friend class ::WinIfExists;
33569
 
  friend class ::WinImportHandler;
33570
 
  friend class ::WinMacros;
33571
 
  friend class ::CMatchSyntax;
33572
 
  friend class ::ExtGnu;
33573
 
  friend class ::ExtAC;
33574
 
  friend class ::ExtACBuilderCoupling;
33575
 
  friend class ::ExtACSyntaxCoupling;
33576
 
  friend class ::ExtACTree;
33577
 
  friend class ::ExtACKeywords;
33578
 
  friend class ::WinAsm;
33579
 
  friend class ::WinDeclSpecs;
33580
 
  friend class ::WinMemberExplSpec;
33581
 
  friend class ::WinTypeKeywords;
33582
 
  friend class ::PragmaOnceUnitState;
33583
 
  friend class ::PragmaOnce;
33584
 
  friend class ::CCExprResolve;
33585
 
  friend class ::CExprResolve;
33586
 
 
33587
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33588
 
 
33589
 
  CTree *sons[3]; // key, label, semi_colon
33590
 
 
33591
 
public:
33592
 
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
33593
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
33594
 
  }
33595
 
  static const char *NodeId ();
33596
 
  const char *NodeName () const { return NodeId (); }
33597
 
  int Sons () const { return 3; }
33598
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
33599
 
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
33600
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33601
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
33602
 
  }
33603
 
};
33604
 
 
33605
 
 
33606
 
#line 33607 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33607
 
} // closed Puma
33608
 
class WinIfExists;
33609
 
class WinImportHandler;
33610
 
class WinMacros;
33611
 
class CMatchSyntax;
33612
 
class ExtGnu;
33613
 
class ExtAC;
33614
 
class ExtACBuilderCoupling;
33615
 
class ExtACSyntaxCoupling;
33616
 
class ExtACTree;
33617
 
class ExtACKeywords;
33618
 
class WinAsm;
33619
 
class WinDeclSpecs;
33620
 
class WinMemberExplSpec;
33621
 
class WinTypeKeywords;
33622
 
class PragmaOnceUnitState;
33623
 
class PragmaOnce;
33624
 
class CCExprResolve;
33625
 
class CExprResolve;
33626
 
namespace Puma {
33627
 
 
33628
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33629
 
class CT_ReturnStmt : public CT_Statement {
33630
 
#line 33631 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33631
 
  friend class ::WinIfExists;
33632
 
  friend class ::WinImportHandler;
33633
 
  friend class ::WinMacros;
33634
 
  friend class ::CMatchSyntax;
33635
 
  friend class ::ExtGnu;
33636
 
  friend class ::ExtAC;
33637
 
  friend class ::ExtACBuilderCoupling;
33638
 
  friend class ::ExtACSyntaxCoupling;
33639
 
  friend class ::ExtACTree;
33640
 
  friend class ::ExtACKeywords;
33641
 
  friend class ::WinAsm;
33642
 
  friend class ::WinDeclSpecs;
33643
 
  friend class ::WinMemberExplSpec;
33644
 
  friend class ::WinTypeKeywords;
33645
 
  friend class ::PragmaOnceUnitState;
33646
 
  friend class ::PragmaOnce;
33647
 
  friend class ::CCExprResolve;
33648
 
  friend class ::CExprResolve;
33649
 
 
33650
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33651
 
 
33652
 
  CTree *sons[3]; // key, expr, semi_colon
33653
 
 
33654
 
public:
33655
 
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
33656
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
33657
 
  }
33658
 
  static const char *NodeId ();
33659
 
  const char *NodeName () const { return NodeId (); }
33660
 
  int Sons () const { return CTree::Sons (sons, 3); }
33661
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
33662
 
  CTree *Expr () const { return sons[1]; }
33663
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33664
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
33665
 
  }
33666
 
};
33667
 
 
33668
 
 
33669
 
#line 33670 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33670
 
} // closed Puma
33671
 
class WinIfExists;
33672
 
class WinImportHandler;
33673
 
class WinMacros;
33674
 
class CMatchSyntax;
33675
 
class ExtGnu;
33676
 
class ExtAC;
33677
 
class ExtACBuilderCoupling;
33678
 
class ExtACSyntaxCoupling;
33679
 
class ExtACTree;
33680
 
class ExtACKeywords;
33681
 
class WinAsm;
33682
 
class WinDeclSpecs;
33683
 
class WinMemberExplSpec;
33684
 
class WinTypeKeywords;
33685
 
class PragmaOnceUnitState;
33686
 
class PragmaOnce;
33687
 
class CCExprResolve;
33688
 
class CExprResolve;
33689
 
namespace Puma {
33690
 
 
33691
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33692
 
class CT_WhileStmt : public CT_Statement, public CSemScope {
33693
 
#line 33694 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33694
 
  friend class ::WinIfExists;
33695
 
  friend class ::WinImportHandler;
33696
 
  friend class ::WinMacros;
33697
 
  friend class ::CMatchSyntax;
33698
 
  friend class ::ExtGnu;
33699
 
  friend class ::ExtAC;
33700
 
  friend class ::ExtACBuilderCoupling;
33701
 
  friend class ::ExtACSyntaxCoupling;
33702
 
  friend class ::ExtACTree;
33703
 
  friend class ::ExtACKeywords;
33704
 
  friend class ::WinAsm;
33705
 
  friend class ::WinDeclSpecs;
33706
 
  friend class ::WinMemberExplSpec;
33707
 
  friend class ::WinTypeKeywords;
33708
 
  friend class ::PragmaOnceUnitState;
33709
 
  friend class ::PragmaOnce;
33710
 
  friend class ::CCExprResolve;
33711
 
  friend class ::CExprResolve;
33712
 
 
33713
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33714
 
 
33715
 
  CTree *sons[5]; // key, open, cond, close, stmt
33716
 
 
33717
 
public:
33718
 
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
33719
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
33720
 
  }
33721
 
  static const char *NodeId ();
33722
 
  const char *NodeName () const { return NodeId (); }
33723
 
  int Sons () const { return 5; }
33724
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
33725
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
33726
 
  CTree *Condition () const { return sons[2]; }
33727
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33728
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
33729
 
  }
33730
 
};
33731
 
 
33732
 
 
33733
 
#line 33734 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33734
 
} // closed Puma
33735
 
class WinIfExists;
33736
 
class WinImportHandler;
33737
 
class WinMacros;
33738
 
class CMatchSyntax;
33739
 
class ExtGnu;
33740
 
class ExtAC;
33741
 
class ExtACBuilderCoupling;
33742
 
class ExtACSyntaxCoupling;
33743
 
class ExtACTree;
33744
 
class ExtACKeywords;
33745
 
class WinAsm;
33746
 
class WinDeclSpecs;
33747
 
class WinMemberExplSpec;
33748
 
class WinTypeKeywords;
33749
 
class PragmaOnceUnitState;
33750
 
class PragmaOnce;
33751
 
class CCExprResolve;
33752
 
class CExprResolve;
33753
 
namespace Puma {
33754
 
 
33755
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33756
 
class CT_DoStmt : public CT_Statement {
33757
 
#line 33758 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33758
 
  friend class ::WinIfExists;
33759
 
  friend class ::WinImportHandler;
33760
 
  friend class ::WinMacros;
33761
 
  friend class ::CMatchSyntax;
33762
 
  friend class ::ExtGnu;
33763
 
  friend class ::ExtAC;
33764
 
  friend class ::ExtACBuilderCoupling;
33765
 
  friend class ::ExtACSyntaxCoupling;
33766
 
  friend class ::ExtACTree;
33767
 
  friend class ::ExtACKeywords;
33768
 
  friend class ::WinAsm;
33769
 
  friend class ::WinDeclSpecs;
33770
 
  friend class ::WinMemberExplSpec;
33771
 
  friend class ::WinTypeKeywords;
33772
 
  friend class ::PragmaOnceUnitState;
33773
 
  friend class ::PragmaOnce;
33774
 
  friend class ::CCExprResolve;
33775
 
  friend class ::CExprResolve;
33776
 
 
33777
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33778
 
 
33779
 
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
33780
 
 
33781
 
public:
33782
 
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
33783
 
             CTree *c, CTree *sc) {
33784
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
33785
 
    sons[5] = c; sons[6] = sc; 
33786
 
  }
33787
 
  static const char *NodeId ();
33788
 
  const char *NodeName () const { return NodeId (); }
33789
 
  int Sons () const { return 7; }
33790
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
33791
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
33792
 
  CTree *Expr () const { return sons[4]; }
33793
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33794
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
33795
 
  }
33796
 
};
33797
 
 
33798
 
 
33799
 
#line 33800 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33800
 
} // closed Puma
33801
 
class WinIfExists;
33802
 
class WinImportHandler;
33803
 
class WinMacros;
33804
 
class CMatchSyntax;
33805
 
class ExtGnu;
33806
 
class ExtAC;
33807
 
class ExtACBuilderCoupling;
33808
 
class ExtACSyntaxCoupling;
33809
 
class ExtACTree;
33810
 
class ExtACKeywords;
33811
 
class WinAsm;
33812
 
class WinDeclSpecs;
33813
 
class WinMemberExplSpec;
33814
 
class WinTypeKeywords;
33815
 
class PragmaOnceUnitState;
33816
 
class PragmaOnce;
33817
 
class CCExprResolve;
33818
 
class CExprResolve;
33819
 
namespace Puma {
33820
 
 
33821
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33822
 
class CT_ForStmt : public CT_Statement, public CSemScope {
33823
 
#line 33824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33824
 
  friend class ::WinIfExists;
33825
 
  friend class ::WinImportHandler;
33826
 
  friend class ::WinMacros;
33827
 
  friend class ::CMatchSyntax;
33828
 
  friend class ::ExtGnu;
33829
 
  friend class ::ExtAC;
33830
 
  friend class ::ExtACBuilderCoupling;
33831
 
  friend class ::ExtACSyntaxCoupling;
33832
 
  friend class ::ExtACTree;
33833
 
  friend class ::ExtACKeywords;
33834
 
  friend class ::WinAsm;
33835
 
  friend class ::WinDeclSpecs;
33836
 
  friend class ::WinMemberExplSpec;
33837
 
  friend class ::WinTypeKeywords;
33838
 
  friend class ::PragmaOnceUnitState;
33839
 
  friend class ::PragmaOnce;
33840
 
  friend class ::CCExprResolve;
33841
 
  friend class ::CExprResolve;
33842
 
 
33843
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33844
 
 
33845
 
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
33846
 
 
33847
 
public:
33848
 
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
33849
 
              CTree *e, CTree *c, CTree *stmt) {
33850
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
33851
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
33852
 
  }
33853
 
  static const char *NodeId ();
33854
 
  const char *NodeName () const { return NodeId (); }
33855
 
  int Sons () const { return CTree::Sons (sons, 8); }
33856
 
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
33857
 
  CTree *InitStmt () const { return sons[2]; }
33858
 
  CTree *Condition () const { return sons[3]; }
33859
 
  CTree *Expr () const { return sons[5]; }
33860
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
33861
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33862
 
    CTree::ReplaceSon (sons, 8, old_son, new_son);
33863
 
  }
33864
 
};
33865
 
 
33866
 
 
33867
 
#line 33868 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33868
 
} // closed Puma
33869
 
class WinIfExists;
33870
 
class WinImportHandler;
33871
 
class WinMacros;
33872
 
class CMatchSyntax;
33873
 
class ExtGnu;
33874
 
class ExtAC;
33875
 
class ExtACBuilderCoupling;
33876
 
class ExtACSyntaxCoupling;
33877
 
class ExtACTree;
33878
 
class ExtACKeywords;
33879
 
class WinAsm;
33880
 
class WinDeclSpecs;
33881
 
class WinMemberExplSpec;
33882
 
class WinTypeKeywords;
33883
 
class PragmaOnceUnitState;
33884
 
class PragmaOnce;
33885
 
class CCExprResolve;
33886
 
class CExprResolve;
33887
 
namespace Puma {
33888
 
 
33889
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33890
 
class CT_Condition : public CT_Decl, public CSemObject {
33891
 
#line 33892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33892
 
  friend class ::WinIfExists;
33893
 
  friend class ::WinImportHandler;
33894
 
  friend class ::WinMacros;
33895
 
  friend class ::CMatchSyntax;
33896
 
  friend class ::ExtGnu;
33897
 
  friend class ::ExtAC;
33898
 
  friend class ::ExtACBuilderCoupling;
33899
 
  friend class ::ExtACSyntaxCoupling;
33900
 
  friend class ::ExtACTree;
33901
 
  friend class ::ExtACKeywords;
33902
 
  friend class ::WinAsm;
33903
 
  friend class ::WinDeclSpecs;
33904
 
  friend class ::WinMemberExplSpec;
33905
 
  friend class ::WinTypeKeywords;
33906
 
  friend class ::PragmaOnceUnitState;
33907
 
  friend class ::PragmaOnce;
33908
 
  friend class ::CCExprResolve;
33909
 
  friend class ::CExprResolve;
33910
 
 
33911
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33912
 
 
33913
 
  CTree *sons[3]; // declspecs, declarator, init
33914
 
 
33915
 
public:
33916
 
  CT_Condition (CTree *dsl, CTree *d) {
33917
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
33918
 
  }
33919
 
  static const char *NodeId ();
33920
 
  const char *NodeName () const { return NodeId (); }
33921
 
  int Sons () const { return CTree::Sons (sons, 3); }
33922
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
33923
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
33924
 
  CTree *Declarator () const { return sons[1]; }
33925
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
33926
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
33927
 
  void Initializer (CTree *i) { sons[2] = i; }
33928
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
33929
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
33930
 
  }
33931
 
};
33932
 
 
33933
 
/*****************************************************************************/
33934
 
/*                                                                           */
33935
 
/*                              Classes                                      */
33936
 
/*                                                                           */
33937
 
/*****************************************************************************/
33938
 
 
33939
 
 
33940
 
#line 33941 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33941
 
} // closed Puma
33942
 
class WinIfExists;
33943
 
class WinImportHandler;
33944
 
class WinMacros;
33945
 
class CMatchSyntax;
33946
 
class ExtGnu;
33947
 
class ExtAC;
33948
 
class ExtACBuilderCoupling;
33949
 
class ExtACSyntaxCoupling;
33950
 
class ExtACTree;
33951
 
class ExtACKeywords;
33952
 
class WinAsm;
33953
 
class WinDeclSpecs;
33954
 
class WinMemberExplSpec;
33955
 
class WinTypeKeywords;
33956
 
class PragmaOnceUnitState;
33957
 
class PragmaOnce;
33958
 
class CCExprResolve;
33959
 
class CExprResolve;
33960
 
namespace Puma {
33961
 
 
33962
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33963
 
class CT_ClassDef : public CT_Decl, public CSemObject {
33964
 
#line 33965 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33965
 
  friend class ::WinIfExists;
33966
 
  friend class ::WinImportHandler;
33967
 
  friend class ::WinMacros;
33968
 
  friend class ::CMatchSyntax;
33969
 
  friend class ::ExtGnu;
33970
 
  friend class ::ExtAC;
33971
 
  friend class ::ExtACBuilderCoupling;
33972
 
  friend class ::ExtACSyntaxCoupling;
33973
 
  friend class ::ExtACTree;
33974
 
  friend class ::ExtACKeywords;
33975
 
  friend class ::WinAsm;
33976
 
  friend class ::WinDeclSpecs;
33977
 
  friend class ::WinMemberExplSpec;
33978
 
  friend class ::WinTypeKeywords;
33979
 
  friend class ::PragmaOnceUnitState;
33980
 
  friend class ::PragmaOnce;
33981
 
  friend class ::CCExprResolve;
33982
 
  friend class ::CExprResolve;
33983
 
 
33984
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
33985
 
 
33986
 
   
33987
 
#line 33988 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
33988
 
 
33989
 
  struct __ac_wrapper_sons {
33990
 
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
33991
 
    operator A& () { return _data; }
33992
 
    operator A& () const { return (A&)*(::Puma::CTree * *)_data; }
33993
 
    operator const A& () { return _data; }
33994
 
    operator const A& () const { return _data; }
33995
 
    operator void* () { return _data; }
33996
 
    operator void* () const { return (void*)_data; }
33997
 
    operator const void* () { return _data; }
33998
 
    operator const void* () const { return _data; }
33999
 
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
34000
 
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
34001
 
  } sons
34002
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34003
 
 
34004
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34005
 
; // key, name, bases, members
34006
 
  CTree *obj_decl;
34007
 
 
34008
 
public:
34009
 
  
34010
 
#line 34011 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34011
 
 
34012
 
 
34013
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
34014
 
  typedef void Result;
34015
 
  typedef ::Puma::CT_ClassDef That;
34016
 
  typedef ::Puma::CT_ClassDef Target;
34017
 
  static const int JPID = 4;
34018
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
34019
 
  struct Res {
34020
 
    typedef void Type;
34021
 
    typedef void ReferredType;
34022
 
  };
34023
 
  enum { ARGS = 3 };
34024
 
  template <int I, int DUMMY = 0> struct Arg {
34025
 
    typedef void Type;
34026
 
    typedef void ReferredType;
34027
 
  };
34028
 
  template <int DUMMY> struct Arg<0, DUMMY> {
34029
 
    typedef ::Puma::CTree * Type;
34030
 
    typedef ::Puma::CTree * ReferredType;
34031
 
  };
34032
 
  template <int DUMMY> struct Arg<1, DUMMY> {
34033
 
    typedef ::Puma::CTree * Type;
34034
 
    typedef ::Puma::CTree * ReferredType;
34035
 
  };
34036
 
  template <int DUMMY> struct Arg<2, DUMMY> {
34037
 
    typedef ::Puma::CTree * Type;
34038
 
    typedef ::Puma::CTree * ReferredType;
34039
 
  };
34040
 
 
34041
 
  That *_that;
34042
 
 
34043
 
  inline That *that() {return (That*)_that;}
34044
 
 
34045
 
};
34046
 
 
34047
 
 
34048
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34049
 
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
34050
 
#line 34051 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34051
 
{
34052
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
34053
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
34054
 
this->__exec_old_C1(arg0, arg1, arg2);
34055
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
34056
 
 
34057
 
}
34058
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
34059
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34060
 
{
34061
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
34062
 
  }
34063
 
  static const char *NodeId ();
34064
 
  const char *NodeName () const { return NodeId (); }
34065
 
  int Sons () const { return CTree::Sons (sons, 4); }
34066
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
34067
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
34068
 
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
34069
 
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
34070
 
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
34071
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
34072
 
  void Members (CTree *m) { sons[3] = m; }
34073
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
34074
 
  void ObjDecl (CTree *od) { obj_decl = od; }
34075
 
  void ReplaceSon (CTree *old_son, CTree *new_son) {
34076
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
34077
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
34078
 
  }
34079
 
   private:
34080
 
 
34081
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
34082
 
 CTree * _intro_members ;
34083
 
public :
34084
 
CTree * IntroMembers ( ) const { return _intro_members ; }
34085
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
34086
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34087
 
 
34088
 
#line 34089 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34089
 
 
34090
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
34091
 
  typedef void Result;
34092
 
  typedef ::Puma::CT_ClassDef That;
34093
 
  typedef ::Puma::CT_ClassDef Target;
34094
 
  static const int JPID = 4;
34095
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
34096
 
  struct Res {
34097
 
    typedef void Type;
34098
 
    typedef void ReferredType;
34099
 
  };
34100
 
  enum { ARGS = 1 };
34101
 
  template <int I, int DUMMY = 0> struct Arg {
34102
 
    typedef void Type;
34103
 
    typedef void ReferredType;
34104
 
  };
34105
 
  template <int DUMMY> struct Arg<0, DUMMY> {
34106
 
    typedef const ::Puma::CT_ClassDef & Type;
34107
 
    typedef const ::Puma::CT_ClassDef ReferredType;
34108
 
  };
34109
 
 
34110
 
  That *_that;
34111
 
 
34112
 
  inline That *that() {return (That*)_that;}
34113
 
 
34114
 
};
34115
 
 
34116
 
 
34117
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34118
 
 
34119
 
#line 34120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34120
 
 
34121
 
public:
34122
 
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) {
34123
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
34124
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
34125
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
34126
 
 
34127
 
}
34128
 
 
34129
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34130
 
 
34131
 
#line 34132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34132
 
 
34133
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
34134
 
  typedef void Result;
34135
 
  typedef ::Puma::CT_ClassDef That;
34136
 
  typedef ::Puma::CT_ClassDef Target;
34137
 
  static const int JPID = 4;
34138
 
  static const AC::JPType JPTYPE = (AC::JPType)32;
34139
 
  struct Res {
34140
 
    typedef void Type;
34141
 
    typedef void ReferredType;
34142
 
  };
34143
 
  enum { ARGS = 0 };
34144
 
  template <int I, int DUMMY = 0> struct Arg {
34145
 
    typedef void Type;
34146
 
    typedef void ReferredType;
34147
 
  };
34148
 
 
34149
 
  That *_that;
34150
 
 
34151
 
  inline That *that() {return (That*)_that;}
34152
 
 
34153
 
};
34154
 
 
34155
 
 
34156
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34157
 
 
34158
 
#line 34159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34159
 
 
34160
 
public:
34161
 
inline ~CT_ClassDef () {
34162
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
34163
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
34164
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
34165
 
 
34166
 
}
34167
 
 
34168
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34169
 
};
34170
 
      
34171
 
 
34172
 
#line 34173 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34173
 
} // closed Puma
34174
 
class WinIfExists;
34175
 
class WinImportHandler;
34176
 
class WinMacros;
34177
 
class CMatchSyntax;
34178
 
class ExtGnu;
34179
 
class ExtAC;
34180
 
class ExtACBuilderCoupling;
34181
 
class ExtACSyntaxCoupling;
34182
 
class ExtACTree;
34183
 
class ExtACKeywords;
34184
 
class WinAsm;
34185
 
class WinDeclSpecs;
34186
 
class WinMemberExplSpec;
34187
 
class WinTypeKeywords;
34188
 
class PragmaOnceUnitState;
34189
 
class PragmaOnce;
34190
 
class CCExprResolve;
34191
 
class CExprResolve;
34192
 
namespace Puma {
34193
 
 
34194
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34195
 
class CT_UnionDef : public CT_ClassDef {
34196
 
#line 34197 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34197
 
  friend class ::WinIfExists;
34198
 
  friend class ::WinImportHandler;
34199
 
  friend class ::WinMacros;
34200
 
  friend class ::CMatchSyntax;
34201
 
  friend class ::ExtGnu;
34202
 
  friend class ::ExtAC;
34203
 
  friend class ::ExtACBuilderCoupling;
34204
 
  friend class ::ExtACSyntaxCoupling;
34205
 
  friend class ::ExtACTree;
34206
 
  friend class ::ExtACKeywords;
34207
 
  friend class ::WinAsm;
34208
 
  friend class ::WinDeclSpecs;
34209
 
  friend class ::WinMemberExplSpec;
34210
 
  friend class ::WinTypeKeywords;
34211
 
  friend class ::PragmaOnceUnitState;
34212
 
  friend class ::PragmaOnce;
34213
 
  friend class ::CCExprResolve;
34214
 
  friend class ::CExprResolve;
34215
 
 
34216
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34217
 
 
34218
 
public:
34219
 
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
34220
 
  static const char *NodeId ();
34221
 
  const char *NodeName () const { return NodeId (); }
34222
 
};
34223
 
      
34224
 
 
34225
 
#line 34226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34226
 
} // closed Puma
34227
 
class WinIfExists;
34228
 
class WinImportHandler;
34229
 
class WinMacros;
34230
 
class CMatchSyntax;
34231
 
class ExtGnu;
34232
 
class ExtAC;
34233
 
class ExtACBuilderCoupling;
34234
 
class ExtACSyntaxCoupling;
34235
 
class ExtACTree;
34236
 
class ExtACKeywords;
34237
 
class WinAsm;
34238
 
class WinDeclSpecs;
34239
 
class WinMemberExplSpec;
34240
 
class WinTypeKeywords;
34241
 
class PragmaOnceUnitState;
34242
 
class PragmaOnce;
34243
 
class CCExprResolve;
34244
 
class CExprResolve;
34245
 
namespace Puma {
34246
 
 
34247
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34248
 
class CT_MembList : public CT_DeclList, public CSemScope {
34249
 
#line 34250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34250
 
  friend class ::WinIfExists;
34251
 
  friend class ::WinImportHandler;
34252
 
  friend class ::WinMacros;
34253
 
  friend class ::CMatchSyntax;
34254
 
  friend class ::ExtGnu;
34255
 
  friend class ::ExtAC;
34256
 
  friend class ::ExtACBuilderCoupling;
34257
 
  friend class ::ExtACSyntaxCoupling;
34258
 
  friend class ::ExtACTree;
34259
 
  friend class ::ExtACKeywords;
34260
 
  friend class ::WinAsm;
34261
 
  friend class ::WinDeclSpecs;
34262
 
  friend class ::WinMemberExplSpec;
34263
 
  friend class ::WinTypeKeywords;
34264
 
  friend class ::PragmaOnceUnitState;
34265
 
  friend class ::PragmaOnce;
34266
 
  friend class ::CCExprResolve;
34267
 
  friend class ::CExprResolve;
34268
 
 
34269
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34270
 
 
34271
 
public:
34272
 
  CT_MembList (int size = 10, int incr = 10) : 
34273
 
    CT_DeclList (size, incr) {}
34274
 
  static const char *NodeId ();
34275
 
  const char *NodeName () const { return NodeId (); }
34276
 
};
34277
 
 
34278
 
 
34279
 
#line 34280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34280
 
} // closed Puma
34281
 
class WinIfExists;
34282
 
class WinImportHandler;
34283
 
class WinMacros;
34284
 
class CMatchSyntax;
34285
 
class ExtGnu;
34286
 
class ExtAC;
34287
 
class ExtACBuilderCoupling;
34288
 
class ExtACSyntaxCoupling;
34289
 
class ExtACTree;
34290
 
class ExtACKeywords;
34291
 
class WinAsm;
34292
 
class WinDeclSpecs;
34293
 
class WinMemberExplSpec;
34294
 
class WinTypeKeywords;
34295
 
class PragmaOnceUnitState;
34296
 
class PragmaOnce;
34297
 
class CCExprResolve;
34298
 
class CExprResolve;
34299
 
namespace Puma {
34300
 
 
34301
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34302
 
class CT_MembInitList : public CT_List, public CSemScope {
34303
 
#line 34304 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34304
 
  friend class ::WinIfExists;
34305
 
  friend class ::WinImportHandler;
34306
 
  friend class ::WinMacros;
34307
 
  friend class ::CMatchSyntax;
34308
 
  friend class ::ExtGnu;
34309
 
  friend class ::ExtAC;
34310
 
  friend class ::ExtACBuilderCoupling;
34311
 
  friend class ::ExtACSyntaxCoupling;
34312
 
  friend class ::ExtACTree;
34313
 
  friend class ::ExtACKeywords;
34314
 
  friend class ::WinAsm;
34315
 
  friend class ::WinDeclSpecs;
34316
 
  friend class ::WinMemberExplSpec;
34317
 
  friend class ::WinTypeKeywords;
34318
 
  friend class ::PragmaOnceUnitState;
34319
 
  friend class ::PragmaOnce;
34320
 
  friend class ::CCExprResolve;
34321
 
  friend class ::CExprResolve;
34322
 
 
34323
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34324
 
 
34325
 
public:
34326
 
  CT_MembInitList (int size = 2) : 
34327
 
    CT_List (size, 2, CT_List::OPEN) {}
34328
 
  static const char *NodeId ();
34329
 
  const char *NodeName () const { return NodeId (); }
34330
 
};
34331
 
 
34332
 
 
34333
 
#line 34334 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34334
 
} // closed Puma
34335
 
class WinIfExists;
34336
 
class WinImportHandler;
34337
 
class WinMacros;
34338
 
class CMatchSyntax;
34339
 
class ExtGnu;
34340
 
class ExtAC;
34341
 
class ExtACBuilderCoupling;
34342
 
class ExtACSyntaxCoupling;
34343
 
class ExtACTree;
34344
 
class ExtACKeywords;
34345
 
class WinAsm;
34346
 
class WinDeclSpecs;
34347
 
class WinMemberExplSpec;
34348
 
class WinTypeKeywords;
34349
 
class PragmaOnceUnitState;
34350
 
class PragmaOnce;
34351
 
class CCExprResolve;
34352
 
class CExprResolve;
34353
 
namespace Puma {
34354
 
 
34355
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34356
 
class CT_MembInit : public CT_Expression, public CSemObject {
34357
 
#line 34358 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34358
 
  friend class ::WinIfExists;
34359
 
  friend class ::WinImportHandler;
34360
 
  friend class ::WinMacros;
34361
 
  friend class ::CMatchSyntax;
34362
 
  friend class ::ExtGnu;
34363
 
  friend class ::ExtAC;
34364
 
  friend class ::ExtACBuilderCoupling;
34365
 
  friend class ::ExtACSyntaxCoupling;
34366
 
  friend class ::ExtACTree;
34367
 
  friend class ::ExtACKeywords;
34368
 
  friend class ::WinAsm;
34369
 
  friend class ::WinDeclSpecs;
34370
 
  friend class ::WinMemberExplSpec;
34371
 
  friend class ::WinTypeKeywords;
34372
 
  friend class ::PragmaOnceUnitState;
34373
 
  friend class ::PragmaOnce;
34374
 
  friend class ::CCExprResolve;
34375
 
  friend class ::CExprResolve;
34376
 
 
34377
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34378
 
 
34379
 
  CTree *sons[2]; // name, init
34380
 
 
34381
 
public:
34382
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
34383
 
  static const char *NodeId ();
34384
 
  const char *NodeName () const { return NodeId (); }
34385
 
  int Sons () const { return 2; }
34386
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
34387
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
34388
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
34389
 
  }
34390
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
34391
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
34392
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
34393
 
   private:
34394
 
  typedef CT_MembInit CCExprResolveExpr;
34395
 
 
34396
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
34397
 
 public :
34398
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
34399
 
  typedef CT_MembInit CExprResolveExpr;
34400
 
 
34401
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
34402
 
 public :
34403
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
34404
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34405
 
};
34406
 
 
34407
 
 
34408
 
#line 34409 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34409
 
} // closed Puma
34410
 
class WinIfExists;
34411
 
class WinImportHandler;
34412
 
class WinMacros;
34413
 
class CMatchSyntax;
34414
 
class ExtGnu;
34415
 
class ExtAC;
34416
 
class ExtACBuilderCoupling;
34417
 
class ExtACSyntaxCoupling;
34418
 
class ExtACTree;
34419
 
class ExtACKeywords;
34420
 
class WinAsm;
34421
 
class WinDeclSpecs;
34422
 
class WinMemberExplSpec;
34423
 
class WinTypeKeywords;
34424
 
class PragmaOnceUnitState;
34425
 
class PragmaOnce;
34426
 
class CCExprResolve;
34427
 
class CExprResolve;
34428
 
namespace Puma {
34429
 
 
34430
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34431
 
class CT_BaseSpecList : public CT_List {
34432
 
#line 34433 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34433
 
  friend class ::WinIfExists;
34434
 
  friend class ::WinImportHandler;
34435
 
  friend class ::WinMacros;
34436
 
  friend class ::CMatchSyntax;
34437
 
  friend class ::ExtGnu;
34438
 
  friend class ::ExtAC;
34439
 
  friend class ::ExtACBuilderCoupling;
34440
 
  friend class ::ExtACSyntaxCoupling;
34441
 
  friend class ::ExtACTree;
34442
 
  friend class ::ExtACKeywords;
34443
 
  friend class ::WinAsm;
34444
 
  friend class ::WinDeclSpecs;
34445
 
  friend class ::WinMemberExplSpec;
34446
 
  friend class ::WinTypeKeywords;
34447
 
  friend class ::PragmaOnceUnitState;
34448
 
  friend class ::PragmaOnce;
34449
 
  friend class ::CCExprResolve;
34450
 
  friend class ::CExprResolve;
34451
 
 
34452
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34453
 
 
34454
 
public:
34455
 
  CT_BaseSpecList (int size = 2) : 
34456
 
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
34457
 
  static const char *NodeId ();
34458
 
  const char *NodeName () const { return NodeId (); }
34459
 
};
34460
 
 
34461
 
 
34462
 
#line 34463 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34463
 
} // closed Puma
34464
 
class WinIfExists;
34465
 
class WinImportHandler;
34466
 
class WinMacros;
34467
 
class CMatchSyntax;
34468
 
class ExtGnu;
34469
 
class ExtAC;
34470
 
class ExtACBuilderCoupling;
34471
 
class ExtACSyntaxCoupling;
34472
 
class ExtACTree;
34473
 
class ExtACKeywords;
34474
 
class WinAsm;
34475
 
class WinDeclSpecs;
34476
 
class WinMemberExplSpec;
34477
 
class WinTypeKeywords;
34478
 
class PragmaOnceUnitState;
34479
 
class PragmaOnce;
34480
 
class CCExprResolve;
34481
 
class CExprResolve;
34482
 
namespace Puma {
34483
 
 
34484
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34485
 
class CT_AccessSpec : public CTree {
34486
 
#line 34487 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34487
 
  friend class ::WinIfExists;
34488
 
  friend class ::WinImportHandler;
34489
 
  friend class ::WinMacros;
34490
 
  friend class ::CMatchSyntax;
34491
 
  friend class ::ExtGnu;
34492
 
  friend class ::ExtAC;
34493
 
  friend class ::ExtACBuilderCoupling;
34494
 
  friend class ::ExtACSyntaxCoupling;
34495
 
  friend class ::ExtACTree;
34496
 
  friend class ::ExtACKeywords;
34497
 
  friend class ::WinAsm;
34498
 
  friend class ::WinDeclSpecs;
34499
 
  friend class ::WinMemberExplSpec;
34500
 
  friend class ::WinTypeKeywords;
34501
 
  friend class ::PragmaOnceUnitState;
34502
 
  friend class ::PragmaOnce;
34503
 
  friend class ::CCExprResolve;
34504
 
  friend class ::CExprResolve;
34505
 
 
34506
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34507
 
 
34508
 
  CTree *sons[2]; // access, colon
34509
 
 
34510
 
public:
34511
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
34512
 
  static const char *NodeId ();
34513
 
  const char *NodeName () const { return NodeId (); }
34514
 
  int Sons () const { return 2; }
34515
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
34516
 
  int Access () const { return sons[0]->token ()->type (); }
34517
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
34518
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
34519
 
  }
34520
 
};
34521
 
 
34522
 
 
34523
 
#line 34524 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34524
 
} // closed Puma
34525
 
class WinIfExists;
34526
 
class WinImportHandler;
34527
 
class WinMacros;
34528
 
class CMatchSyntax;
34529
 
class ExtGnu;
34530
 
class ExtAC;
34531
 
class ExtACBuilderCoupling;
34532
 
class ExtACSyntaxCoupling;
34533
 
class ExtACTree;
34534
 
class ExtACKeywords;
34535
 
class WinAsm;
34536
 
class WinDeclSpecs;
34537
 
class WinMemberExplSpec;
34538
 
class WinTypeKeywords;
34539
 
class PragmaOnceUnitState;
34540
 
class PragmaOnce;
34541
 
class CCExprResolve;
34542
 
class CExprResolve;
34543
 
namespace Puma {
34544
 
 
34545
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34546
 
class CT_BaseSpec : public CTree {
34547
 
#line 34548 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34548
 
  friend class ::WinIfExists;
34549
 
  friend class ::WinImportHandler;
34550
 
  friend class ::WinMacros;
34551
 
  friend class ::CMatchSyntax;
34552
 
  friend class ::ExtGnu;
34553
 
  friend class ::ExtAC;
34554
 
  friend class ::ExtACBuilderCoupling;
34555
 
  friend class ::ExtACSyntaxCoupling;
34556
 
  friend class ::ExtACTree;
34557
 
  friend class ::ExtACKeywords;
34558
 
  friend class ::WinAsm;
34559
 
  friend class ::WinDeclSpecs;
34560
 
  friend class ::WinMemberExplSpec;
34561
 
  friend class ::WinTypeKeywords;
34562
 
  friend class ::PragmaOnceUnitState;
34563
 
  friend class ::PragmaOnce;
34564
 
  friend class ::CCExprResolve;
34565
 
  friend class ::CExprResolve;
34566
 
 
34567
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34568
 
 
34569
 
  CTree *sons[3]; // virtual, access, name
34570
 
 
34571
 
public:
34572
 
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
34573
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
34574
 
  }
34575
 
  static const char *NodeId ();
34576
 
  const char *NodeName () const { return NodeId (); }
34577
 
  int Sons () const { return CTree::Sons (sons, 3); }
34578
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
34579
 
  int Access () const { return sons[1]->token ()->type (); }
34580
 
  CTree *AccessSpec () const { return sons[1]; }
34581
 
  CTree *Virtual () const { return sons[0]; }
34582
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
34583
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
34584
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
34585
 
  }
34586
 
};
34587
 
 
34588
 
 
34589
 
#line 34590 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34590
 
} // closed Puma
34591
 
class WinIfExists;
34592
 
class WinImportHandler;
34593
 
class WinMacros;
34594
 
class CMatchSyntax;
34595
 
class ExtGnu;
34596
 
class ExtAC;
34597
 
class ExtACBuilderCoupling;
34598
 
class ExtACSyntaxCoupling;
34599
 
class ExtACTree;
34600
 
class ExtACKeywords;
34601
 
class WinAsm;
34602
 
class WinDeclSpecs;
34603
 
class WinMemberExplSpec;
34604
 
class WinTypeKeywords;
34605
 
class PragmaOnceUnitState;
34606
 
class PragmaOnce;
34607
 
class CCExprResolve;
34608
 
class CExprResolve;
34609
 
namespace Puma {
34610
 
 
34611
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34612
 
class CT_AccessDecl : public CT_Decl {
34613
 
#line 34614 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34614
 
  friend class ::WinIfExists;
34615
 
  friend class ::WinImportHandler;
34616
 
  friend class ::WinMacros;
34617
 
  friend class ::CMatchSyntax;
34618
 
  friend class ::ExtGnu;
34619
 
  friend class ::ExtAC;
34620
 
  friend class ::ExtACBuilderCoupling;
34621
 
  friend class ::ExtACSyntaxCoupling;
34622
 
  friend class ::ExtACTree;
34623
 
  friend class ::ExtACKeywords;
34624
 
  friend class ::WinAsm;
34625
 
  friend class ::WinDeclSpecs;
34626
 
  friend class ::WinMemberExplSpec;
34627
 
  friend class ::WinTypeKeywords;
34628
 
  friend class ::PragmaOnceUnitState;
34629
 
  friend class ::PragmaOnce;
34630
 
  friend class ::CCExprResolve;
34631
 
  friend class ::CExprResolve;
34632
 
 
34633
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34634
 
 
34635
 
  CTree *sons[2]; // name, semi_colon
34636
 
 
34637
 
public:
34638
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
34639
 
  static const char *NodeId ();
34640
 
  const char *NodeName () const { return NodeId (); }
34641
 
  int Sons () const { return 2; }
34642
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
34643
 
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
34644
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
34645
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
34646
 
  }
34647
 
};
34648
 
 
34649
 
 
34650
 
#line 34651 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34651
 
} // closed Puma
34652
 
class WinIfExists;
34653
 
class WinImportHandler;
34654
 
class WinMacros;
34655
 
class CMatchSyntax;
34656
 
class ExtGnu;
34657
 
class ExtAC;
34658
 
class ExtACBuilderCoupling;
34659
 
class ExtACSyntaxCoupling;
34660
 
class ExtACTree;
34661
 
class ExtACKeywords;
34662
 
class WinAsm;
34663
 
class WinDeclSpecs;
34664
 
class WinMemberExplSpec;
34665
 
class WinTypeKeywords;
34666
 
class PragmaOnceUnitState;
34667
 
class PragmaOnce;
34668
 
class CCExprResolve;
34669
 
class CExprResolve;
34670
 
namespace Puma {
34671
 
 
34672
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34673
 
class CT_UsingDecl : public CT_AccessDecl {
34674
 
#line 34675 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34675
 
  friend class ::WinIfExists;
34676
 
  friend class ::WinImportHandler;
34677
 
  friend class ::WinMacros;
34678
 
  friend class ::CMatchSyntax;
34679
 
  friend class ::ExtGnu;
34680
 
  friend class ::ExtAC;
34681
 
  friend class ::ExtACBuilderCoupling;
34682
 
  friend class ::ExtACSyntaxCoupling;
34683
 
  friend class ::ExtACTree;
34684
 
  friend class ::ExtACKeywords;
34685
 
  friend class ::WinAsm;
34686
 
  friend class ::WinDeclSpecs;
34687
 
  friend class ::WinMemberExplSpec;
34688
 
  friend class ::WinTypeKeywords;
34689
 
  friend class ::PragmaOnceUnitState;
34690
 
  friend class ::PragmaOnce;
34691
 
  friend class ::CCExprResolve;
34692
 
  friend class ::CExprResolve;
34693
 
 
34694
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34695
 
 
34696
 
  CTree *sons[2]; // using, typename
34697
 
 
34698
 
public:
34699
 
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
34700
 
    sons[0] = u; sons[1] = 0; 
34701
 
  }
34702
 
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
34703
 
    sons[0] = u; sons[1] = t; 
34704
 
  }
34705
 
  static const char *NodeId ();
34706
 
  const char *NodeName () const { return NodeId (); }
34707
 
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
34708
 
  CTree *Son (int n) const {
34709
 
    int num = CTree::Sons (sons, 2);
34710
 
    CTree *result = CTree::Son (sons, 2, n);
34711
 
    return result ? result : CT_AccessDecl::Son (n-num);
34712
 
  }
34713
 
  CTree *Typename () const { return sons[1]; }
34714
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
34715
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
34716
 
    CT_AccessDecl::ReplaceSon (old_son, new_son);
34717
 
  }
34718
 
};
34719
 
 
34720
 
/*****************************************************************************/
34721
 
/*                                                                           */
34722
 
/*                              Wildcards                                    */
34723
 
/*                                                                           */
34724
 
/*****************************************************************************/
34725
 
 
34726
 
 
34727
 
#line 34728 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34728
 
} // closed Puma
34729
 
class WinIfExists;
34730
 
class WinImportHandler;
34731
 
class WinMacros;
34732
 
class CMatchSyntax;
34733
 
class ExtGnu;
34734
 
class ExtAC;
34735
 
class ExtACBuilderCoupling;
34736
 
class ExtACSyntaxCoupling;
34737
 
class ExtACTree;
34738
 
class ExtACKeywords;
34739
 
class WinAsm;
34740
 
class WinDeclSpecs;
34741
 
class WinMemberExplSpec;
34742
 
class WinTypeKeywords;
34743
 
class PragmaOnceUnitState;
34744
 
class PragmaOnce;
34745
 
class CCExprResolve;
34746
 
class CExprResolve;
34747
 
namespace Puma {
34748
 
 
34749
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34750
 
class CT_Any : public CTree {
34751
 
#line 34752 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34752
 
  friend class ::WinIfExists;
34753
 
  friend class ::WinImportHandler;
34754
 
  friend class ::WinMacros;
34755
 
  friend class ::CMatchSyntax;
34756
 
  friend class ::ExtGnu;
34757
 
  friend class ::ExtAC;
34758
 
  friend class ::ExtACBuilderCoupling;
34759
 
  friend class ::ExtACSyntaxCoupling;
34760
 
  friend class ::ExtACTree;
34761
 
  friend class ::ExtACKeywords;
34762
 
  friend class ::WinAsm;
34763
 
  friend class ::WinDeclSpecs;
34764
 
  friend class ::WinMemberExplSpec;
34765
 
  friend class ::WinTypeKeywords;
34766
 
  friend class ::PragmaOnceUnitState;
34767
 
  friend class ::PragmaOnce;
34768
 
  friend class ::CCExprResolve;
34769
 
  friend class ::CExprResolve;
34770
 
 
34771
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34772
 
 
34773
 
  CTree *sons[2]; // keyword, extension
34774
 
 
34775
 
public:
34776
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
34777
 
  static const char *NodeId ();
34778
 
  const char *NodeName () const { return NodeId (); }
34779
 
  int Sons () const { return CTree::Sons (sons, 2); }
34780
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
34781
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
34782
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
34783
 
  }
34784
 
  int AnyType () const { return sons[0]->token ()->type (); }
34785
 
  CT_AnyExtension *Extension () const { return (CT_AnyExtension*)sons[1]; }
34786
 
};
34787
 
 
34788
 
 
34789
 
#line 34790 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34790
 
} // closed Puma
34791
 
class WinIfExists;
34792
 
class WinImportHandler;
34793
 
class WinMacros;
34794
 
class CMatchSyntax;
34795
 
class ExtGnu;
34796
 
class ExtAC;
34797
 
class ExtACBuilderCoupling;
34798
 
class ExtACSyntaxCoupling;
34799
 
class ExtACTree;
34800
 
class ExtACKeywords;
34801
 
class WinAsm;
34802
 
class WinDeclSpecs;
34803
 
class WinMemberExplSpec;
34804
 
class WinTypeKeywords;
34805
 
class PragmaOnceUnitState;
34806
 
class PragmaOnce;
34807
 
class CCExprResolve;
34808
 
class CExprResolve;
34809
 
namespace Puma {
34810
 
 
34811
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34812
 
class CT_AnyList : public CT_Any {
34813
 
#line 34814 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34814
 
  friend class ::WinIfExists;
34815
 
  friend class ::WinImportHandler;
34816
 
  friend class ::WinMacros;
34817
 
  friend class ::CMatchSyntax;
34818
 
  friend class ::ExtGnu;
34819
 
  friend class ::ExtAC;
34820
 
  friend class ::ExtACBuilderCoupling;
34821
 
  friend class ::ExtACSyntaxCoupling;
34822
 
  friend class ::ExtACTree;
34823
 
  friend class ::ExtACKeywords;
34824
 
  friend class ::WinAsm;
34825
 
  friend class ::WinDeclSpecs;
34826
 
  friend class ::WinMemberExplSpec;
34827
 
  friend class ::WinTypeKeywords;
34828
 
  friend class ::PragmaOnceUnitState;
34829
 
  friend class ::PragmaOnce;
34830
 
  friend class ::CCExprResolve;
34831
 
  friend class ::CExprResolve;
34832
 
 
34833
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34834
 
 
34835
 
public:
34836
 
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
34837
 
  static const char *NodeId ();
34838
 
  const char *NodeName () const { return NodeId (); }
34839
 
};
34840
 
 
34841
 
 
34842
 
#line 34843 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34843
 
} // closed Puma
34844
 
class WinIfExists;
34845
 
class WinImportHandler;
34846
 
class WinMacros;
34847
 
class CMatchSyntax;
34848
 
class ExtGnu;
34849
 
class ExtAC;
34850
 
class ExtACBuilderCoupling;
34851
 
class ExtACSyntaxCoupling;
34852
 
class ExtACTree;
34853
 
class ExtACKeywords;
34854
 
class WinAsm;
34855
 
class WinDeclSpecs;
34856
 
class WinMemberExplSpec;
34857
 
class WinTypeKeywords;
34858
 
class PragmaOnceUnitState;
34859
 
class PragmaOnce;
34860
 
class CCExprResolve;
34861
 
class CExprResolve;
34862
 
namespace Puma {
34863
 
 
34864
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34865
 
class CT_AnyExtension : public CTree, public CSemValue {
34866
 
#line 34867 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34867
 
  friend class ::WinIfExists;
34868
 
  friend class ::WinImportHandler;
34869
 
  friend class ::WinMacros;
34870
 
  friend class ::CMatchSyntax;
34871
 
  friend class ::ExtGnu;
34872
 
  friend class ::ExtAC;
34873
 
  friend class ::ExtACBuilderCoupling;
34874
 
  friend class ::ExtACSyntaxCoupling;
34875
 
  friend class ::ExtACTree;
34876
 
  friend class ::ExtACKeywords;
34877
 
  friend class ::WinAsm;
34878
 
  friend class ::WinDeclSpecs;
34879
 
  friend class ::WinMemberExplSpec;
34880
 
  friend class ::WinTypeKeywords;
34881
 
  friend class ::PragmaOnceUnitState;
34882
 
  friend class ::PragmaOnce;
34883
 
  friend class ::CCExprResolve;
34884
 
  friend class ::CExprResolve;
34885
 
 
34886
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34887
 
 
34888
 
  CTree *sons[5]; // open, string, comma, cond, close
34889
 
 
34890
 
public:
34891
 
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
34892
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
34893
 
  }
34894
 
  static const char *NodeId ();
34895
 
  const char *NodeName () const { return NodeId (); }
34896
 
  int Sons () const { return CTree::Sons (sons, 5); }
34897
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
34898
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
34899
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
34900
 
  }
34901
 
  CTree *Condition () const { return sons[3]; }
34902
 
  CT_Token *String () const { return (CT_Token*)sons[1]; }
34903
 
  const char *Name () const { 
34904
 
    return value ? value->StrLiteral ()->String () : (const char*)0; }
34905
 
 
34906
 
  CExprValue *Value () const { return value; }
34907
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
34908
 
};
34909
 
 
34910
 
 
34911
 
#line 34912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34912
 
} // closed Puma
34913
 
class WinIfExists;
34914
 
class WinImportHandler;
34915
 
class WinMacros;
34916
 
class CMatchSyntax;
34917
 
class ExtGnu;
34918
 
class ExtAC;
34919
 
class ExtACBuilderCoupling;
34920
 
class ExtACSyntaxCoupling;
34921
 
class ExtACTree;
34922
 
class ExtACKeywords;
34923
 
class WinAsm;
34924
 
class WinDeclSpecs;
34925
 
class WinMemberExplSpec;
34926
 
class WinTypeKeywords;
34927
 
class PragmaOnceUnitState;
34928
 
class PragmaOnce;
34929
 
class CCExprResolve;
34930
 
class CExprResolve;
34931
 
namespace Puma {
34932
 
 
34933
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34934
 
class CT_AnyCondition : public CTree {
34935
 
#line 34936 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34936
 
  friend class ::WinIfExists;
34937
 
  friend class ::WinImportHandler;
34938
 
  friend class ::WinMacros;
34939
 
  friend class ::CMatchSyntax;
34940
 
  friend class ::ExtGnu;
34941
 
  friend class ::ExtAC;
34942
 
  friend class ::ExtACBuilderCoupling;
34943
 
  friend class ::ExtACSyntaxCoupling;
34944
 
  friend class ::ExtACTree;
34945
 
  friend class ::ExtACKeywords;
34946
 
  friend class ::WinAsm;
34947
 
  friend class ::WinDeclSpecs;
34948
 
  friend class ::WinMemberExplSpec;
34949
 
  friend class ::WinTypeKeywords;
34950
 
  friend class ::PragmaOnceUnitState;
34951
 
  friend class ::PragmaOnce;
34952
 
  friend class ::CCExprResolve;
34953
 
  friend class ::CExprResolve;
34954
 
 
34955
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34956
 
 
34957
 
  CTree *sons[3]; // arg1, arg2, arg3
34958
 
 
34959
 
public:
34960
 
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
34961
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
34962
 
  }
34963
 
  static const char *NodeId ();
34964
 
  const char *NodeName () const { return NodeId (); }
34965
 
  int Sons () const { return CTree::Sons (sons, 3); }
34966
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
34967
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
34968
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
34969
 
  }
34970
 
};
34971
 
 
34972
 
 
34973
 
} // namespace Puma
34974
 
 
34975
 
#endif /* __CTree_h__ */
34976
 
 
34977
 
#line 34978 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34978
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
34979
 
 
34980
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34981
 
 
34982
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
34983
 
namespace Puma {
34984
 
 
34985
 
 
34986
 
class ErrorSink;
34987
 
 
34988
 
 
34989
 
#line 34990 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
34990
 
} // closed Puma
34991
 
class WinIfExists;
34992
 
class WinImportHandler;
34993
 
class WinMacros;
34994
 
class CMatchSyntax;
34995
 
class ExtGnu;
34996
 
class ExtAC;
34997
 
class ExtACBuilderCoupling;
34998
 
class ExtACSyntaxCoupling;
34999
 
class ExtACTree;
35000
 
class ExtACKeywords;
35001
 
class WinAsm;
35002
 
class WinDeclSpecs;
35003
 
class WinMemberExplSpec;
35004
 
class WinTypeKeywords;
35005
 
class PragmaOnceUnitState;
35006
 
class PragmaOnce;
35007
 
class CCExprResolve;
35008
 
class CExprResolve;
35009
 
namespace Puma {
35010
 
 
35011
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
35012
 
class CSemDeclSpecs {
35013
 
#line 35014 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35014
 
  friend class ::WinIfExists;
35015
 
  friend class ::WinImportHandler;
35016
 
  friend class ::WinMacros;
35017
 
  friend class ::CMatchSyntax;
35018
 
  friend class ::ExtGnu;
35019
 
  friend class ::ExtAC;
35020
 
  friend class ::ExtACBuilderCoupling;
35021
 
  friend class ::ExtACSyntaxCoupling;
35022
 
  friend class ::ExtACTree;
35023
 
  friend class ::ExtACKeywords;
35024
 
  friend class ::WinAsm;
35025
 
  friend class ::WinDeclSpecs;
35026
 
  friend class ::WinMemberExplSpec;
35027
 
  friend class ::WinTypeKeywords;
35028
 
  friend class ::PragmaOnceUnitState;
35029
 
  friend class ::PragmaOnce;
35030
 
  friend class ::CCExprResolve;
35031
 
  friend class ::CExprResolve;
35032
 
 
35033
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
35034
 
 
35035
 
 
35036
 
  // initialization context
35037
 
  ErrorSink *_err;
35038
 
  CT_DeclSpecSeq *_dss;
35039
 
  
35040
 
  // analysis results:
35041
 
  // -----------------
35042
 
  // counters
35043
 
  int _names;
35044
 
  int _class_specs;
35045
 
  int _union_specs;
35046
 
  int _enum_specs;
35047
 
  // nodes/objects
35048
 
  int _prim_map[CT_PrimDeclSpec::NumTypes];
35049
 
  Token *_prim_token[CT_PrimDeclSpec::NumTypes];
35050
 
  CT_SimpleName *_name;
35051
 
 
35052
 
  // final results after all checks:
35053
 
  // -------------------------------
35054
 
  CTypeInfo *_type;
35055
 
  bool _def_class, _def_union, _def_enum;
35056
 
 
35057
 
  // analyses the syntax tree nodes of the decl-spec sequence. Return false
35058
 
  // if an error was detected. 
35059
 
  
35060
 
#line 35061 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35061
 
public: inline bool __exec_old_analyze_seq();
35062
 
private:
35063
 
 
35064
 
#line 55 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
35065
 
bool analyze_seq ();
35066
 
  
35067
 
  // analyzes the current declaration specifier in the sequence and set some
35068
 
  // attributes according to the result. Returns false if the specifier type
35069
 
  // is unknown.
35070
 
  
35071
 
#line 35072 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35072
 
public: inline bool __exec_old_analyze(::Puma::CTree * spec);
35073
 
private:
35074
 
 
35075
 
#line 60 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
35076
 
bool analyze (CTree *spec);
35077
 
 
35078
 
  // check functions (used after analyse_seq()
35079
 
  bool check_prim_decl_specs (bool &have_type);
35080
 
  
35081
 
#line 35082 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35082
 
public: inline bool __exec_old_check_complex_decl_specs(bool & have_type);
35083
 
private:
35084
 
 
35085
 
#line 64 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
35086
 
bool check_complex_decl_specs (bool &have_type);  
35087
 
  bool check_storage_class ();
35088
 
  
35089
 
#line 35090 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35090
 
public: inline bool __exec_old_check_signed_unsigned();
35091
 
private:
35092
 
 
35093
 
#line 66 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
35094
 
bool check_signed_unsigned ();
35095
 
  bool check_long_short (); 
35096
 
  
35097
 
#line 35098 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35098
 
public: inline bool __exec_old_check_finally();
35099
 
private:
35100
 
 
35101
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
35102
 
bool check_finally ();
35103
 
  
35104
 
  // type creation code
35105
 
  
35106
 
#line 35107 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35107
 
public: inline ::Puma::CTypeInfo * __exec_old_create_type();
35108
 
private:
35109
 
 
35110
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
35111
 
CTypeInfo *create_type ();
35112
 
  CTypeInfo *create_qualifiers (CTypeInfo *type);
35113
 
  
35114
 
public:
35115
 
  CSemDeclSpecs (ErrorSink *, CT_DeclSpecSeq *);
35116
 
  ~CSemDeclSpecs ();
35117
 
 
35118
 
  CTypeInfo *make_type () const;
35119
 
  CT_DeclSpecSeq *DeclSpecSeq () const;
35120
 
 
35121
 
  bool declared (CT_PrimDeclSpec::Type) const;
35122
 
  bool defClass () const;
35123
 
  bool defUnion () const;
35124
 
  bool defEnum () const;
35125
 
   private:
35126
 
 
35127
 
#line 151 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35128
 
 public :
35129
 
int _typeofs ;
35130
 
CT_GnuTypeof * _typeof_node ;
35131
 
#line 85 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
35132
 
};
35133
 
 
35134
 
inline CSemDeclSpecs::~CSemDeclSpecs () 
35135
 
 { if (_type) CTypeInfo::Destroy (_type); }
35136
 
  
35137
 
inline CTypeInfo *CSemDeclSpecs::make_type () const 
35138
 
 { return CTypeInfo::Duplicate (_type); }
35139
 
inline CT_DeclSpecSeq *CSemDeclSpecs::DeclSpecSeq () const 
35140
 
 { return _dss; }
35141
 
 
35142
 
inline bool CSemDeclSpecs::declared (CT_PrimDeclSpec::Type as) const 
35143
 
 { return _prim_map[as] > 0; }
35144
 
 
35145
 
inline bool CSemDeclSpecs::defClass () const
35146
 
 { return _def_class; }
35147
 
inline bool CSemDeclSpecs::defUnion () const
35148
 
 { return _def_union; }
35149
 
inline bool CSemDeclSpecs::defEnum () const
35150
 
 { return _def_enum; }
35151
 
 
35152
 
 
35153
 
} // namespace Puma
35154
 
 
35155
 
#endif /* __c_sem_decl_specs_h__ */
35156
 
 
35157
 
#line 35158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35158
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CSemDeclSpecs_h__
35159
 
 
35160
 
#line 108 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
35161
 
 
35162
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57642
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35163
57643
namespace Puma {
35164
57644
  class CCSyntax;
35165
57645
  class CSyntax;
35166
 
} // namespace Puma
35167
 
 
35168
 
 
35169
 
using namespace Puma;
 
57646
}
 
57647
 
35170
57648
 
35171
57649
namespace Puma {
35172
57650
  
35173
 
#line 40 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35174
 
 
35175
 
  
35176
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35177
 
 
35178
 
  
35179
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35180
 
 
35181
 
  
35182
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35183
 
 
35184
 
  
35185
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35186
 
 
35187
 
  
35188
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35189
 
 
35190
 
  
35191
 
#line 46 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35192
 
 
35193
 
  
35194
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35195
 
 
35196
 
  
35197
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35198
 
 
35199
 
  
35200
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57651
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57652
 
 
57653
  
 
57654
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57655
 
 
57656
  
 
57657
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57658
 
 
57659
  
 
57660
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57661
 
 
57662
  
 
57663
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57664
 
 
57665
  
 
57666
#line 44 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57667
 
 
57668
  
 
57669
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57670
 
 
57671
  
 
57672
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57673
 
 
57674
  
 
57675
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57676
 
 
57677
  
 
57678
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35201
57679
 
35202
57680
}
35203
57681
 
35204
57682
 
35205
 
#line 35206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57683
#line 57684 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57684
class CCExprResolve;
 
57685
class CExprResolve;
35206
57686
class WinIfExists;
35207
57687
class WinImportHandler;
35208
57688
class WinMacros;
35209
 
class CMatchSyntax;
 
57689
class WinAsm;
 
57690
class WinDeclSpecs;
 
57691
class WinMemberExplSpec;
 
57692
class WinTypeKeywords;
 
57693
class WinFriend;
35210
57694
class ExtAC;
35211
57695
class ExtACBuilderCoupling;
35212
57696
class ExtACSyntaxCoupling;
35213
57697
class ExtACTree;
35214
57698
class ExtACKeywords;
35215
 
class WinAsm;
35216
 
class WinDeclSpecs;
35217
 
class WinMemberExplSpec;
35218
 
class WinTypeKeywords;
35219
57699
class PragmaOnceUnitState;
35220
57700
class PragmaOnce;
35221
 
class CCExprResolve;
35222
 
class CExprResolve;
 
57701
class CMatchSyntax;
35223
57702
 
35224
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57703
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35225
57704
class ExtGnu {
35226
 
#line 35227 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57705
#line 57706 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35227
57706
 
35228
57707
public:
35229
57708
  static ExtGnu *aspectof () {
35235
57714
  }
35236
57715
private:
35237
57716
 
35238
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57717
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35239
57718
 
35240
 
#line 35241 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57719
#line 57720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57720
  friend class ::CCExprResolve;
 
57721
  friend class ::CExprResolve;
35241
57722
  friend class ::WinIfExists;
35242
57723
  friend class ::WinImportHandler;
35243
57724
  friend class ::WinMacros;
35244
 
  friend class ::CMatchSyntax;
 
57725
  friend class ::WinAsm;
 
57726
  friend class ::WinDeclSpecs;
 
57727
  friend class ::WinMemberExplSpec;
 
57728
  friend class ::WinTypeKeywords;
 
57729
  friend class ::WinFriend;
35245
57730
  friend class ::ExtAC;
35246
57731
  friend class ::ExtACBuilderCoupling;
35247
57732
  friend class ::ExtACSyntaxCoupling;
35248
57733
  friend class ::ExtACTree;
35249
57734
  friend class ::ExtACKeywords;
35250
 
  friend class ::WinAsm;
35251
 
  friend class ::WinDeclSpecs;
35252
 
  friend class ::WinMemberExplSpec;
35253
 
  friend class ::WinTypeKeywords;
35254
57735
  friend class ::PragmaOnceUnitState;
35255
57736
  friend class ::PragmaOnce;
35256
 
  friend class ::CCExprResolve;
35257
 
  friend class ::CExprResolve;
 
57737
  friend class ::CMatchSyntax;
35258
57738
 
35259
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57739
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35260
57740
 
35261
57741
 
35262
57742
  // flags to enable/disable certain Gnu features
35269
57749
 
35270
57750
  // pointcut definitions
35271
57751
  
35272
 
#line 63 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35273
 
 
35274
 
  
35275
 
#line 64 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35276
 
 
35277
 
  
35278
 
#line 65 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35279
 
 
35280
 
  
35281
 
#line 66 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35282
 
 
35283
 
  
35284
 
#line 67 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57752
#line 62 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57753
 
 
57754
  
 
57755
#line 63 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57756
 
 
57757
  
 
57758
#line 64 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57759
 
 
57760
  
 
57761
#line 65 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57762
 
 
57763
  
 
57764
#line 66 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57765
 
 
57766
  
 
57767
#line 67 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35285
57768
 
35286
57769
 
35287
57770
  // ----------------------------------------------------
35290
57773
 
35291
57774
  // structural extensions
35292
57775
  
35293
 
#line 74 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35294
 
 
35295
 
  
35296
 
#line 75 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35297
 
 
35298
 
 
35299
 
  // extended asm statement
35300
 
  
35301
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35302
 
 
35303
 
public: template<class JoinPoint> void __a0_after 
35304
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35305
 
 
35306
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35307
 
(JoinPoint *tjp, CSyntax *syntax)
35308
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35309
 
 {
35310
 
#line 35311 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35311
 
 
35312
 
  typedef typename JoinPoint::That __JP_That;
35313
 
  typedef typename JoinPoint::Target __JP_Target;
35314
 
  typedef typename JoinPoint::Result __JP_Result;
35315
 
 
35316
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35317
 
 
35318
 
    CTree *&result = *(CTree**)tjp->result ();
35319
 
    if (extended_asm && !result &&
35320
 
        ((__JP_That
35321
 
#line 82 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35322
 
*)syntax)->look_ahead (TOK_ASM) &&
35323
 
        ((__JP_That
35324
 
#line 83 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35325
 
*)syntax)->parse (&__JP_That
35326
 
#line 83 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35327
 
::gnu_asm_def)) {
35328
 
      result = ((__JP_That
35329
 
#line 84 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35330
 
*)syntax)->builder().simple_decl ();
35331
 
    }
35332
 
  }
35333
 
#line 35334 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35334
 
 
35335
 
private:
35336
 
 
35337
 
#line 86 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35338
 
 
35339
 
 
35340
 
  // extended asm statement
35341
 
  
35342
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35343
 
 
35344
 
public: template<class JoinPoint> void __a1_around 
35345
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35346
 
 
35347
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35348
 
(JoinPoint *tjp, CSyntax *syn)
35349
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35350
 
 {
35351
 
#line 35352 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35352
 
 
35353
 
  typedef typename JoinPoint::That __JP_That;
35354
 
  typedef typename JoinPoint::Target __JP_Target;
35355
 
  typedef typename JoinPoint::Result __JP_Result;
35356
 
 
35357
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57776
#line 74 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57777
 
 
57778
  
 
57779
#line 75 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57780
 
 
57781
 
 
57782
  // extended asm statement
 
57783
  
 
57784
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57785
 
 
57786
public: template<class JoinPoint> void __a0_around 
 
57787
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57788
 
 
57789
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57790
(JoinPoint *tjp, Puma::CSyntax *syn)
 
57791
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57792
 {
 
57793
#line 57794 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57794
 
 
57795
  typedef typename JoinPoint::That __JP_That;
 
57796
  typedef typename JoinPoint::Target __JP_Target;
 
57797
  typedef typename JoinPoint::Result __JP_Result;
 
57798
 
 
57799
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35358
57800
 
35359
57801
    if (extended_asm)
35360
57802
      *tjp->result () = ((__JP_That
35361
 
#line 92 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57803
#line 81 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35362
57804
*)syn)->gnu_asm_def ();
35363
57805
    else
35364
57806
      tjp->proceed ();
35365
57807
  }
35366
 
#line 35367 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35367
 
 
35368
 
private:
35369
 
 
35370
 
#line 95 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35371
 
 
 
57808
#line 57809 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57809
 
 
57810
private:
 
57811
 
 
57812
#line 84 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57813
 
 
57814
 
 
57815
  // extended asm init declarator syntax
 
57816
  
 
57817
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57818
 
 
57819
public: template<class JoinPoint> void __a1_after 
 
57820
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57821
 
 
57822
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57823
(JoinPoint *tjp, Puma::CSyntax *syn)
 
57824
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57825
 {
 
57826
#line 57827 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57827
 
 
57828
  typedef typename JoinPoint::That __JP_That;
 
57829
  typedef typename JoinPoint::Target __JP_Target;
 
57830
  typedef typename JoinPoint::Result __JP_Result;
 
57831
 
 
57832
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57833
 
 
57834
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
57835
    if (extended_asm && !result &&
 
57836
        ((__JP_That
 
57837
#line 92 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57838
*)syn)->look_ahead (Puma::TOK_ASM))
 
57839
      result = ((__JP_That
 
57840
#line 93 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57841
*)syn)->gnu_asm_spec ();
 
57842
  }
 
57843
#line 57844 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57844
 
 
57845
private:
 
57846
 
 
57847
#line 94 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57848
 
 
57849
 
 
57850
//   // asm declaration specifiers
 
57851
//   advice within (derived (syntax ())) &&
 
57852
//          execution ("% Puma::%::init_simple_type_spec()") : after () {
 
57853
//     if (extended_asm)
 
57854
//       tjp->that ()->_simple_type_spec_1.set (Puma::TOK_ASM);
 
57855
//   }
 
57856
//   advice execution ("% Puma::CSyntax::rule_simple_type_spec()") : after () {
 
57857
//     Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
57858
//     if (extended_asm && !result && tjp->that ()->look_ahead (Puma::TOK_ASM) &&
 
57859
//         tjp->that ()->parse (&JoinPoint::That::gnu_asm_spec))
 
57860
//       result = tjp->that ()->builder ().gnu_asm_spec ();
 
57861
//   }
 
57862
//   advice execution ("% Puma::CCSyntax::rule_simple_type_spec()") : after () {
 
57863
//     Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
57864
//     if (extended_asm && !result && tjp->that ()->look_ahead (Puma::TOK_ASM) &&
 
57865
//         tjp->that ()->parse (&JoinPoint::That::gnu_asm_spec))
 
57866
//       result = tjp->that ()->semantic ().simple_type_spec ();
 
57867
//   }
 
57868
//   // make the analysis function aware of 'asm(...)'
 
57869
//   advice execution("bool Puma::%::analyze(...)") && within (csemdeclspecs ()) &&
 
57870
//          args (spec): after (Puma::CTree *spec) {
 
57871
//     bool &result = *tjp->result ();
 
57872
//     if (!result && spec->NodeName () == Puma::CT_GnuAsmSpec::NodeId ())
 
57873
//       result = true;
 
57874
//   }
35372
57875
 
35373
57876
  // ----------------------------------------------------
35374
57877
  // the 'restrict' keyword
35376
57879
 
35377
57880
  // extended cv qualifier
35378
57881
  
35379
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57882
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35380
57883
 
35381
57884
public: template<class JoinPoint> void __a2_after 
35382
 
#line 102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57885
#line 127 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35383
57886
 
35384
 
#line 102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57887
#line 127 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35385
57888
(JoinPoint *tjp)
35386
 
#line 102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57889
#line 127 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35387
57890
 {
35388
 
#line 35389 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57891
#line 57892 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35389
57892
 
35390
57893
  typedef typename JoinPoint::That __JP_That;
35391
57894
  typedef typename JoinPoint::Target __JP_Target;
35392
57895
  typedef typename JoinPoint::Result __JP_Result;
35393
57896
 
35394
 
#line 102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57897
#line 127 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35395
57898
 
35396
57899
    if (extended_cv_qual)
35397
 
      tjp->that ()->_cv_qual_1.set (TOK_RESTRICT);
 
57900
      tjp->that ()->_cv_qual_1.set (Puma::TOK_RESTRICT);
35398
57901
  }
35399
 
#line 35400 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57902
#line 57903 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35400
57903
 
35401
57904
private:
35402
57905
 
35403
 
#line 105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57906
#line 130 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35404
57907
 
35405
57908
 
35406
57909
  // -------------------------
35409
57912
 
35410
57913
  // pointcut definitions
35411
57914
  
35412
 
#line 112 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57915
#line 137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35413
57916
 
35414
57917
  
35415
 
#line 113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57918
#line 138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35416
57919
 
35417
57920
 
35418
57921
  // structural extensions
35419
57922
  
35420
 
#line 116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35421
 
 
35422
 
  
35423
 
#line 117 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35424
 
 
35425
 
  
35426
 
#line 118 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57923
#line 141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57924
 
 
57925
  
 
57926
#line 142 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57927
 
 
57928
  
 
57929
#line 143 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35427
57930
 
35428
57931
 
35429
57932
  // extended primary expression syntax
35430
57933
  
35431
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57934
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35432
57935
 
35433
57936
public: template<class JoinPoint> void __a3_around 
35434
 
#line 122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57937
#line 147 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35435
57938
 
35436
 
#line 122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57939
#line 147 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35437
57940
(JoinPoint *tjp)
35438
 
#line 122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57941
#line 147 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35439
57942
 {
35440
 
#line 35441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57943
#line 57944 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35441
57944
 
35442
57945
  typedef typename JoinPoint::That __JP_That;
35443
57946
  typedef typename JoinPoint::Target __JP_Target;
35444
57947
  typedef typename JoinPoint::Result __JP_Result;
35445
57948
 
35446
 
#line 122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57949
#line 147 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35447
57950
 
35448
57951
    __JP_That
35449
 
#line 123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57952
#line 148 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35450
57953
 *syntax = tjp->that ();
35451
57954
    if (statement_exprs &&
35452
57955
        ((__JP_That
35453
 
#line 125 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35454
 
*)syntax)->look_ahead (TOK_OPEN_ROUND) &&
 
57956
#line 150 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57957
*)syntax)->look_ahead (Puma::TOK_OPEN_ROUND) &&
35455
57958
        ((__JP_That
35456
 
#line 126 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35457
 
*)syntax)->look_ahead (TOK_OPEN_CURLY, 2)) {
35458
 
      CTree *&result = *(CTree**)tjp->result ();
 
57959
#line 151 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57960
*)syntax)->look_ahead (Puma::TOK_OPEN_CURLY, 2)) {
 
57961
      Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
35459
57962
      ((__JP_That
35460
 
#line 128 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35461
 
*)syntax)->consume (); // skip the TOK_OPEN_ROUND
 
57963
#line 153 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57964
*)syntax)->consume (); // skip the Puma::TOK_OPEN_ROUND
35462
57965
      result =
35463
57966
        (((__JP_That
35464
 
#line 130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57967
#line 155 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35465
57968
*)syntax)->parse (&__JP_That
35466
 
#line 130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57969
#line 155 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35467
57970
::cmpd_stmt) &&
35468
57971
        ((__JP_That
35469
 
#line 131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35470
 
*)syntax)->parse (TOK_CLOSE_ROUND)) ?
 
57972
#line 156 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57973
*)syntax)->parse (Puma::TOK_CLOSE_ROUND)) ?
35471
57974
        ((__JP_That
35472
 
#line 132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57975
#line 157 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35473
57976
*)syntax)->builder().gnu_statement_expr () : 0;
35474
57977
    }
35475
57978
    else
35476
57979
      tjp->proceed ();
35477
57980
  }
35478
 
#line 35479 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
57981
#line 57982 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35479
57982
 
35480
57983
private:
35481
57984
 
35482
 
#line 136 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57985
#line 161 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35483
57986
 
35484
57987
 
35485
57988
  // ----------------------
35488
57991
 
35489
57992
  // structural extensions
35490
57993
  
35491
 
#line 143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35492
 
 
35493
 
  
35494
 
#line 144 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35495
 
 
35496
 
  
35497
 
#line 145 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35498
 
 
35499
 
  
35500
 
#line 146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57994
#line 168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57995
 
 
57996
  
 
57997
#line 169 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
57998
 
 
57999
  
 
58000
#line 170 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58001
 
 
58002
  
 
58003
#line 171 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35501
58004
 
35502
58005
 
35503
58006
  // introduce new state into CSemDeclSpecs
35504
58007
  
35505
 
#line 149 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35506
 
 
35507
 
  
35508
 
#line 154 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58008
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35509
58009
 
35510
58010
 
35511
58011
  // syntax extension
35512
58012
  
35513
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58013
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35514
58014
 
35515
58015
public: template<class JoinPoint> void __a4_after 
35516
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58016
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35517
58017
 
35518
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58018
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35519
58019
(JoinPoint *tjp)
35520
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58020
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35521
58021
 {
35522
 
#line 35523 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58022
#line 58023 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35523
58023
 
35524
58024
  typedef typename JoinPoint::That __JP_That;
35525
58025
  typedef typename JoinPoint::Target __JP_Target;
35526
58026
  typedef typename JoinPoint::Result __JP_Result;
35527
58027
 
35528
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58028
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35529
58029
 
35530
58030
    if (typeof_keyword)
35531
 
      tjp->that ()->_simple_type_spec_1.set (TOK_TYPEOF);
 
58031
      tjp->that ()->_simple_type_spec_1.set (Puma::TOK_TYPEOF);
35532
58032
  }
35533
 
#line 35534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58033
#line 58034 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35534
58034
 
35535
58035
private:
35536
58036
 
35537
 
#line 161 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58037
#line 181 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35538
58038
 
35539
58039
  
35540
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58040
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35541
58041
 
35542
58042
public: template<class JoinPoint> void __a5_after 
35543
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58043
#line 182 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35544
58044
 
35545
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58045
#line 182 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35546
58046
(JoinPoint *tjp)
35547
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58047
#line 182 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35548
58048
 {
35549
 
#line 35550 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58049
#line 58050 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35550
58050
 
35551
58051
  typedef typename JoinPoint::That __JP_That;
35552
58052
  typedef typename JoinPoint::Target __JP_Target;
35553
58053
  typedef typename JoinPoint::Result __JP_Result;
35554
58054
 
35555
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58055
#line 182 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35556
58056
 
35557
 
    CTree *&result = *(CTree**)tjp->result ();
35558
 
    if (typeof_keyword && !result && tjp->that ()->look_ahead (TOK_TYPEOF) &&
 
58057
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
58058
    if (typeof_keyword && !result && tjp->that ()->look_ahead (Puma::TOK_TYPEOF) &&
35559
58059
        tjp->that ()->parse (&__JP_That
35560
 
#line 165 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58060
#line 185 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35561
58061
::gnu_typeof))
35562
58062
      result = tjp->that ()->builder ().simple_type_spec ();
35563
58063
  }
35564
 
#line 35565 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58064
#line 58065 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35565
58065
 
35566
58066
private:
35567
58067
 
35568
 
#line 167 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58068
#line 187 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35569
58069
 
35570
58070
  
35571
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58071
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35572
58072
 
35573
58073
public: template<class JoinPoint> void __a6_after 
35574
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58074
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35575
58075
 
35576
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58076
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35577
58077
(JoinPoint *tjp)
35578
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58078
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35579
58079
 {
35580
 
#line 35581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58080
#line 58081 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35581
58081
 
35582
58082
  typedef typename JoinPoint::That __JP_That;
35583
58083
  typedef typename JoinPoint::Target __JP_Target;
35584
58084
  typedef typename JoinPoint::Result __JP_Result;
35585
58085
 
35586
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58086
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35587
58087
 
35588
 
    CTree *&result = *(CTree**)tjp->result ();
35589
 
    if (typeof_keyword && !result && tjp->that ()->look_ahead (TOK_TYPEOF) &&
 
58088
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
58089
    if (typeof_keyword && !result && tjp->that ()->look_ahead (Puma::TOK_TYPEOF) &&
35590
58090
        tjp->that ()->parse (&__JP_That
35591
 
#line 171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58091
#line 191 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35592
58092
::gnu_typeof))
35593
58093
      result = tjp->that ()->semantic ().simple_type_spec ();
35594
58094
  }
35595
 
#line 35596 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58095
#line 58096 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35596
58096
 
35597
58097
private:
35598
58098
 
35599
 
#line 173 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58099
#line 193 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35600
58100
 
35601
58101
 
35602
58102
  // initialize the new state before an analysis starts
35603
58103
  
35604
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58104
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35605
58105
 
35606
58106
public: void __a7_before 
35607
 
#line 177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58107
#line 197 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35608
58108
 
35609
 
#line 177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35610
 
(CSemDeclSpecs &csd)
35611
 
#line 177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58109
#line 197 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58110
(Puma::CSemDeclSpecs &csd)
 
58111
#line 197 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35612
58112
 {
35613
58113
    csd._typeofs = 0;
35614
58114
    csd._typeof_node = 0;
35615
58115
  }
35616
 
#line 35617 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58116
#line 58117 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35617
58117
 
35618
58118
private:
35619
58119
 
35620
 
#line 180 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58120
#line 200 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35621
58121
 
35622
58122
 
35623
58123
  // make the analysis function aware of 'typeof'
35624
58124
  
35625
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58125
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35626
58126
 
35627
58127
public: template<class JoinPoint> void __a8_after 
35628
 
#line 184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58128
#line 204 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35629
58129
 
35630
 
#line 184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35631
 
(JoinPoint *tjp, CSemDeclSpecs &csd, CTree *spec)
35632
 
#line 184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58130
#line 204 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58131
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd, Puma::CTree *spec)
 
58132
#line 204 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35633
58133
 {
35634
 
#line 35635 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58134
#line 58135 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35635
58135
 
35636
58136
  typedef typename JoinPoint::That __JP_That;
35637
58137
  typedef typename JoinPoint::Target __JP_Target;
35638
58138
  typedef typename JoinPoint::Result __JP_Result;
35639
58139
 
35640
 
#line 184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58140
#line 204 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35641
58141
 
35642
58142
    bool &result = *tjp->result ();
35643
 
    if (!result && spec->NodeName () == CT_GnuTypeof::NodeId ()) {
 
58143
    if (!result && spec->NodeName () == Puma::CT_GnuTypeof::NodeId ()) {
35644
58144
      csd._typeofs++;      
35645
 
      csd._typeof_node = (CT_GnuTypeof*)spec;
 
58145
      csd._typeof_node = (Puma::CT_GnuTypeof*)spec;
35646
58146
      result = true;
35647
58147
    }
35648
58148
  }
35649
 
#line 35650 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58149
#line 58150 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35650
58150
 
35651
58151
private:
35652
58152
 
35653
 
#line 191 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58153
#line 211 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35654
58154
 
35655
58155
  
35656
58156
  // make the check functions aware of 'typeof'
35657
58157
  
35658
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58158
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35659
58159
 
35660
58160
public: template<class JoinPoint> void __a9_after 
35661
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58161
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35662
58162
 
35663
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35664
 
(JoinPoint *tjp, CSemDeclSpecs &csd, bool &have_type)
35665
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58163
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58164
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd, bool &have_type)
 
58165
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35666
58166
 {
35667
 
#line 35668 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58167
#line 58168 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35668
58168
 
35669
58169
  typedef typename JoinPoint::That __JP_That;
35670
58170
  typedef typename JoinPoint::Target __JP_Target;
35671
58171
  typedef typename JoinPoint::Result __JP_Result;
35672
58172
 
35673
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58173
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35674
58174
 
35675
58175
    bool &result = *tjp->result ();
35676
58176
    if (result && !have_type && csd._typeofs) {
35678
58178
      result    = true;
35679
58179
    }
35680
58180
  }
35681
 
#line 35682 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58181
#line 58182 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35682
58182
 
35683
58183
private:
35684
58184
 
35685
 
#line 202 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58185
#line 222 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35686
58186
 
35687
58187
  
35688
58188
  
35689
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58189
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35690
58190
 
35691
58191
public: template<class JoinPoint> void __a10_after 
35692
 
#line 205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58192
#line 225 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35693
58193
 
35694
 
#line 205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35695
 
(JoinPoint *tjp, CSemDeclSpecs &csd)
35696
 
#line 205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58194
#line 225 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58195
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd)
 
58196
#line 225 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35697
58197
 {
35698
 
#line 35699 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58198
#line 58199 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35699
58199
 
35700
58200
  typedef typename JoinPoint::That __JP_That;
35701
58201
  typedef typename JoinPoint::Target __JP_Target;
35702
58202
  typedef typename JoinPoint::Result __JP_Result;
35703
58203
 
35704
 
#line 205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58204
#line 225 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35705
58205
 
35706
58206
    bool &result = *tjp->result ();
35707
58207
    if (result) {
35708
 
      if ((csd._prim_map[CT_PrimDeclSpec::PDS_SIGNED] || 
35709
 
           csd._prim_map[CT_PrimDeclSpec::PDS_UNSIGNED]) &&
 
58208
      if ((csd._prim_map[Puma::CT_PrimDeclSpec::PDS_SIGNED] || 
 
58209
           csd._prim_map[Puma::CT_PrimDeclSpec::PDS_UNSIGNED]) &&
35710
58210
          csd._typeofs) {
35711
 
        *csd._err << sev_error << csd._dss->token ()->location () 
 
58211
        *csd._err << Puma::sev_error << csd._dss->token ()->location () 
35712
58212
                  << "`signed' or `unsigned' invalid for 'typeof'"
35713
 
                  << endMessage;
 
58213
                  << Puma::endMessage;
35714
58214
        result = false;
35715
58215
      }
35716
58216
    }
35717
58217
  }
35718
 
#line 35719 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58218
#line 58219 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35719
58219
 
35720
58220
private:
35721
58221
 
35722
 
#line 217 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58222
#line 237 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35723
58223
 
35724
58224
 
35725
58225
  
35726
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58226
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35727
58227
 
35728
58228
public: template<class JoinPoint> void __a11_after 
35729
 
#line 220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58229
#line 240 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35730
58230
 
35731
 
#line 220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35732
 
(JoinPoint *tjp, CSemDeclSpecs &csd)
35733
 
#line 220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58231
#line 240 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58232
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd)
 
58233
#line 240 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35734
58234
 {
35735
 
#line 35736 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58235
#line 58236 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35736
58236
 
35737
58237
  typedef typename JoinPoint::That __JP_That;
35738
58238
  typedef typename JoinPoint::Target __JP_Target;
35739
58239
  typedef typename JoinPoint::Result __JP_Result;
35740
58240
 
35741
 
#line 220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58241
#line 240 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35742
58242
 
35743
58243
    bool &result = *tjp->result ();
35744
58244
    if (result && csd._typeofs > 0) {
35745
 
      *csd._err << sev_error << csd._dss->token ()->location () 
 
58245
      *csd._err << Puma::sev_error << csd._dss->token ()->location () 
35746
58246
                << "invalid type specified in declaration"
35747
 
                << endMessage;
 
58247
                << Puma::endMessage;
35748
58248
      result = false;
35749
58249
    }
35750
58250
  }
35751
 
#line 35752 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58251
#line 58252 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35752
58252
 
35753
58253
private:
35754
58254
 
35755
 
#line 228 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58255
#line 248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35756
58256
 
35757
58257
 
35758
58258
  // make the type creation function aware of 'typeof'
35759
58259
  
35760
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58260
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35761
58261
 
35762
58262
public: template<class JoinPoint> void __a12_after 
35763
 
#line 232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58263
#line 252 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35764
58264
 
35765
 
#line 232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35766
 
(JoinPoint *tjp, CSemDeclSpecs &csd)
35767
 
#line 232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58265
#line 252 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58266
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd)
 
58267
#line 252 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35768
58268
 {
35769
 
#line 35770 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58269
#line 58270 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35770
58270
 
35771
58271
  typedef typename JoinPoint::That __JP_That;
35772
58272
  typedef typename JoinPoint::Target __JP_Target;
35773
58273
  typedef typename JoinPoint::Result __JP_Result;
35774
58274
 
35775
 
#line 232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58275
#line 252 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35776
58276
 
35777
 
    CTypeInfo *&result = *tjp->result ();
 
58277
    Puma::CTypeInfo *&result = *tjp->result ();
35778
58278
    if (result->isUndefined () && csd._typeofs) {
35779
58279
      csd._typeofs--;
35780
58280
      if (csd._typeof_node->Type ()) {
35781
 
        result = CTypeInfo::Duplicate (csd._typeof_node->Type ());
 
58281
        result = Puma::CTypeInfo::Duplicate (csd._typeof_node->Type ());
35782
58282
      }
35783
58283
    }
35784
58284
  }
35785
 
#line 35786 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58285
#line 58286 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35786
58286
 
35787
58287
private:
35788
58288
 
35789
 
#line 240 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58289
#line 260 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35790
58290
 
35791
58291
  
35792
58292
  // ----------------------
35795
58295
 
35796
58296
  // structural extensions
35797
58297
  
35798
 
#line 247 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58298
#line 267 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35799
58299
 
35800
58300
 
35801
58301
  
35802
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58302
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35803
58303
 
35804
58304
public: template<class JoinPoint> void __a13_after 
35805
 
#line 250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58305
#line 270 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35806
58306
 
35807
 
#line 250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58307
#line 270 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35808
58308
(JoinPoint *tjp)
35809
 
#line 250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58309
#line 270 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35810
58310
 {
35811
 
#line 35812 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58311
#line 58312 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35812
58312
 
35813
58313
  typedef typename JoinPoint::That __JP_That;
35814
58314
  typedef typename JoinPoint::Target __JP_Target;
35815
58315
  typedef typename JoinPoint::Result __JP_Result;
35816
58316
 
35817
 
#line 250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58317
#line 270 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35818
58318
 
35819
58319
    if (gnu_builtins)
35820
58320
      tjp->that ()->define_gnu_builtins ();
35821
58321
  }
35822
 
#line 35823 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58322
#line 58323 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35823
58323
 
35824
58324
private:
35825
58325
 
35826
 
#line 253 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58326
#line 273 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35827
58327
 
35828
58328
 
35829
58329
  // ----------------------------------------------------
35831
58331
  // ----------------------------------------------------
35832
58332
 
35833
58333
  
35834
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58334
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35835
58335
 
35836
58336
public: template<class JoinPoint> void __a14_before 
35837
 
#line 260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58337
#line 280 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35838
58338
 
35839
 
#line 260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58339
#line 280 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35840
58340
(JoinPoint *tjp)
35841
 
#line 260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58341
#line 280 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35842
58342
 {
35843
 
#line 35844 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58343
#line 58344 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35844
58344
 
35845
58345
  typedef typename JoinPoint::That __JP_That;
35846
58346
  typedef typename JoinPoint::Target __JP_Target;
35847
58347
  typedef typename JoinPoint::Result __JP_Result;
35848
58348
 
35849
 
#line 260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58349
#line 280 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35850
58350
 
35851
58351
    if (std_hack) {
35852
 
      CStructure *&scope = *(CStructure**)tjp->arg (0);
 
58352
      Puma::CStructure *&scope = *(Puma::CStructure**)tjp->arg (0);
35853
58353
      bool &nested = *(bool*)tjp->arg (1);
35854
58354
      if (scope->Parent ()->GlobalScope () &&
35855
58355
          strcmp (scope->Name (), "std") == 0)
35856
58356
        nested = true;
35857
58357
    }
35858
58358
  }
35859
 
#line 35860 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58359
#line 58360 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35860
58360
 
35861
58361
private:
35862
58362
 
35863
 
#line 268 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58363
#line 288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35864
58364
 
35865
58365
  
35866
58366
  // get the configuration and check whether the GNU mode is enabled
35867
58367
  
35868
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58368
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35869
58369
 
35870
58370
public: void __a15_before 
35871
 
#line 272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58371
#line 292 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35872
58372
 
35873
 
#line 272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35874
 
(Config &config)
35875
 
#line 272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58373
#line 292 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58374
(Puma::Config &config)
 
58375
#line 292 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35876
58376
 {
35877
58377
    if (config.Option ("--gnu") || config.Option ("--gnu-2.95")) {
35878
58378
      extended_asm     = true;
35886
58386
    if (config.Option ("--gnu-2.95") || config.Option ("--gnu-std-hack"))
35887
58387
      std_hack = true;
35888
58388
  }
35889
 
#line 35890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35890
 
 
35891
 
private:
35892
 
 
35893
 
#line 284 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58389
#line 58390 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58390
 
 
58391
private:
 
58392
 
 
58393
#line 304 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58394
 
 
58395
 
 
58396
  // --------------------------------------------------
 
58397
  // support for unnamed struct/union members
 
58398
  // --------------------------------------------------
 
58399
  
 
58400
  
 
58401
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58402
 
 
58403
public: template<class JoinPoint> void __a16_around 
 
58404
#line 310 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58405
 
 
58406
#line 310 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58407
(JoinPoint *tjp)
 
58408
#line 310 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58409
 {
 
58410
#line 58411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58411
 
 
58412
  typedef typename JoinPoint::That __JP_That;
 
58413
  typedef typename JoinPoint::Target __JP_Target;
 
58414
  typedef typename JoinPoint::Result __JP_Result;
 
58415
 
 
58416
#line 310 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58417
 
 
58418
    // 2: type_spec_seq                          ;
 
58419
    // 3: type_spec_seq  member_declarator_list  ;
 
58420
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
58421
    if (! (tjp->that ()->parse (&__JP_That
 
58422
#line 314 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58423
::type_spec_seq) && 
 
58424
           tjp->that ()->opt(tjp->that ()->parse (&__JP_That
 
58425
#line 315 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58426
::member_declarator_list)) && 
 
58427
           tjp->that ()->parse (Puma::TOK_SEMI_COLON))) {
 
58428
      result = (Puma::CTree*)0;
 
58429
    } else {
 
58430
      tjp->that ()->semantic ().finish_decl ();
 
58431
      result = tjp->that ()->builder ().member_decl (); 
 
58432
    }
 
58433
  }
 
58434
#line 58435 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58435
 
 
58436
private:
 
58437
 
 
58438
#line 322 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35894
58439
 
35895
58440
 
35896
58441
protected:
35899
58444
    statement_exprs (false)
35900
58445
  {}
35901
58446
};
35902
 
#line 35903 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
 
58447
#line 58448 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
35903
58448
 
35904
58449
namespace AC {
35905
 
  template <class JoinPoint, class Binding>
35906
 
  inline void invoke_ExtGnu_ExtGnu_a0_after (JoinPoint *tjp) {
35907
 
    typedef typename Binding::template Arg<0> Arg0;
35908
 
    ::ExtGnu::aspectof()->__a0_after (tjp, (Puma::CSyntax *)Arg0::val (tjp));
35909
 
  }
35910
 
  template <class JoinPoint, class Binding>
35911
 
  inline void invoke_ExtGnu_ExtGnu_a1_around (JoinPoint *tjp) {
35912
 
    typedef typename Binding::template Arg<0> Arg0;
35913
 
    ::ExtGnu::aspectof()->__a1_around (tjp, (Puma::CSyntax *)Arg0::val (tjp));
35914
 
  }
35915
 
  template <class JoinPoint>
35916
 
  inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp) {
 
58450
  template <class JoinPoint>
 
58451
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a0_around (JoinPoint *tjp) {
 
58452
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a0_around::template Arg<0> Arg0;
 
58453
    ::ExtGnu::aspectof()->__a0_around (tjp, (Puma::CSyntax *)Arg0::val (tjp));
 
58454
  }
 
58455
  template <class JoinPoint>
 
58456
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a1_after (JoinPoint *tjp) {
 
58457
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a1_after::template Arg<0> Arg0;
 
58458
    ::ExtGnu::aspectof()->__a1_after (tjp, (Puma::CSyntax *)Arg0::val (tjp));
 
58459
  }
 
58460
  template <class JoinPoint>
 
58461
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp) {
35917
58462
    ::ExtGnu::aspectof()->__a2_after (tjp);
35918
58463
  }
35919
58464
  template <class JoinPoint>
35920
 
  inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp) {
 
58465
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp) {
35921
58466
    ::ExtGnu::aspectof()->__a3_around (tjp);
35922
58467
  }
35923
58468
  template <class JoinPoint>
35924
 
  inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp) {
 
58469
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp) {
35925
58470
    ::ExtGnu::aspectof()->__a4_after (tjp);
35926
58471
  }
35927
58472
  template <class JoinPoint>
35928
 
  inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp) {
 
58473
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp) {
35929
58474
    ::ExtGnu::aspectof()->__a5_after (tjp);
35930
58475
  }
35931
58476
  template <class JoinPoint>
35932
 
  inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp) {
 
58477
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp) {
35933
58478
    ::ExtGnu::aspectof()->__a6_after (tjp);
35934
58479
  }
35935
 
  template <class JoinPoint, class Binding>
35936
 
  inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp) {
35937
 
    typedef typename Binding::template Arg<0> Arg0;
 
58480
  template <class JoinPoint>
 
58481
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp) {
 
58482
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a7_before::template Arg<0> Arg0;
35938
58483
    ::ExtGnu::aspectof()->__a7_before ((Puma::CSemDeclSpecs &)Arg0::val (tjp));
35939
58484
  }
35940
 
  template <class JoinPoint, class Binding>
35941
 
  inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp) {
35942
 
    typedef typename Binding::template Arg<0> Arg0;
35943
 
    typedef typename Binding::template Arg<1> Arg1;
 
58485
  template <class JoinPoint>
 
58486
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp) {
 
58487
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a8_after::template Arg<0> Arg0;
 
58488
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a8_after::template Arg<1> Arg1;
35944
58489
    ::ExtGnu::aspectof()->__a8_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp), (Puma::CTree *)Arg1::val (tjp));
35945
58490
  }
35946
 
  template <class JoinPoint, class Binding>
35947
 
  inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp) {
35948
 
    typedef typename Binding::template Arg<0> Arg0;
35949
 
    typedef typename Binding::template Arg<1> Arg1;
 
58491
  template <class JoinPoint>
 
58492
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp) {
 
58493
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a9_after::template Arg<0> Arg0;
 
58494
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a9_after::template Arg<1> Arg1;
35950
58495
    ::ExtGnu::aspectof()->__a9_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp), (bool &)Arg1::val (tjp));
35951
58496
  }
35952
 
  template <class JoinPoint, class Binding>
35953
 
  inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp) {
35954
 
    typedef typename Binding::template Arg<0> Arg0;
 
58497
  template <class JoinPoint>
 
58498
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp) {
 
58499
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a10_after::template Arg<0> Arg0;
35955
58500
    ::ExtGnu::aspectof()->__a10_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp));
35956
58501
  }
35957
 
  template <class JoinPoint, class Binding>
35958
 
  inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp) {
35959
 
    typedef typename Binding::template Arg<0> Arg0;
 
58502
  template <class JoinPoint>
 
58503
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp) {
 
58504
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a11_after::template Arg<0> Arg0;
35960
58505
    ::ExtGnu::aspectof()->__a11_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp));
35961
58506
  }
35962
 
  template <class JoinPoint, class Binding>
35963
 
  inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp) {
35964
 
    typedef typename Binding::template Arg<0> Arg0;
 
58507
  template <class JoinPoint>
 
58508
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp) {
 
58509
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a12_after::template Arg<0> Arg0;
35965
58510
    ::ExtGnu::aspectof()->__a12_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp));
35966
58511
  }
35967
58512
  template <class JoinPoint>
35968
 
  inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp) {
 
58513
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp) {
35969
58514
    ::ExtGnu::aspectof()->__a13_after (tjp);
35970
58515
  }
35971
58516
  template <class JoinPoint>
35972
 
  inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp) {
 
58517
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp) {
35973
58518
    ::ExtGnu::aspectof()->__a14_before (tjp);
35974
58519
  }
35975
 
  template <class JoinPoint, class Binding>
35976
 
  inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp) {
35977
 
    typedef typename Binding::template Arg<0> Arg0;
 
58520
  template <class JoinPoint>
 
58521
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp) {
 
58522
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a15_before::template Arg<0> Arg0;
35978
58523
    ::ExtGnu::aspectof()->__a15_before ((Puma::Config &)Arg0::val (tjp));
35979
58524
  }
 
58525
  template <class JoinPoint>
 
58526
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a16_around (JoinPoint *tjp) {
 
58527
    ::ExtGnu::aspectof()->__a16_around (tjp);
 
58528
  }
35980
58529
35981
58530
 
35982
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58531
#line 329 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
35983
58532
 
35984
58533
 
35985
58534
 
35989
58538
 
35990
58539
// add rules to the C Syntax
35991
58540
 
35992
 
#line 305 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35993
 
 
35994
 
 
35995
 
 
35996
 
#line 315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
35997
 
 
35998
 
 
35999
 
 
36000
 
#line 321 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36001
 
 
36002
 
 
36003
 
 
36004
 
#line 327 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36005
 
 
36006
 
 
36007
 
 
36008
 
#line 332 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58541
#line 344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58542
 
 
58543
 
 
58544
 
 
58545
#line 352 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58546
 
 
58547
 
 
58548
 
 
58549
#line 362 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58550
 
 
58551
 
 
58552
 
 
58553
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58554
 
 
58555
 
 
58556
 
 
58557
#line 374 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58558
 
 
58559
 
 
58560
 
 
58561
#line 379 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36009
58562
 
36010
58563
 
36011
58564
// extend the C Builder
36012
58565
 
36013
 
#line 341 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36014
 
 
36015
 
 
36016
 
 
36017
 
#line 355 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36018
 
 
36019
 
 
36020
 
 
36021
 
#line 359 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36022
 
 
36023
 
 
36024
 
 
36025
 
#line 364 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58566
#line 389 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58567
 
 
58568
 
 
58569
 
 
58570
#line 394 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58571
 
 
58572
 
 
58573
 
 
58574
#line 408 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58575
 
 
58576
 
 
58577
 
 
58578
#line 412 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58579
 
 
58580
 
 
58581
 
 
58582
#line 417 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36026
58583
 
36027
58584
        
36028
58585
 
36029
 
#line 368 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58586
#line 421 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36030
58587
 
36031
58588
 
36032
58589
// -------------------------
36035
58592
 
36036
58593
// C Builder extension
36037
58594
 
36038
 
#line 378 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36039
 
 
36040
 
 
36041
 
 
36042
 
#line 382 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58595
#line 431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58596
 
 
58597
 
 
58598
 
 
58599
#line 435 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36043
58600
 
36044
58601
 
36045
58602
// C semantic extension
36046
58603
 
36047
 
#line 388 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58604
#line 441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36048
58605
 
36049
58606
 
36050
58607
// the necessary #include "..CSemVisitor.h" in CSemExpr.cc will is inserted
36051
58608
// manually (for now)!
36052
58609
 
36053
 
#line 422 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58610
#line 475 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36054
58611
 
36055
58612
 
36056
58613
// C++ semantic extension
36057
58614
 
36058
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58615
#line 481 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36059
58616
 
36060
58617
 
36061
58618
// the necessary #include "..CCSemVisitor.h" in CCSemExpr.cc will is inserted
36062
58619
// manually (for now)!
36063
58620
 
36064
 
#line 462 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58621
#line 515 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36065
58622
 
36066
58623
 
36067
58624
// ----------------------
36070
58627
 
36071
58628
// add rules to the C Syntax for the Gnu Typeof syntax
36072
58629
 
36073
 
#line 472 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36074
 
 
36075
 
 
36076
 
 
36077
 
#line 478 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58630
#line 525 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58631
 
 
58632
 
 
58633
 
 
58634
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36078
58635
 
36079
58636
 
36080
58637
// add rules to the C Builder for the Gnu Typeof syntax
36081
58638
 
36082
 
#line 484 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58639
#line 537 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36083
58640
 
36084
58641
 
36085
58642
// builder extension
36086
58643
 
36087
 
#line 497 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58644
#line 550 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36088
58645
 
36089
58646
 
36090
58647
// C semantic extension
36091
58648
 
36092
 
#line 503 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36093
 
 
36094
 
 
36095
 
 
36096
 
#line 521 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58649
#line 556 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58650
 
 
58651
 
 
58652
 
 
58653
#line 574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36097
58654
 
36098
58655
 
36099
58656
// C++ semantic extension
36100
58657
 
36101
 
#line 527 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36102
 
 
36103
 
 
36104
 
 
36105
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58658
#line 580 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58659
 
 
58660
 
 
58661
 
 
58662
#line 597 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36106
58663
 
36107
58664
 
36108
58665
 
36112
58669
 
36113
58670
// extend the C/C++ semantic
36114
58671
 
36115
 
#line 555 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36116
 
 
36117
 
 
36118
 
 
36119
 
#line 894 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58672
#line 608 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
58673
 
 
58674
 
 
58675
 
 
58676
#line 947 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
36120
58677
 
36121
58678
 
36122
58679
 
36123
58680
#endif /* __ext_gnu_h__ */
36124
58681
 
36125
 
#line 4 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
36126
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CSemDeclSpecs_h__
36127
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CSemDeclSpecs_h__
36128
 
 
36129
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
36130
 
// This file is part of PUMA.
36131
 
// Copyright (C) 1999-2003  The PUMA developer team.
36132
 
//                                                                
36133
 
// This program is free software;  you can redistribute it and/or 
36134
 
// modify it under the terms of the GNU General Public License as 
36135
 
// published by the Free Software Foundation; either version 2 of 
36136
 
// the License, or (at your option) any later version.            
36137
 
//                                                                
36138
 
// This program is distributed in the hope that it will be useful,
36139
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
36140
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
36141
 
// GNU General Public License for more details.                   
36142
 
//                                                                
36143
 
// You should have received a copy of the GNU General Public      
36144
 
// License along with this program; if not, write to the Free     
36145
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
36146
 
// MA  02111-1307  USA                                            
36147
 
 
36148
 
#ifndef __c_sem_decl_specs_h__
36149
 
#define __c_sem_decl_specs_h__
36150
 
 
36151
 
#include "Puma/CTypeInfo.h"
36152
 
#include "Puma/CTree.h"
36153
 
 
36154
 
namespace Puma {
36155
 
 
36156
 
 
36157
 
class ErrorSink;
36158
 
 
36159
 
 
36160
 
#line 36161 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
36161
 
} // closed Puma
36162
 
class WinIfExists;
36163
 
class WinImportHandler;
36164
 
class WinMacros;
36165
 
class CMatchSyntax;
36166
 
class ExtGnu;
36167
 
class ExtAC;
36168
 
class ExtACBuilderCoupling;
36169
 
class ExtACSyntaxCoupling;
36170
 
class ExtACTree;
36171
 
class ExtACKeywords;
36172
 
class WinAsm;
36173
 
class WinDeclSpecs;
36174
 
class WinMemberExplSpec;
36175
 
class WinTypeKeywords;
36176
 
class PragmaOnceUnitState;
36177
 
class PragmaOnce;
36178
 
class CCExprResolve;
36179
 
class CExprResolve;
36180
 
namespace Puma {
36181
 
 
36182
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
36183
 
class CSemDeclSpecs {
36184
 
#line 36185 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
36185
 
  friend class ::WinIfExists;
36186
 
  friend class ::WinImportHandler;
36187
 
  friend class ::WinMacros;
36188
 
  friend class ::CMatchSyntax;
36189
 
  friend class ::ExtGnu;
36190
 
  friend class ::ExtAC;
36191
 
  friend class ::ExtACBuilderCoupling;
36192
 
  friend class ::ExtACSyntaxCoupling;
36193
 
  friend class ::ExtACTree;
36194
 
  friend class ::ExtACKeywords;
36195
 
  friend class ::WinAsm;
36196
 
  friend class ::WinDeclSpecs;
36197
 
  friend class ::WinMemberExplSpec;
36198
 
  friend class ::WinTypeKeywords;
36199
 
  friend class ::PragmaOnceUnitState;
36200
 
  friend class ::PragmaOnce;
36201
 
  friend class ::CCExprResolve;
36202
 
  friend class ::CExprResolve;
36203
 
 
36204
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
36205
 
 
36206
 
 
36207
 
  // initialization context
36208
 
  ErrorSink *_err;
36209
 
  CT_DeclSpecSeq *_dss;
36210
 
  
36211
 
  // analysis results:
36212
 
  // -----------------
36213
 
  // counters
36214
 
  int _names;
36215
 
  int _class_specs;
36216
 
  int _union_specs;
36217
 
  int _enum_specs;
36218
 
  // nodes/objects
36219
 
  int _prim_map[CT_PrimDeclSpec::NumTypes];
36220
 
  Token *_prim_token[CT_PrimDeclSpec::NumTypes];
36221
 
  CT_SimpleName *_name;
36222
 
 
36223
 
  // final results after all checks:
36224
 
  // -------------------------------
36225
 
  CTypeInfo *_type;
36226
 
  bool _def_class, _def_union, _def_enum;
36227
 
 
36228
 
  // analyses the syntax tree nodes of the decl-spec sequence. Return false
36229
 
  // if an error was detected. 
36230
 
  
36231
 
#line 36232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
36232
 
public: inline bool __exec_old_analyze_seq();
36233
 
private:
36234
 
 
36235
 
#line 55 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
36236
 
bool analyze_seq ();
36237
 
  
36238
 
  // analyzes the current declaration specifier in the sequence and set some
36239
 
  // attributes according to the result. Returns false if the specifier type
36240
 
  // is unknown.
36241
 
  
36242
 
#line 36243 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
36243
 
public: inline bool __exec_old_analyze(::Puma::CTree * spec);
36244
 
private:
36245
 
 
36246
 
#line 60 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
36247
 
bool analyze (CTree *spec);
36248
 
 
36249
 
  // check functions (used after analyse_seq()
36250
 
  bool check_prim_decl_specs (bool &have_type);
36251
 
  
36252
 
#line 36253 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
36253
 
public: inline bool __exec_old_check_complex_decl_specs(bool & have_type);
36254
 
private:
36255
 
 
36256
 
#line 64 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
36257
 
bool check_complex_decl_specs (bool &have_type);  
36258
 
  bool check_storage_class ();
36259
 
  
36260
 
#line 36261 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
36261
 
public: inline bool __exec_old_check_signed_unsigned();
36262
 
private:
36263
 
 
36264
 
#line 66 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
36265
 
bool check_signed_unsigned ();
36266
 
  bool check_long_short (); 
36267
 
  
36268
 
#line 36269 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
36269
 
public: inline bool __exec_old_check_finally();
36270
 
private:
36271
 
 
36272
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
36273
 
bool check_finally ();
36274
 
  
36275
 
  // type creation code
36276
 
  
36277
 
#line 36278 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
36278
 
public: inline ::Puma::CTypeInfo * __exec_old_create_type();
36279
 
private:
36280
 
 
36281
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
36282
 
CTypeInfo *create_type ();
36283
 
  CTypeInfo *create_qualifiers (CTypeInfo *type);
36284
 
  
36285
 
public:
36286
 
  CSemDeclSpecs (ErrorSink *, CT_DeclSpecSeq *);
36287
 
  ~CSemDeclSpecs ();
36288
 
 
36289
 
  CTypeInfo *make_type () const;
36290
 
  CT_DeclSpecSeq *DeclSpecSeq () const;
36291
 
 
36292
 
  bool declared (CT_PrimDeclSpec::Type) const;
36293
 
  bool defClass () const;
36294
 
  bool defUnion () const;
36295
 
  bool defEnum () const;
36296
 
   private:
36297
 
 
36298
 
#line 151 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
36299
 
 public :
36300
 
int _typeofs ;
36301
 
CT_GnuTypeof * _typeof_node ;
36302
 
#line 85 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
36303
 
};
36304
 
 
36305
 
inline CSemDeclSpecs::~CSemDeclSpecs () 
36306
 
 { if (_type) CTypeInfo::Destroy (_type); }
36307
 
  
36308
 
inline CTypeInfo *CSemDeclSpecs::make_type () const 
36309
 
 { return CTypeInfo::Duplicate (_type); }
36310
 
inline CT_DeclSpecSeq *CSemDeclSpecs::DeclSpecSeq () const 
36311
 
 { return _dss; }
36312
 
 
36313
 
inline bool CSemDeclSpecs::declared (CT_PrimDeclSpec::Type as) const 
36314
 
 { return _prim_map[as] > 0; }
36315
 
 
36316
 
inline bool CSemDeclSpecs::defClass () const
36317
 
 { return _def_class; }
36318
 
inline bool CSemDeclSpecs::defUnion () const
36319
 
 { return _def_union; }
36320
 
inline bool CSemDeclSpecs::defEnum () const
36321
 
 { return _def_enum; }
36322
 
 
36323
 
 
36324
 
} // namespace Puma
36325
 
 
36326
 
#endif /* __c_sem_decl_specs_h__ */
36327
 
 
36328
 
#line 36329 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
36329
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CSemDeclSpecs_h__
36330
 
 
36331
 
#line 108 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
36332
 
 
36333
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CEnumInfo.h"
36334
 
// This file is part of PUMA.
36335
 
// Copyright (C) 1999-2003  The PUMA developer team.
36336
 
//                                                                
36337
 
// This program is free software;  you can redistribute it and/or 
36338
 
// modify it under the terms of the GNU General Public License as 
36339
 
// published by the Free Software Foundation; either version 2 of 
36340
 
// the License, or (at your option) any later version.            
36341
 
//                                                                
36342
 
// This program is distributed in the hope that it will be useful,
36343
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
36344
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
36345
 
// GNU General Public License for more details.                   
36346
 
//                                                                
36347
 
// You should have received a copy of the GNU General Public      
36348
 
// License along with this program; if not, write to the Free     
36349
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
36350
 
// MA  02111-1307  USA                                            
36351
 
 
36352
 
#ifndef __CEnumInfo_h__
36353
 
#define __CEnumInfo_h__
36354
 
 
36355
 
// enumeration info 
36356
 
// knows its enumerators (enumeration constants)
36357
 
 
36358
 
 
36359
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CEnumeratorInfo.h"
36360
 
// This file is part of PUMA.
36361
 
// Copyright (C) 1999-2003  The PUMA developer team.
36362
 
//                                                                
36363
 
// This program is free software;  you can redistribute it and/or 
36364
 
// modify it under the terms of the GNU General Public License as 
36365
 
// published by the Free Software Foundation; either version 2 of 
36366
 
// the License, or (at your option) any later version.            
36367
 
//                                                                
36368
 
// This program is distributed in the hope that it will be useful,
36369
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
36370
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
36371
 
// GNU General Public License for more details.                   
36372
 
//                                                                
36373
 
// You should have received a copy of the GNU General Public      
36374
 
// License along with this program; if not, write to the Free     
36375
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
36376
 
// MA  02111-1307  USA                                            
36377
 
 
36378
 
#ifndef __CEnumeratorInfo_h__
36379
 
#define __CEnumeratorInfo_h__
36380
 
 
36381
 
// enumeration constant (enumerator) info
36382
 
// knows its enumeration and its constant value
36383
 
 
36384
 
 
36385
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
36386
 
// This file is part of PUMA.
36387
 
// Copyright (C) 1999-2003  The PUMA developer team.
36388
 
//                                                                
36389
 
// This program is free software;  you can redistribute it and/or 
36390
 
// modify it under the terms of the GNU General Public License as 
36391
 
// published by the Free Software Foundation; either version 2 of 
36392
 
// the License, or (at your option) any later version.            
36393
 
//                                                                
36394
 
// This program is distributed in the hope that it will be useful,
36395
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
36396
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
36397
 
// GNU General Public License for more details.                   
36398
 
//                                                                
36399
 
// You should have received a copy of the GNU General Public      
36400
 
// License along with this program; if not, write to the Free     
36401
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
36402
 
// MA  02111-1307  USA                                            
36403
 
 
36404
 
#ifndef __CAttributeInfo_h__
36405
 
#define __CAttributeInfo_h__
36406
 
 
36407
 
// data object info (variables, class data members)
36408
 
 
36409
 
 
36410
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
36411
 
// This file is part of PUMA.
36412
 
// Copyright (C) 1999-2003  The PUMA developer team.
36413
 
//                                                                
36414
 
// This program is free software;  you can redistribute it and/or 
36415
 
// modify it under the terms of the GNU General Public License as 
36416
 
// published by the Free Software Foundation; either version 2 of 
36417
 
// the License, or (at your option) any later version.            
36418
 
//                                                                
36419
 
// This program is distributed in the hope that it will be useful,
36420
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
36421
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
36422
 
// GNU General Public License for more details.                   
36423
 
//                                                                
36424
 
// You should have received a copy of the GNU General Public      
36425
 
// License along with this program; if not, write to the Free     
36426
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
36427
 
// MA  02111-1307  USA                                            
36428
 
 
36429
 
#ifndef __CScopeRequest_h__
36430
 
#define __CScopeRequest_h__
36431
 
 
36432
 
// provide a possibility to store the scope in which 
36433
 
// an entity was declared (if it's not a scope itself)
36434
 
 
36435
 
 
36436
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
36437
 
namespace Puma {
36438
 
 
36439
 
 
36440
 
class CScopeInfo;
36441
 
 
36442
 
 
36443
 
#line 36444 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
36444
 
} // closed Puma
36445
 
class WinIfExists;
36446
 
class WinImportHandler;
36447
 
class WinMacros;
36448
 
class CMatchSyntax;
36449
 
class ExtGnu;
36450
 
class ExtAC;
36451
 
class ExtACBuilderCoupling;
36452
 
class ExtACSyntaxCoupling;
36453
 
class ExtACTree;
36454
 
class ExtACKeywords;
36455
 
class WinAsm;
36456
 
class WinDeclSpecs;
36457
 
class WinMemberExplSpec;
36458
 
class WinTypeKeywords;
36459
 
class PragmaOnceUnitState;
36460
 
class PragmaOnce;
36461
 
class CCExprResolve;
36462
 
class CExprResolve;
36463
 
namespace Puma {
36464
 
 
36465
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
36466
 
class CScopeRequest : public CObjectInfo {
36467
 
#line 36468 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
36468
 
  friend class ::WinIfExists;
36469
 
  friend class ::WinImportHandler;
36470
 
  friend class ::WinMacros;
36471
 
  friend class ::CMatchSyntax;
36472
 
  friend class ::ExtGnu;
36473
 
  friend class ::ExtAC;
36474
 
  friend class ::ExtACBuilderCoupling;
36475
 
  friend class ::ExtACSyntaxCoupling;
36476
 
  friend class ::ExtACTree;
36477
 
  friend class ::ExtACKeywords;
36478
 
  friend class ::WinAsm;
36479
 
  friend class ::WinDeclSpecs;
36480
 
  friend class ::WinMemberExplSpec;
36481
 
  friend class ::WinTypeKeywords;
36482
 
  friend class ::PragmaOnceUnitState;
36483
 
  friend class ::PragmaOnce;
36484
 
  friend class ::CCExprResolve;
36485
 
  friend class ::CExprResolve;
36486
 
 
36487
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
36488
 
 
36489
 
  CScopeInfo *_Scope;
36490
 
 
36491
 
protected:
36492
 
  CScopeRequest (ObjectId);
36493
 
 
36494
 
public: 
36495
 
  ~CScopeRequest ();
36496
 
  
36497
 
  CScopeInfo *Scope () const;        // get the enclosing scope
36498
 
  void Scope (CScopeInfo *);
36499
 
};
36500
 
 
36501
 
inline CScopeRequest::CScopeRequest (CObjectInfo::ObjectId id) :
36502
 
  CObjectInfo (id),
36503
 
  _Scope ((CScopeInfo*)0)
36504
 
 {}
36505
 
inline CScopeRequest::~CScopeRequest ()
36506
 
 {}
36507
 
 
36508
 
inline CScopeInfo *CScopeRequest::Scope () const
36509
 
 { return _Scope; }
36510
 
inline void CScopeRequest::Scope (CScopeInfo *s)
36511
 
 { _Scope = s; }
36512
 
 
36513
 
 
36514
 
} // namespace Puma
36515
 
 
36516
 
#endif /* __CScopeRequest_h__ */
36517
 
 
36518
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
36519
 
namespace Puma {
36520
 
 
36521
 
 
36522
 
class CT_InitDeclarator;
36523
 
class CT_ExprList;
36524
 
class CTemplateInfo;
36525
 
class CRecord;
36526
 
class CNamespaceInfo;
36527
 
 
36528
 
/** \file 
36529
 
 *  Representation of local/global variables and class data members. 
36530
 
 *  \see Puma::CAttributeInfo */
36531
 
 
36532
 
/** \class CAttributeInfo CAttributeInfo.h Puma/infos/CAttributeInfo.h
36533
 
 *  A CAttributeInfo object represents a local or global variable 
36534
 
 *  or a class data member. */
36535
 
 
36536
 
#line 36537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
36537
 
} // closed Puma
36538
 
class WinIfExists;
36539
 
class WinImportHandler;
36540
 
class WinMacros;
36541
 
class CMatchSyntax;
36542
 
class ExtGnu;
36543
 
class ExtAC;
36544
 
class ExtACBuilderCoupling;
36545
 
class ExtACSyntaxCoupling;
36546
 
class ExtACTree;
36547
 
class ExtACKeywords;
36548
 
class WinAsm;
36549
 
class WinDeclSpecs;
36550
 
class WinMemberExplSpec;
36551
 
class WinTypeKeywords;
36552
 
class PragmaOnceUnitState;
36553
 
class PragmaOnce;
36554
 
class CCExprResolve;
36555
 
class CExprResolve;
36556
 
namespace Puma {
36557
 
 
36558
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
36559
 
class CAttributeInfo : public CScopeRequest {
36560
 
#line 36561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
36561
 
  friend class ::WinIfExists;
36562
 
  friend class ::WinImportHandler;
36563
 
  friend class ::WinMacros;
36564
 
  friend class ::CMatchSyntax;
36565
 
  friend class ::ExtGnu;
36566
 
  friend class ::ExtAC;
36567
 
  friend class ::ExtACBuilderCoupling;
36568
 
  friend class ::ExtACSyntaxCoupling;
36569
 
  friend class ::ExtACTree;
36570
 
  friend class ::ExtACKeywords;
36571
 
  friend class ::WinAsm;
36572
 
  friend class ::WinDeclSpecs;
36573
 
  friend class ::WinMemberExplSpec;
36574
 
  friend class ::WinTypeKeywords;
36575
 
  friend class ::PragmaOnceUnitState;
36576
 
  friend class ::PragmaOnce;
36577
 
  friend class ::CCExprResolve;
36578
 
  friend class ::CExprResolve;
36579
 
 
36580
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
36581
 
 
36582
 
  CTemplateInfo *_TemplateInfo;
36583
 
  
36584
 
protected:
36585
 
  /** This constructor is to be used by classes inherited from
36586
 
   *  CAttributeInfo. It makes it possible to set another object id
36587
 
   *  than \c ATTRIBUTE_INFO.
36588
 
   *  \param id The object id to be used instead of \c ATTRIBUTE_INFO. */
36589
 
  CAttributeInfo (ObjectId id);
36590
 
 
36591
 
public: 
36592
 
  /** Construct a new attribute info. */
36593
 
  CAttributeInfo ();
36594
 
  /** Destruct the attribute info. If the object id is 
36595
 
   *  \c ATTRIBUTE_INFO, Puma::CObjectInfo::CleanUp() is called. */
36596
 
  ~CAttributeInfo ();
36597
 
  
36598
 
  /** Get the base info object of the info object. <b>The 
36599
 
   *  corresponding information is not yet set!</b>
36600
 
   *  \return This method always returns \c NULL.
36601
 
   *  \warning Do not use this method. */
36602
 
  CAttributeInfo *BaseObject () const;
36603
 
  /** Get the info object of the variable definition. 
36604
 
   *  \return \e this or the info of the definition if the variable 
36605
 
   *          is a static class data member initialized outside of 
36606
 
   *          the class declaration. */
36607
 
  CAttributeInfo *DefObject () const;         
36608
 
  /** Get the syntax tree node of the variable declaration. */
36609
 
  CT_InitDeclarator *Tree () const;  
36610
 
  /** Get the initializer of the variable.
36611
 
   *  \return The syntax tree node of the initializer or \c NULL
36612
 
   *          if there is no initializer. */  
36613
 
  CT_ExprList *Init () const;                  // initializer
36614
 
 
36615
 
  /** Get the corresponding template info of static data members 
36616
 
   *  of class templates. 
36617
 
   *  \return The info or \c NULL otherwise. */
36618
 
  CTemplateInfo *TemplateInfo () const;
36619
 
  /** Set the corresponding of a static data member or a class
36620
 
   *  template. 
36621
 
   *  \param info The info of the template. */
36622
 
  void TemplateInfo (CTemplateInfo *info);
36623
 
 
36624
 
  /** Get the record info if this is a data member of a record. 
36625
 
   *  \return The record info or \c NULL if not a member of a record. */
36626
 
  CRecord *Record () const;
36627
 
  /** Get the namespace info if the variable is declared in a namespace. 
36628
 
   *  \return The info or \c NULL if not declared in a namespace. */
36629
 
  CNamespaceInfo *Namespace () const;
36630
 
  /** Set the qualification scope of the variable. This can be a namespace
36631
 
   *  info for variables declared in a namespace or a record info for 
36632
 
   *  data members of a class/struct/union. 
36633
 
   *  \param scope The qualification scope of the variable. */
36634
 
  void QualifiedScope (CStructure *scope);
36635
 
};
36636
 
 
36637
 
inline CAttributeInfo::CAttributeInfo () :
36638
 
  CScopeRequest (CObjectInfo::ATTRIBUTE_INFO),
36639
 
  _TemplateInfo ((CTemplateInfo*)0)
36640
 
 {}
36641
 
inline CAttributeInfo::CAttributeInfo (CObjectInfo::ObjectId id) :
36642
 
  CScopeRequest (id),
36643
 
  _TemplateInfo ((CTemplateInfo*)0)
36644
 
 {}
36645
 
 
36646
 
inline CAttributeInfo *CAttributeInfo::BaseObject () const
36647
 
 { return (CAttributeInfo*)CObjectInfo::BaseObject (); }
36648
 
 
36649
 
inline CTemplateInfo *CAttributeInfo::TemplateInfo () const
36650
 
 { return _TemplateInfo; }
36651
 
inline void CAttributeInfo::TemplateInfo (CTemplateInfo *info) 
36652
 
 { _TemplateInfo = info; }
36653
 
 
36654
 
inline void CAttributeInfo::QualifiedScope (CStructure *s)
36655
 
 { _QualScope = s; }
36656
 
 
36657
 
 
36658
 
} // namespace Puma
36659
 
 
36660
 
#endif /* __CAttributeInfo_h__ */
36661
 
 
36662
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CEnumeratorInfo.h"
36663
 
namespace Puma {
36664
 
 
36665
 
 
36666
 
class CEnumInfo;
36667
 
class CT_Enumerator;
36668
 
class CT_ExprList;
36669
 
 
36670
 
/** \file 
36671
 
 *  Representation of an enumerator constant.
36672
 
 *  \see Puma::CEnumeratorInfo */
36673
 
 
36674
 
/** \class CEnumeratorInfo CEnumeratorInfo.h Puma/infos/CEnumeratorInfo.h
36675
 
 *  A CEnumeratorInfo object represents an enumerator constant. */
36676
 
 
36677
 
#line 36678 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
36678
 
} // closed Puma
36679
 
class WinIfExists;
36680
 
class WinImportHandler;
36681
 
class WinMacros;
36682
 
class CMatchSyntax;
36683
 
class ExtGnu;
36684
 
class ExtAC;
36685
 
class ExtACBuilderCoupling;
36686
 
class ExtACSyntaxCoupling;
36687
 
class ExtACTree;
36688
 
class ExtACKeywords;
36689
 
class WinAsm;
36690
 
class WinDeclSpecs;
36691
 
class WinMemberExplSpec;
36692
 
class WinTypeKeywords;
36693
 
class PragmaOnceUnitState;
36694
 
class PragmaOnce;
36695
 
class CCExprResolve;
36696
 
class CExprResolve;
36697
 
namespace Puma {
36698
 
 
36699
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CEnumeratorInfo.h"
36700
 
class CEnumeratorInfo : public CAttributeInfo {
36701
 
#line 36702 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
36702
 
  friend class ::WinIfExists;
36703
 
  friend class ::WinImportHandler;
36704
 
  friend class ::WinMacros;
36705
 
  friend class ::CMatchSyntax;
36706
 
  friend class ::ExtGnu;
36707
 
  friend class ::ExtAC;
36708
 
  friend class ::ExtACBuilderCoupling;
36709
 
  friend class ::ExtACSyntaxCoupling;
36710
 
  friend class ::ExtACTree;
36711
 
  friend class ::ExtACKeywords;
36712
 
  friend class ::WinAsm;
36713
 
  friend class ::WinDeclSpecs;
36714
 
  friend class ::WinMemberExplSpec;
36715
 
  friend class ::WinTypeKeywords;
36716
 
  friend class ::PragmaOnceUnitState;
36717
 
  friend class ::PragmaOnce;
36718
 
  friend class ::CCExprResolve;
36719
 
  friend class ::CExprResolve;
36720
 
 
36721
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CEnumeratorInfo.h"
36722
 
 
36723
 
  CEnumInfo *_Enum;
36724
 
  long int _Value;
36725
 
 
36726
 
public: 
36727
 
  /** Construct a new enumerator info. */
36728
 
  CEnumeratorInfo ();
36729
 
  /** Destruct the enumerator info. If the object id is 
36730
 
   *  \c ENUMERATOR_INFO, Puma::CObjectInfo::CleanUp() is called. */
36731
 
  ~CEnumeratorInfo ();
36732
 
  
36733
 
  /** Get the base info object of the info object. <b>The 
36734
 
   *  corresponding information is not yet set!</b>
36735
 
   *  \return This method always returns \c NULL.
36736
 
   *  \warning Do not use this method. */
36737
 
  CEnumeratorInfo *BaseObject () const;
36738
 
  /** Get the syntax tree node of the enumerator constant. */
36739
 
  CT_Enumerator *Tree () const;
36740
 
  /** Get the initialization expression syntax tree node of
36741
 
   *  the enumerator. 
36742
 
   *  \return The syntax tree node or \c NULL if no initializer. */
36743
 
  CT_ExprList *Init () const;
36744
 
  
36745
 
  /** Get the corresponding enumeration info. */
36746
 
  CEnumInfo *Enum () const;
36747
 
  /** Set the enumeration info.
36748
 
   *  \param ei The corresponding enumeration info. */
36749
 
  void Enum (CEnumInfo *ei);
36750
 
 
36751
 
  /** Get the constant value of the enumerator. */
36752
 
  long int Value () const;
36753
 
  /** Set the value of the enumerator constant. 
36754
 
   *  \param v The value of the enumerator. */
36755
 
  void Value (long int v);
36756
 
};
36757
 
 
36758
 
inline CEnumeratorInfo::CEnumeratorInfo () :
36759
 
  CAttributeInfo (CObjectInfo::ENUMERATOR_INFO),
36760
 
  _Enum ((CEnumInfo*)0),
36761
 
  _Value (0)
36762
 
 {}
36763
 
 
36764
 
inline void CEnumeratorInfo::Enum (CEnumInfo *e) 
36765
 
 { _Enum = e; }
36766
 
inline void CEnumeratorInfo::Value (long int v) 
36767
 
 { _Value = v; }
36768
 
 
36769
 
inline CEnumInfo *CEnumeratorInfo::Enum () const 
36770
 
 { return _Enum; }
36771
 
inline long int CEnumeratorInfo::Value () const 
36772
 
 { return _Value; }
36773
 
 
36774
 
inline CEnumeratorInfo *CEnumeratorInfo::BaseObject () const
36775
 
 { return (CEnumeratorInfo*)CObjectInfo::BaseObject (); }
36776
 
 
36777
 
 
36778
 
} // namespace Puma
36779
 
 
36780
 
#endif /* __CEnumeratorInfo_h__ */
36781
 
 
36782
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CEnumInfo.h"
36783
 
namespace Puma {
36784
 
 
36785
 
 
36786
 
/** \file 
36787
 
 *  Representation of a C/C++ 'enum'.
36788
 
 *  \see Puma::CEnumInfo */
36789
 
 
36790
 
/** \class CEnumInfo CEnumInfo.h Puma/infos/CEnumInfo.h
36791
 
 *  A CEnumInfo object represents a C++ 'enum'. */
36792
 
 
36793
 
#line 36794 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
36794
 
} // closed Puma
36795
 
class WinIfExists;
36796
 
class WinImportHandler;
36797
 
class WinMacros;
36798
 
class CMatchSyntax;
36799
 
class ExtGnu;
36800
 
class ExtAC;
36801
 
class ExtACBuilderCoupling;
36802
 
class ExtACSyntaxCoupling;
36803
 
class ExtACTree;
36804
 
class ExtACKeywords;
36805
 
class WinAsm;
36806
 
class WinDeclSpecs;
36807
 
class WinMemberExplSpec;
36808
 
class WinTypeKeywords;
36809
 
class PragmaOnceUnitState;
36810
 
class PragmaOnce;
36811
 
class CCExprResolve;
36812
 
class CExprResolve;
36813
 
namespace Puma {
36814
 
 
36815
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CEnumInfo.h"
36816
 
class CEnumInfo : public CScopeRequest {
36817
 
#line 36818 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
36818
 
  friend class ::WinIfExists;
36819
 
  friend class ::WinImportHandler;
36820
 
  friend class ::WinMacros;
36821
 
  friend class ::CMatchSyntax;
36822
 
  friend class ::ExtGnu;
36823
 
  friend class ::ExtAC;
36824
 
  friend class ::ExtACBuilderCoupling;
36825
 
  friend class ::ExtACSyntaxCoupling;
36826
 
  friend class ::ExtACTree;
36827
 
  friend class ::ExtACKeywords;
36828
 
  friend class ::WinAsm;
36829
 
  friend class ::WinDeclSpecs;
36830
 
  friend class ::WinMemberExplSpec;
36831
 
  friend class ::WinTypeKeywords;
36832
 
  friend class ::PragmaOnceUnitState;
36833
 
  friend class ::PragmaOnce;
36834
 
  friend class ::CCExprResolve;
36835
 
  friend class ::CExprResolve;
36836
 
 
36837
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CEnumInfo.h"
36838
 
 
36839
 
  Array<CEnumeratorInfo*> _Enumerators;
36840
 
 
36841
 
public: 
36842
 
  /** Construct a new enumeration info object. */
36843
 
  CEnumInfo ();
36844
 
  /** Destroy the enum info object. If the object id is 
36845
 
   *  \c ENUM_INFO, Puma::CObjectInfo::CleanUp() is called. */
36846
 
  ~CEnumInfo ();
36847
 
 
36848
 
  /** Get the number of enumerators in this enumeration. */
36849
 
  unsigned Enumerators () const;
36850
 
  /** Get the n-th enumerator info.
36851
 
   *  \param n The number of the enumerator.
36852
 
   *  \return The enumerator info or \c NULL if \e n is invalid. */
36853
 
  CEnumeratorInfo *Enumerator (unsigned n) const;
36854
 
  /** Get the info of the enumerator with the given name. 
36855
 
   *  \param name The name of the enumerator.
36856
 
   *  \return The enumerator info or \c NULL if no enumerator with that name. */
36857
 
  CEnumeratorInfo *Enumerator (const char *name) const;
36858
 
 
36859
 
  /** Get the base info object of the info object. <b>The 
36860
 
   *  corresponding information is not yet set!</b>
36861
 
   *  \return This method always returns \c NULL.
36862
 
   *  \warning Do not use this method. */
36863
 
  CEnumInfo *BaseObject () const;
36864
 
  /** Get the info object of the enumeration definition. 
36865
 
   *  \return The info or \e this if the enumeration is not defined. */
36866
 
  CEnumInfo *DefObject () const;
36867
 
  /** Get the type information object for the enumeration. */
36868
 
  CTypeEnum *TypeInfo () const;
36869
 
 
36870
 
  /** Add a new enumerator to the enumeration.
36871
 
   *  \param ei The enumerator info to add. */
36872
 
  void addEnumerator (CEnumeratorInfo *ei);
36873
 
  /** Remove the given enumerator from the enumeration.
36874
 
   *  \param ei The enumerator info to remove. */
36875
 
  void removeEnumerator (const CEnumeratorInfo *ei);
36876
 
 
36877
 
  /** Create a new enumerator info. The enumerator info is
36878
 
   *  added to the enumeration. */
36879
 
  CEnumeratorInfo *newEnumerator ();
36880
 
  /** Destroy the given enumerator info. The enumerator info is
36881
 
   *  removed from the enumeration.
36882
 
   *  \param ei The enumerator info to destroy. */
36883
 
  void deleteEnumerator (const CEnumeratorInfo *ei);
36884
 
  
36885
 
  /** Return \e true if the enumeration is defined. */
36886
 
  bool isDefined () const;
36887
 
  /** Return \e true if the enumeration is complete (defined)
36888
 
   *  at the given position.
36889
 
   *  \param pos The current source code position. */
36890
 
  bool isComplete (unsigned long pos = 0) const;
36891
 
};
36892
 
 
36893
 
inline CEnumInfo::CEnumInfo () :
36894
 
  CScopeRequest (CObjectInfo::ENUM_INFO)
36895
 
 {}
36896
 
 
36897
 
inline unsigned CEnumInfo::Enumerators () const
36898
 
 { return _Enumerators.length (); }
36899
 
inline CEnumeratorInfo *CEnumInfo::Enumerator (unsigned n) const
36900
 
 { return _Enumerators.lookup (n); }
36901
 
 
36902
 
inline CEnumInfo *CEnumInfo::BaseObject () const
36903
 
 { return (CEnumInfo*)CObjectInfo::BaseObject (); }
36904
 
inline CTypeEnum *CEnumInfo::TypeInfo () const
36905
 
 { return (CTypeEnum*)CObjectInfo::TypeInfo (); }
36906
 
//inline CT_EnumSpec *CEnumInfo::Tree () const
36907
 
// { return (CT_EnumSpec*)CObjectInfo::Tree (); }
36908
 
 
36909
 
 
36910
 
} // namespace Puma
36911
 
 
36912
 
#endif /* __CEnumInfo_h__ */
36913
 
 
36914
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecord.h"
36915
 
// This file is part of PUMA.
36916
 
// Copyright (C) 1999-2003  The PUMA developer team.
36917
 
//                                                                
36918
 
// This program is free software;  you can redistribute it and/or 
36919
 
// modify it under the terms of the GNU General Public License as 
36920
 
// published by the Free Software Foundation; either version 2 of 
36921
 
// the License, or (at your option) any later version.            
36922
 
//                                                                
36923
 
// This program is distributed in the hope that it will be useful,
36924
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
36925
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
36926
 
// GNU General Public License for more details.                   
36927
 
//                                                                
36928
 
// You should have received a copy of the GNU General Public      
36929
 
// License along with this program; if not, write to the Free     
36930
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
36931
 
// MA  02111-1307  USA                                            
36932
 
 
36933
 
#ifndef __CRecord_h__
36934
 
#define __CRecord_h__
36935
 
 
36936
 
// base class of class and union infos
36937
 
 
36938
 
 
36939
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecord.h"
36940
 
namespace Puma {
36941
 
 
36942
 
 
36943
 
class CTemplateInfo;
36944
 
 
36945
 
 
36946
 
#line 36947 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
36947
 
} // closed Puma
36948
 
class WinIfExists;
36949
 
class WinImportHandler;
36950
 
class WinMacros;
36951
 
class CMatchSyntax;
36952
 
class ExtGnu;
36953
 
class ExtAC;
36954
 
class ExtACBuilderCoupling;
36955
 
class ExtACSyntaxCoupling;
36956
 
class ExtACTree;
36957
 
class ExtACKeywords;
36958
 
class WinAsm;
36959
 
class WinDeclSpecs;
36960
 
class WinMemberExplSpec;
36961
 
class WinTypeKeywords;
36962
 
class PragmaOnceUnitState;
36963
 
class PragmaOnce;
36964
 
class CCExprResolve;
36965
 
class CExprResolve;
36966
 
namespace Puma {
36967
 
 
36968
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecord.h"
36969
 
class CRecord : public CStructure {
36970
 
#line 36971 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
36971
 
  friend class ::WinIfExists;
36972
 
  friend class ::WinImportHandler;
36973
 
  friend class ::WinMacros;
36974
 
  friend class ::CMatchSyntax;
36975
 
  friend class ::ExtGnu;
36976
 
  friend class ::ExtAC;
36977
 
  friend class ::ExtACBuilderCoupling;
36978
 
  friend class ::ExtACSyntaxCoupling;
36979
 
  friend class ::ExtACTree;
36980
 
  friend class ::ExtACKeywords;
36981
 
  friend class ::WinAsm;
36982
 
  friend class ::WinDeclSpecs;
36983
 
  friend class ::WinMemberExplSpec;
36984
 
  friend class ::WinTypeKeywords;
36985
 
  friend class ::PragmaOnceUnitState;
36986
 
  friend class ::PragmaOnce;
36987
 
  friend class ::CCExprResolve;
36988
 
  friend class ::CExprResolve;
36989
 
 
36990
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecord.h"
36991
 
 
36992
 
//  // classes/unions using this as/in an attribute.
36993
 
//  Array<CObjectInfo*> _Referer;     
36994
 
//  // classes/unions/enums used by this class/union as/in an attribute.
36995
 
//  Array<CObjectInfo*> _Used; 
36996
 
//  // methods (defined) of other classes/unions using this 
36997
 
//  // class/union as argument/result. 
36998
 
//  Array<CFunctionInfo*> _Transferer;
36999
 
//  // classes/unions/enums used as/in arguments/results of (defined) 
37000
 
//  // methods of this class/union.
37001
 
//  Array<CObjectInfo*> _Transfered;
37002
 
 
37003
 
  CTemplateInfo *_TemplateInfo;
37004
 
  bool _isTemplate;
37005
 
  bool _hiddenFwdDecl;
37006
 
 
37007
 
protected:
37008
 
  CRecord (ObjectId);
37009
 
 
37010
 
public:
37011
 
  ~CRecord ();
37012
 
 
37013
 
  CTemplateInfo *TemplateInfo () const;
37014
 
  void TemplateInfo (CTemplateInfo *);
37015
 
 
37016
 
  void QualifiedScope (CStructure *);
37017
 
 
37018
 
  // Get ... 
37019
 
  bool isComplete (unsigned long = 0) const;        // is complete type?
37020
 
  bool isDefined () const;                        // has a definition?
37021
 
  bool isTemplate () const;                        // is class template?
37022
 
  bool isHiddenForwardDecl () const;            // hides names?
37023
 
//  unsigned Referers () const;
37024
 
//  unsigned Usages () const;
37025
 
//  unsigned Transferers () const;
37026
 
//  unsigned Transfers () const;
37027
 
//  CObjectInfo *Referer (unsigned) const;
37028
 
//  CObjectInfo *Referer (const char *) const;
37029
 
//  CObjectInfo *Usage (unsigned) const;
37030
 
//  CObjectInfo *Usage (const char *) const;
37031
 
//  CFunctionInfo *Transferer (unsigned) const;
37032
 
//  CFunctionInfo *Transferer (const char *) const;
37033
 
//  CObjectInfo *Transfer (unsigned) const;
37034
 
//  CObjectInfo *Transfer (const char *) const;
37035
 
//  bool isReferer (const CObjectInfo *) const;
37036
 
//  bool isUsed (const CObjectInfo *) const;
37037
 
//  bool isTransferer (const CFunctionInfo *) const;
37038
 
//  bool isTransfered (const CObjectInfo *) const;
37039
 
 
37040
 
  // Set ... 
37041
 
  void isTemplate (bool);
37042
 
  void isHiddenForwardDecl (bool);
37043
 
//  void addReferer (CObjectInfo *);
37044
 
//  void addUsage (CObjectInfo *);
37045
 
//  void addTransferer (CFunctionInfo *);
37046
 
//  void addTransfer (CObjectInfo *);
37047
 
//  void removeReferer (const CObjectInfo *);      // WILL NOT BE DESTROYED!
37048
 
//  void removeUsage (const CObjectInfo *);        // WILL NOT BE DESTROYED!
37049
 
//  void removeTransferer (const CFunctionInfo *); // WILL NOT BE DESTROYED!
37050
 
//  void removeTransfer (const CObjectInfo *);     // WILL NOT BE DESTROYED!
37051
 
 
37052
 
  // additional information
37053
 
//  bool isForward () const;
37054
 
};
37055
 
 
37056
 
inline CRecord::CRecord (CObjectInfo::ObjectId id) :
37057
 
  CStructure (id),
37058
 
  _TemplateInfo ((CTemplateInfo*)0),
37059
 
  _isTemplate (false),
37060
 
  _hiddenFwdDecl (false)
37061
 
 {}
37062
 
 
37063
 
inline bool CRecord::isTemplate () const 
37064
 
 { return _isTemplate; }
37065
 
inline void CRecord::isTemplate (bool v)
37066
 
 { _isTemplate = v; }
37067
 
 
37068
 
inline bool CRecord::isHiddenForwardDecl () const 
37069
 
 { return _hiddenFwdDecl; }
37070
 
inline void CRecord::isHiddenForwardDecl (bool v)
37071
 
 { _hiddenFwdDecl = v; }
37072
 
  
37073
 
inline CTemplateInfo *CRecord::TemplateInfo () const
37074
 
 { return _TemplateInfo; }
37075
 
inline void CRecord::TemplateInfo (CTemplateInfo *info) 
37076
 
 { _TemplateInfo = info; }
37077
 
 
37078
 
inline void CRecord::QualifiedScope (CStructure *s)
37079
 
 { _QualScope = s; }
37080
 
 
37081
 
//inline unsigned CRecord::Referers () const
37082
 
// { return _Referer.length (); }
37083
 
//inline unsigned CRecord::Usages () const
37084
 
// { return _Used.length (); }
37085
 
//inline unsigned CRecord::Transferers () const
37086
 
// { return _Transferer.length (); }
37087
 
//inline unsigned CRecord::Transfers () const
37088
 
// { return _Transfered.length (); }
37089
 
//inline CObjectInfo *CRecord::Referer (unsigned n) const
37090
 
// { return _Referer.lookup (n); }
37091
 
//inline CObjectInfo *CRecord::Usage (unsigned n) const
37092
 
// { return _Used.lookup (n); }
37093
 
//inline CFunctionInfo *CRecord::Transferer (unsigned n) const
37094
 
// { return _Transferer.lookup (n); }
37095
 
//inline CObjectInfo *CRecord::Transfer (unsigned n) const
37096
 
// { return _Transfered.lookup (n); }
37097
 
 
37098
 
 
37099
 
} // namespace Puma
37100
 
 
37101
 
#endif /* __CRecord_h__ */
37102
 
 
37103
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37104
 
 
37105
 
#line 37106 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37106
 
 
37107
 
#ifndef __ac_fwd_ExtACTree__
37108
 
#define __ac_fwd_ExtACTree__
37109
 
class ExtACTree;
37110
 
namespace AC {
37111
 
  template <class JoinPoint>
37112
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
37113
 
  template <class JoinPoint>
37114
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
37115
 
}
37116
 
#endif
37117
 
 
37118
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
37119
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
37120
 
#endif
37121
 
 
37122
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37123
 
 
37124
 
#line 37125 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37125
 
 
37126
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37127
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
37128
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
37129
 
 
37130
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37131
 
// This file is part of PUMA.
37132
 
// Copyright (C) 1999-2003  The PUMA developer team.
37133
 
//                                                                
37134
 
// This program is free software;  you can redistribute it and/or 
37135
 
// modify it under the terms of the GNU General Public License as 
37136
 
// published by the Free Software Foundation; either version 2 of 
37137
 
// the License, or (at your option) any later version.            
37138
 
//                                                                
37139
 
// This program is distributed in the hope that it will be useful,
37140
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
37141
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
37142
 
// GNU General Public License for more details.                   
37143
 
//                                                                
37144
 
// You should have received a copy of the GNU General Public      
37145
 
// License along with this program; if not, write to the Free     
37146
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
37147
 
// MA  02111-1307  USA                                            
37148
 
 
37149
 
#ifndef __CTree_h__
37150
 
#define __CTree_h__
37151
 
 
37152
 
namespace Puma {
37153
 
 
37154
 
 
37155
 
// Syntax tree node hierarchy:
37156
 
class CTree;
37157
 
class   CT_Statement;          
37158
 
class     CT_LabelStmt;
37159
 
class     CT_IfStmt;
37160
 
class     CT_IfElseStmt;
37161
 
class     CT_SwitchStmt;
37162
 
class     CT_BreakStmt;
37163
 
class     CT_ExprStmt;
37164
 
class     CT_WhileStmt;
37165
 
class     CT_DoStmt;
37166
 
class     CT_ForStmt;
37167
 
class     CT_ContinueStmt;
37168
 
class     CT_ReturnStmt;
37169
 
class     CT_GotoStmt;
37170
 
class     CT_DeclStmt;
37171
 
class     CT_CaseStmt;
37172
 
class     CT_DefaultStmt;
37173
 
class     CT_TryStmt;
37174
 
class   CT_Expression;
37175
 
class     CT_ThrowExpr;
37176
 
class     CT_NewExpr;
37177
 
class     CT_DeleteExpr;
37178
 
class     CT_ConstructExpr;
37179
 
class     CT_Integer;
37180
 
class     CT_Character;
37181
 
class       CT_WideCharacter;
37182
 
class     CT_Float;
37183
 
class     CT_Bool;
37184
 
class     CT_BracedExpr;
37185
 
class     CT_BinaryExpr;
37186
 
class       CT_MembPtrExpr;
37187
 
class         CT_MembRefExpr;
37188
 
class     CT_UnaryExpr;
37189
 
class       CT_PostfixExpr;
37190
 
class       CT_AddrExpr;
37191
 
class       CT_DerefExpr;
37192
 
class     CT_IfThenExpr;
37193
 
class     CT_CmpdLiteral;
37194
 
class     CT_IndexExpr;
37195
 
class     CT_CallExpr;
37196
 
class     CT_CastExpr;
37197
 
class     CT_StaticCast;
37198
 
class       CT_ConstCast;
37199
 
class       CT_ReintCast;
37200
 
class       CT_DynamicCast;
37201
 
class     CT_TypeidExpr;
37202
 
class     CT_SizeofExpr;
37203
 
class     CT_MembDesignator;
37204
 
class     CT_IndexDesignator;
37205
 
class     CT_ImplicitCast;
37206
 
class   CT_DeclSpec;
37207
 
class     CT_PrimDeclSpec;
37208
 
class     CT_NamedType;
37209
 
class     CT_ClassSpec;
37210
 
class       CT_UnionSpec;
37211
 
class       CT_EnumSpec;
37212
 
class     CT_ExceptionSpec;
37213
 
class   CT_Declarator;
37214
 
class     CT_InitDeclarator;
37215
 
class     CT_BracedDeclarator;
37216
 
class     CT_ArrayDeclarator;
37217
 
class     CT_FctDeclarator;
37218
 
class     CT_RefDeclarator;
37219
 
class     CT_PtrDeclarator;
37220
 
class     CT_MembPtrDeclarator;
37221
 
class     CT_BitFieldDeclarator;
37222
 
class   CT_Decl;
37223
 
class     CT_ObjDecl;
37224
 
class     CT_ArgDecl;
37225
 
class     CT_AccessDecl;
37226
 
class       CT_UsingDecl;
37227
 
class     CT_FctDef;
37228
 
class     CT_AsmDef;
37229
 
class     CT_EnumDef;
37230
 
class     CT_ClassDef;
37231
 
class       CT_UnionDef;
37232
 
class     CT_Enumerator;
37233
 
class     CT_LinkageSpec;
37234
 
class     CT_Handler;
37235
 
class     CT_TemplateDecl;
37236
 
class     CT_TemplateParamDecl;
37237
 
class       CT_TypeParamDecl;
37238
 
class       CT_NonTypeParamDecl;
37239
 
class     CT_NamespaceDef;
37240
 
class     CT_NamespaceAliasDef;
37241
 
class     CT_UsingDirective;
37242
 
class   CT_List;
37243
 
class     CT_CmpdStmt;
37244
 
class     CT_DeclSpecSeq;
37245
 
class     CT_HandlerSeq;
37246
 
class     CT_DesignatorSeq;
37247
 
class     CT_DeclList;
37248
 
class       CT_Program;
37249
 
class       CT_ArgDeclList;
37250
 
class         CT_ArgNameList;
37251
 
class       CT_ArgDeclSeq;
37252
 
class       CT_MembList;
37253
 
class     CT_ExprList;
37254
 
class     CT_DeclaratorList;
37255
 
class     CT_BaseSpecList;
37256
 
class     CT_MembInitList;
37257
 
class     CT_SimpleName;
37258
 
class       CT_SpecialName;
37259
 
class         CT_PrivateName;
37260
 
class         CT_OperatorName;
37261
 
class         CT_DestructorName;
37262
 
class         CT_ConversionName;
37263
 
class         CT_TemplateName;
37264
 
class       CT_QualName;
37265
 
class         CT_RootQualName;
37266
 
class     CT_String;
37267
 
class       CT_WideString;
37268
 
class     CT_TemplateParamList;
37269
 
class     CT_TemplateArgList;
37270
 
class   CT_Token;
37271
 
class   CT_Error;
37272
 
class   CT_Condition;
37273
 
class   CT_BaseSpec;
37274
 
class   CT_AccessSpec;
37275
 
class   CT_ArrayDelimiter;
37276
 
class   CT_Any;
37277
 
class   CT_AnyList;
37278
 
class   CT_AnyExtension;
37279
 
class   CT_AnyCondition;
37280
 
 
37281
 
 
37282
 
} // namespace Puma
37283
 
 
37284
 
#include "Puma/ErrorSeverity.h"
37285
 
#include "Puma/CSemObject.h"
37286
 
#include "Puma/CSemScope.h"
37287
 
#include "Puma/CSemValue.h"
37288
 
#include "Puma/CExprValue.h"
37289
 
#include "Puma/CStrLiteral.h"
37290
 
#include "Puma/CTypeInfo.h"
37291
 
#include "Puma/Printable.h"
37292
 
#include "Puma/CTokens.h"
37293
 
#include "Puma/Token.h"
37294
 
 
37295
 
#include <iostream>
37296
 
#include <string.h>
37297
 
using namespace std;
37298
 
 
37299
 
namespace Puma {
37300
 
 
37301
 
 
37302
 
class ErrorStream;
37303
 
class CObjectInfo;
37304
 
class CStructure;
37305
 
 
37306
 
/*****************************************************************************/
37307
 
/*                                                                           */
37308
 
/*                    S y n t a x  t r e e  n o d e s                        */
37309
 
/*                                                                           */
37310
 
/*****************************************************************************/
37311
 
 
37312
 
 
37313
 
#line 37314 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37314
 
} // closed Puma
37315
 
class WinIfExists;
37316
 
class WinImportHandler;
37317
 
class WinMacros;
37318
 
class CMatchSyntax;
37319
 
class ExtGnu;
37320
 
class ExtAC;
37321
 
class ExtACBuilderCoupling;
37322
 
class ExtACSyntaxCoupling;
37323
 
class ExtACTree;
37324
 
class ExtACKeywords;
37325
 
class WinAsm;
37326
 
class WinDeclSpecs;
37327
 
class WinMemberExplSpec;
37328
 
class WinTypeKeywords;
37329
 
class PragmaOnceUnitState;
37330
 
class PragmaOnce;
37331
 
class CCExprResolve;
37332
 
class CExprResolve;
37333
 
namespace Puma {
37334
 
 
37335
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37336
 
class CTree {
37337
 
#line 37338 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37338
 
  friend class ::WinIfExists;
37339
 
  friend class ::WinImportHandler;
37340
 
  friend class ::WinMacros;
37341
 
  friend class ::CMatchSyntax;
37342
 
  friend class ::ExtGnu;
37343
 
  friend class ::ExtAC;
37344
 
  friend class ::ExtACBuilderCoupling;
37345
 
  friend class ::ExtACSyntaxCoupling;
37346
 
  friend class ::ExtACTree;
37347
 
  friend class ::ExtACKeywords;
37348
 
  friend class ::WinAsm;
37349
 
  friend class ::WinDeclSpecs;
37350
 
  friend class ::WinMemberExplSpec;
37351
 
  friend class ::WinTypeKeywords;
37352
 
  friend class ::PragmaOnceUnitState;
37353
 
  friend class ::PragmaOnce;
37354
 
  friend class ::CCExprResolve;
37355
 
  friend class ::CExprResolve;
37356
 
 
37357
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37358
 
 
37359
 
public:
37360
 
  /*DEBUG*/static int alloc;
37361
 
  /*DEBUG*/static int release;
37362
 
 
37363
 
protected:
37364
 
  CTree *Son (CTree * const *, int, int) const;
37365
 
  int Sons (CTree * const *, int) const;
37366
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
37367
 
  
37368
 
protected:
37369
 
  CTree () { /*DEBUG*/alloc++; }
37370
 
 
37371
 
public:
37372
 
  virtual ~CTree () { /*DEBUG*/release++; }
37373
 
  virtual int Sons () const = 0;
37374
 
  virtual CTree *Son (int n) const { return (CTree*)0; }
37375
 
  virtual const char *NodeName () const = 0;
37376
 
  virtual Token *token () const;
37377
 
  virtual Token *end_token () const;
37378
 
  virtual CT_Token *token_node () const;
37379
 
  virtual CT_Token *end_token_node () const;
37380
 
  virtual void ReplaceSon (CTree *, CTree *) {}
37381
 
 
37382
 
public: // semantic information
37383
 
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
37384
 
  virtual CExprValue *Value () const { return (CExprValue*)0; }
37385
 
  
37386
 
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
37387
 
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
37388
 
  
37389
 
public: // node classification function
37390
 
  virtual CT_SimpleName *IsSimpleName () { return 0; }
37391
 
  virtual CT_Declarator *IsDeclarator () { return 0; }
37392
 
   private:
37393
 
  typedef CTree CCExprResolveCTree;
37394
 
 
37395
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37396
 
 public :
37397
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
37398
 
  typedef CTree CExprResolveCTree;
37399
 
 
37400
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37401
 
 public :
37402
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37403
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37404
 
};
37405
 
 
37406
 
 
37407
 
#line 37408 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37408
 
} // closed Puma
37409
 
class WinIfExists;
37410
 
class WinImportHandler;
37411
 
class WinMacros;
37412
 
class CMatchSyntax;
37413
 
class ExtGnu;
37414
 
class ExtAC;
37415
 
class ExtACBuilderCoupling;
37416
 
class ExtACSyntaxCoupling;
37417
 
class ExtACTree;
37418
 
class ExtACKeywords;
37419
 
class WinAsm;
37420
 
class WinDeclSpecs;
37421
 
class WinMemberExplSpec;
37422
 
class WinTypeKeywords;
37423
 
class PragmaOnceUnitState;
37424
 
class PragmaOnce;
37425
 
class CCExprResolve;
37426
 
class CExprResolve;
37427
 
namespace Puma {
37428
 
 
37429
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37430
 
class CT_Error : public CTree {
37431
 
#line 37432 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37432
 
  friend class ::WinIfExists;
37433
 
  friend class ::WinImportHandler;
37434
 
  friend class ::WinMacros;
37435
 
  friend class ::CMatchSyntax;
37436
 
  friend class ::ExtGnu;
37437
 
  friend class ::ExtAC;
37438
 
  friend class ::ExtACBuilderCoupling;
37439
 
  friend class ::ExtACSyntaxCoupling;
37440
 
  friend class ::ExtACTree;
37441
 
  friend class ::ExtACKeywords;
37442
 
  friend class ::WinAsm;
37443
 
  friend class ::WinDeclSpecs;
37444
 
  friend class ::WinMemberExplSpec;
37445
 
  friend class ::WinTypeKeywords;
37446
 
  friend class ::PragmaOnceUnitState;
37447
 
  friend class ::PragmaOnce;
37448
 
  friend class ::CCExprResolve;
37449
 
  friend class ::CExprResolve;
37450
 
 
37451
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37452
 
 
37453
 
public:
37454
 
  static const char *NodeId ();
37455
 
  const char *NodeName () const { return NodeId (); }
37456
 
  int Sons () const { return 0; }
37457
 
};
37458
 
 
37459
 
 
37460
 
#line 37461 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37461
 
} // closed Puma
37462
 
class WinIfExists;
37463
 
class WinImportHandler;
37464
 
class WinMacros;
37465
 
class CMatchSyntax;
37466
 
class ExtGnu;
37467
 
class ExtAC;
37468
 
class ExtACBuilderCoupling;
37469
 
class ExtACSyntaxCoupling;
37470
 
class ExtACTree;
37471
 
class ExtACKeywords;
37472
 
class WinAsm;
37473
 
class WinDeclSpecs;
37474
 
class WinMemberExplSpec;
37475
 
class WinTypeKeywords;
37476
 
class PragmaOnceUnitState;
37477
 
class PragmaOnce;
37478
 
class CCExprResolve;
37479
 
class CExprResolve;
37480
 
namespace Puma {
37481
 
 
37482
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37483
 
class CT_Token : public CTree {
37484
 
#line 37485 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37485
 
  friend class ::WinIfExists;
37486
 
  friend class ::WinImportHandler;
37487
 
  friend class ::WinMacros;
37488
 
  friend class ::CMatchSyntax;
37489
 
  friend class ::ExtGnu;
37490
 
  friend class ::ExtAC;
37491
 
  friend class ::ExtACBuilderCoupling;
37492
 
  friend class ::ExtACSyntaxCoupling;
37493
 
  friend class ::ExtACTree;
37494
 
  friend class ::ExtACKeywords;
37495
 
  friend class ::WinAsm;
37496
 
  friend class ::WinDeclSpecs;
37497
 
  friend class ::WinMemberExplSpec;
37498
 
  friend class ::WinTypeKeywords;
37499
 
  friend class ::PragmaOnceUnitState;
37500
 
  friend class ::PragmaOnce;
37501
 
  friend class ::CCExprResolve;
37502
 
  friend class ::CExprResolve;
37503
 
 
37504
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37505
 
 
37506
 
  Token *_token;
37507
 
  unsigned long int _number;
37508
 
  
37509
 
public:
37510
 
  CT_Token (Token *t, unsigned long int n = 0) : 
37511
 
    _token (t), _number (n) {}
37512
 
  static const char *NodeId ();
37513
 
  const char *NodeName () const { return NodeId (); }
37514
 
  int Sons () const { return 0; }
37515
 
  Token *token () const { return _token; }
37516
 
  Token *end_token () const { return _token; }
37517
 
  CT_Token *token_node () const { return (CT_Token*)this; }
37518
 
  CT_Token *end_token_node () const { return (CT_Token*)this; }
37519
 
  void Number (unsigned long int n) { _number = n; }
37520
 
  unsigned long int Number () const { return _number; }
37521
 
  // special new / delete with reusing memory
37522
 
  void *operator new (size_t);
37523
 
  void  operator delete (void *);
37524
 
};
37525
 
 
37526
 
/*****************************************************************************/
37527
 
/*                                                                           */
37528
 
/*                              List nodes                                   */
37529
 
/*                                                                           */
37530
 
/*****************************************************************************/
37531
 
 
37532
 
 
37533
 
#line 37534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37534
 
} // closed Puma
37535
 
class WinIfExists;
37536
 
class WinImportHandler;
37537
 
class WinMacros;
37538
 
class CMatchSyntax;
37539
 
class ExtGnu;
37540
 
class ExtAC;
37541
 
class ExtACBuilderCoupling;
37542
 
class ExtACSyntaxCoupling;
37543
 
class ExtACTree;
37544
 
class ExtACKeywords;
37545
 
class WinAsm;
37546
 
class WinDeclSpecs;
37547
 
class WinMemberExplSpec;
37548
 
class WinTypeKeywords;
37549
 
class PragmaOnceUnitState;
37550
 
class PragmaOnce;
37551
 
class CCExprResolve;
37552
 
class CExprResolve;
37553
 
namespace Puma {
37554
 
 
37555
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37556
 
class CT_List : public CTree {
37557
 
#line 37558 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37558
 
  friend class ::WinIfExists;
37559
 
  friend class ::WinImportHandler;
37560
 
  friend class ::WinMacros;
37561
 
  friend class ::CMatchSyntax;
37562
 
  friend class ::ExtGnu;
37563
 
  friend class ::ExtAC;
37564
 
  friend class ::ExtACBuilderCoupling;
37565
 
  friend class ::ExtACSyntaxCoupling;
37566
 
  friend class ::ExtACTree;
37567
 
  friend class ::ExtACKeywords;
37568
 
  friend class ::WinAsm;
37569
 
  friend class ::WinDeclSpecs;
37570
 
  friend class ::WinMemberExplSpec;
37571
 
  friend class ::WinTypeKeywords;
37572
 
  friend class ::PragmaOnceUnitState;
37573
 
  friend class ::PragmaOnce;
37574
 
  friend class ::CCExprResolve;
37575
 
  friend class ::CExprResolve;
37576
 
 
37577
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37578
 
 
37579
 
  Array<CTree*> _sons;
37580
 
  int _properties;
37581
 
 
37582
 
protected:
37583
 
  CT_List(int size = 5, int incr = 5, int props = 0) : 
37584
 
    _sons (size, incr), _properties (props) {}
37585
 
 
37586
 
public:
37587
 
  enum {
37588
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
37589
 
    CLOSE = 2,
37590
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
37591
 
    SEPARATORS = 4,   // the list has separators like ','
37592
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
37593
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
37594
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
37595
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
37596
 
  };
37597
 
 
37598
 
  int Entries () const;
37599
 
  CTree *Entry (int no) const;
37600
 
  int Sons () const { return _sons.length (); }
37601
 
  CTree *Son (int n) const { return _sons.lookup (n); }
37602
 
  int GetProperties () const { return _properties; }
37603
 
  void AddProperties (int p) { _properties |= p; }
37604
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
37605
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
37606
 
  void InsertSon (CTree *, CTree *);  // before given son
37607
 
  void ReplaceSon (CTree *, CTree *);
37608
 
  void RemoveSon (CTree *);
37609
 
  void InsertSon (int idx, CTree *s)
37610
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
37611
 
  void ReplaceSon (int idx, CTree *s) 
37612
 
   { if (idx < Sons ()) _sons[idx] = s; }
37613
 
  void RemoveSon (int idx) 
37614
 
   { if (idx < Sons ()) _sons.remove (idx); }
37615
 
};
37616
 
 
37617
 
 
37618
 
#line 37619 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37619
 
} // closed Puma
37620
 
class WinIfExists;
37621
 
class WinImportHandler;
37622
 
class WinMacros;
37623
 
class CMatchSyntax;
37624
 
class ExtGnu;
37625
 
class ExtAC;
37626
 
class ExtACBuilderCoupling;
37627
 
class ExtACSyntaxCoupling;
37628
 
class ExtACTree;
37629
 
class ExtACKeywords;
37630
 
class WinAsm;
37631
 
class WinDeclSpecs;
37632
 
class WinMemberExplSpec;
37633
 
class WinTypeKeywords;
37634
 
class PragmaOnceUnitState;
37635
 
class PragmaOnce;
37636
 
class CCExprResolve;
37637
 
class CExprResolve;
37638
 
namespace Puma {
37639
 
 
37640
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37641
 
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
37642
 
#line 37643 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37643
 
  friend class ::WinIfExists;
37644
 
  friend class ::WinImportHandler;
37645
 
  friend class ::WinMacros;
37646
 
  friend class ::CMatchSyntax;
37647
 
  friend class ::ExtGnu;
37648
 
  friend class ::ExtAC;
37649
 
  friend class ::ExtACBuilderCoupling;
37650
 
  friend class ::ExtACSyntaxCoupling;
37651
 
  friend class ::ExtACTree;
37652
 
  friend class ::ExtACKeywords;
37653
 
  friend class ::WinAsm;
37654
 
  friend class ::WinDeclSpecs;
37655
 
  friend class ::WinMemberExplSpec;
37656
 
  friend class ::WinTypeKeywords;
37657
 
  friend class ::PragmaOnceUnitState;
37658
 
  friend class ::PragmaOnce;
37659
 
  friend class ::CCExprResolve;
37660
 
  friend class ::CExprResolve;
37661
 
 
37662
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37663
 
 
37664
 
public:
37665
 
  CT_ExprList () { AddProperties (SEPARATORS); }
37666
 
  static const char *NodeId ();
37667
 
  const char *NodeName () const { return NodeId (); }
37668
 
 
37669
 
  CTypeInfo *Type () const { return type; }
37670
 
  CExprValue *Value () const { return value; }
37671
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
37672
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
37673
 
};
37674
 
 
37675
 
 
37676
 
#line 37677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37677
 
} // closed Puma
37678
 
class WinIfExists;
37679
 
class WinImportHandler;
37680
 
class WinMacros;
37681
 
class CMatchSyntax;
37682
 
class ExtGnu;
37683
 
class ExtAC;
37684
 
class ExtACBuilderCoupling;
37685
 
class ExtACSyntaxCoupling;
37686
 
class ExtACTree;
37687
 
class ExtACKeywords;
37688
 
class WinAsm;
37689
 
class WinDeclSpecs;
37690
 
class WinMemberExplSpec;
37691
 
class WinTypeKeywords;
37692
 
class PragmaOnceUnitState;
37693
 
class PragmaOnce;
37694
 
class CCExprResolve;
37695
 
class CExprResolve;
37696
 
namespace Puma {
37697
 
 
37698
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37699
 
class CT_DeclaratorList : public CT_List {
37700
 
#line 37701 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37701
 
  friend class ::WinIfExists;
37702
 
  friend class ::WinImportHandler;
37703
 
  friend class ::WinMacros;
37704
 
  friend class ::CMatchSyntax;
37705
 
  friend class ::ExtGnu;
37706
 
  friend class ::ExtAC;
37707
 
  friend class ::ExtACBuilderCoupling;
37708
 
  friend class ::ExtACSyntaxCoupling;
37709
 
  friend class ::ExtACTree;
37710
 
  friend class ::ExtACKeywords;
37711
 
  friend class ::WinAsm;
37712
 
  friend class ::WinDeclSpecs;
37713
 
  friend class ::WinMemberExplSpec;
37714
 
  friend class ::WinTypeKeywords;
37715
 
  friend class ::PragmaOnceUnitState;
37716
 
  friend class ::PragmaOnce;
37717
 
  friend class ::CCExprResolve;
37718
 
  friend class ::CExprResolve;
37719
 
 
37720
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37721
 
 
37722
 
public:
37723
 
  static const char *NodeId ();
37724
 
  const char *NodeName () const { return NodeId (); }
37725
 
};
37726
 
 
37727
 
 
37728
 
#line 37729 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37729
 
} // closed Puma
37730
 
class WinIfExists;
37731
 
class WinImportHandler;
37732
 
class WinMacros;
37733
 
class CMatchSyntax;
37734
 
class ExtGnu;
37735
 
class ExtAC;
37736
 
class ExtACBuilderCoupling;
37737
 
class ExtACSyntaxCoupling;
37738
 
class ExtACTree;
37739
 
class ExtACKeywords;
37740
 
class WinAsm;
37741
 
class WinDeclSpecs;
37742
 
class WinMemberExplSpec;
37743
 
class WinTypeKeywords;
37744
 
class PragmaOnceUnitState;
37745
 
class PragmaOnce;
37746
 
class CCExprResolve;
37747
 
class CExprResolve;
37748
 
namespace Puma {
37749
 
 
37750
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37751
 
class CT_EnumeratorList : public CT_List {
37752
 
#line 37753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37753
 
  friend class ::WinIfExists;
37754
 
  friend class ::WinImportHandler;
37755
 
  friend class ::WinMacros;
37756
 
  friend class ::CMatchSyntax;
37757
 
  friend class ::ExtGnu;
37758
 
  friend class ::ExtAC;
37759
 
  friend class ::ExtACBuilderCoupling;
37760
 
  friend class ::ExtACSyntaxCoupling;
37761
 
  friend class ::ExtACTree;
37762
 
  friend class ::ExtACKeywords;
37763
 
  friend class ::WinAsm;
37764
 
  friend class ::WinDeclSpecs;
37765
 
  friend class ::WinMemberExplSpec;
37766
 
  friend class ::WinTypeKeywords;
37767
 
  friend class ::PragmaOnceUnitState;
37768
 
  friend class ::PragmaOnce;
37769
 
  friend class ::CCExprResolve;
37770
 
  friend class ::CExprResolve;
37771
 
 
37772
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37773
 
 
37774
 
public:
37775
 
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
37776
 
  static const char *NodeId ();
37777
 
  const char *NodeName () const { return NodeId (); }
37778
 
};
37779
 
   
37780
 
 
37781
 
#line 37782 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37782
 
} // closed Puma
37783
 
class WinIfExists;
37784
 
class WinImportHandler;
37785
 
class WinMacros;
37786
 
class CMatchSyntax;
37787
 
class ExtGnu;
37788
 
class ExtAC;
37789
 
class ExtACBuilderCoupling;
37790
 
class ExtACSyntaxCoupling;
37791
 
class ExtACTree;
37792
 
class ExtACKeywords;
37793
 
class WinAsm;
37794
 
class WinDeclSpecs;
37795
 
class WinMemberExplSpec;
37796
 
class WinTypeKeywords;
37797
 
class PragmaOnceUnitState;
37798
 
class PragmaOnce;
37799
 
class CCExprResolve;
37800
 
class CExprResolve;
37801
 
namespace Puma {
37802
 
 
37803
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37804
 
class CT_DeclList : public CT_List {
37805
 
#line 37806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37806
 
  friend class ::WinIfExists;
37807
 
  friend class ::WinImportHandler;
37808
 
  friend class ::WinMacros;
37809
 
  friend class ::CMatchSyntax;
37810
 
  friend class ::ExtGnu;
37811
 
  friend class ::ExtAC;
37812
 
  friend class ::ExtACBuilderCoupling;
37813
 
  friend class ::ExtACSyntaxCoupling;
37814
 
  friend class ::ExtACTree;
37815
 
  friend class ::ExtACKeywords;
37816
 
  friend class ::WinAsm;
37817
 
  friend class ::WinDeclSpecs;
37818
 
  friend class ::WinMemberExplSpec;
37819
 
  friend class ::WinTypeKeywords;
37820
 
  friend class ::PragmaOnceUnitState;
37821
 
  friend class ::PragmaOnce;
37822
 
  friend class ::CCExprResolve;
37823
 
  friend class ::CExprResolve;
37824
 
 
37825
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37826
 
 
37827
 
public:
37828
 
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
37829
 
  static const char *NodeId ();
37830
 
  const char *NodeName () const { return NodeId (); }
37831
 
  void Linkage (CT_LinkageSpec *l);
37832
 
};
37833
 
 
37834
 
 
37835
 
#line 37836 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37836
 
} // closed Puma
37837
 
class WinIfExists;
37838
 
class WinImportHandler;
37839
 
class WinMacros;
37840
 
class CMatchSyntax;
37841
 
class ExtGnu;
37842
 
class ExtAC;
37843
 
class ExtACBuilderCoupling;
37844
 
class ExtACSyntaxCoupling;
37845
 
class ExtACTree;
37846
 
class ExtACKeywords;
37847
 
class WinAsm;
37848
 
class WinDeclSpecs;
37849
 
class WinMemberExplSpec;
37850
 
class WinTypeKeywords;
37851
 
class PragmaOnceUnitState;
37852
 
class PragmaOnce;
37853
 
class CCExprResolve;
37854
 
class CExprResolve;
37855
 
namespace Puma {
37856
 
 
37857
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37858
 
class CT_DeclSpecSeq : public CT_List {
37859
 
#line 37860 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37860
 
  friend class ::WinIfExists;
37861
 
  friend class ::WinImportHandler;
37862
 
  friend class ::WinMacros;
37863
 
  friend class ::CMatchSyntax;
37864
 
  friend class ::ExtGnu;
37865
 
  friend class ::ExtAC;
37866
 
  friend class ::ExtACBuilderCoupling;
37867
 
  friend class ::ExtACSyntaxCoupling;
37868
 
  friend class ::ExtACTree;
37869
 
  friend class ::ExtACKeywords;
37870
 
  friend class ::WinAsm;
37871
 
  friend class ::WinDeclSpecs;
37872
 
  friend class ::WinMemberExplSpec;
37873
 
  friend class ::WinTypeKeywords;
37874
 
  friend class ::PragmaOnceUnitState;
37875
 
  friend class ::PragmaOnce;
37876
 
  friend class ::CCExprResolve;
37877
 
  friend class ::CExprResolve;
37878
 
 
37879
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37880
 
 
37881
 
public:
37882
 
  static const char *NodeId ();
37883
 
  const char *NodeName () const { return NodeId (); }
37884
 
};
37885
 
 
37886
 
 
37887
 
#line 37888 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37888
 
} // closed Puma
37889
 
class WinIfExists;
37890
 
class WinImportHandler;
37891
 
class WinMacros;
37892
 
class CMatchSyntax;
37893
 
class ExtGnu;
37894
 
class ExtAC;
37895
 
class ExtACBuilderCoupling;
37896
 
class ExtACSyntaxCoupling;
37897
 
class ExtACTree;
37898
 
class ExtACKeywords;
37899
 
class WinAsm;
37900
 
class WinDeclSpecs;
37901
 
class WinMemberExplSpec;
37902
 
class WinTypeKeywords;
37903
 
class PragmaOnceUnitState;
37904
 
class PragmaOnce;
37905
 
class CCExprResolve;
37906
 
class CExprResolve;
37907
 
namespace Puma {
37908
 
 
37909
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37910
 
class CT_CmpdStmt : public CT_List, public CSemScope {
37911
 
#line 37912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37912
 
  friend class ::WinIfExists;
37913
 
  friend class ::WinImportHandler;
37914
 
  friend class ::WinMacros;
37915
 
  friend class ::CMatchSyntax;
37916
 
  friend class ::ExtGnu;
37917
 
  friend class ::ExtAC;
37918
 
  friend class ::ExtACBuilderCoupling;
37919
 
  friend class ::ExtACSyntaxCoupling;
37920
 
  friend class ::ExtACTree;
37921
 
  friend class ::ExtACKeywords;
37922
 
  friend class ::WinAsm;
37923
 
  friend class ::WinDeclSpecs;
37924
 
  friend class ::WinMemberExplSpec;
37925
 
  friend class ::WinTypeKeywords;
37926
 
  friend class ::PragmaOnceUnitState;
37927
 
  friend class ::PragmaOnce;
37928
 
  friend class ::CCExprResolve;
37929
 
  friend class ::CExprResolve;
37930
 
 
37931
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37932
 
 
37933
 
public:
37934
 
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
37935
 
  static const char *NodeId ();
37936
 
  const char *NodeName () const { return NodeId (); }
37937
 
};
37938
 
 
37939
 
 
37940
 
#line 37941 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37941
 
} // closed Puma
37942
 
class WinIfExists;
37943
 
class WinImportHandler;
37944
 
class WinMacros;
37945
 
class CMatchSyntax;
37946
 
class ExtGnu;
37947
 
class ExtAC;
37948
 
class ExtACBuilderCoupling;
37949
 
class ExtACSyntaxCoupling;
37950
 
class ExtACTree;
37951
 
class ExtACKeywords;
37952
 
class WinAsm;
37953
 
class WinDeclSpecs;
37954
 
class WinMemberExplSpec;
37955
 
class WinTypeKeywords;
37956
 
class PragmaOnceUnitState;
37957
 
class PragmaOnce;
37958
 
class CCExprResolve;
37959
 
class CExprResolve;
37960
 
namespace Puma {
37961
 
 
37962
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37963
 
class CT_HandlerSeq : public CT_List {
37964
 
#line 37965 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37965
 
  friend class ::WinIfExists;
37966
 
  friend class ::WinImportHandler;
37967
 
  friend class ::WinMacros;
37968
 
  friend class ::CMatchSyntax;
37969
 
  friend class ::ExtGnu;
37970
 
  friend class ::ExtAC;
37971
 
  friend class ::ExtACBuilderCoupling;
37972
 
  friend class ::ExtACSyntaxCoupling;
37973
 
  friend class ::ExtACTree;
37974
 
  friend class ::ExtACKeywords;
37975
 
  friend class ::WinAsm;
37976
 
  friend class ::WinDeclSpecs;
37977
 
  friend class ::WinMemberExplSpec;
37978
 
  friend class ::WinTypeKeywords;
37979
 
  friend class ::PragmaOnceUnitState;
37980
 
  friend class ::PragmaOnce;
37981
 
  friend class ::CCExprResolve;
37982
 
  friend class ::CExprResolve;
37983
 
 
37984
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37985
 
 
37986
 
public:
37987
 
  static const char *NodeId ();
37988
 
  const char *NodeName () const { return NodeId (); }
37989
 
};
37990
 
 
37991
 
 
37992
 
#line 37993 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
37993
 
} // closed Puma
37994
 
class WinIfExists;
37995
 
class WinImportHandler;
37996
 
class WinMacros;
37997
 
class CMatchSyntax;
37998
 
class ExtGnu;
37999
 
class ExtAC;
38000
 
class ExtACBuilderCoupling;
38001
 
class ExtACSyntaxCoupling;
38002
 
class ExtACTree;
38003
 
class ExtACKeywords;
38004
 
class WinAsm;
38005
 
class WinDeclSpecs;
38006
 
class WinMemberExplSpec;
38007
 
class WinTypeKeywords;
38008
 
class PragmaOnceUnitState;
38009
 
class PragmaOnce;
38010
 
class CCExprResolve;
38011
 
class CExprResolve;
38012
 
namespace Puma {
38013
 
 
38014
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38015
 
class CT_TemplateParamList : public CT_List, public CSemScope {
38016
 
#line 38017 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38017
 
  friend class ::WinIfExists;
38018
 
  friend class ::WinImportHandler;
38019
 
  friend class ::WinMacros;
38020
 
  friend class ::CMatchSyntax;
38021
 
  friend class ::ExtGnu;
38022
 
  friend class ::ExtAC;
38023
 
  friend class ::ExtACBuilderCoupling;
38024
 
  friend class ::ExtACSyntaxCoupling;
38025
 
  friend class ::ExtACTree;
38026
 
  friend class ::ExtACKeywords;
38027
 
  friend class ::WinAsm;
38028
 
  friend class ::WinDeclSpecs;
38029
 
  friend class ::WinMemberExplSpec;
38030
 
  friend class ::WinTypeKeywords;
38031
 
  friend class ::PragmaOnceUnitState;
38032
 
  friend class ::PragmaOnce;
38033
 
  friend class ::CCExprResolve;
38034
 
  friend class ::CExprResolve;
38035
 
 
38036
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38037
 
 
38038
 
public:
38039
 
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
38040
 
  static const char *NodeId ();
38041
 
  const char *NodeName () const { return NodeId (); }
38042
 
};
38043
 
 
38044
 
 
38045
 
#line 38046 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38046
 
} // closed Puma
38047
 
class WinIfExists;
38048
 
class WinImportHandler;
38049
 
class WinMacros;
38050
 
class CMatchSyntax;
38051
 
class ExtGnu;
38052
 
class ExtAC;
38053
 
class ExtACBuilderCoupling;
38054
 
class ExtACSyntaxCoupling;
38055
 
class ExtACTree;
38056
 
class ExtACKeywords;
38057
 
class WinAsm;
38058
 
class WinDeclSpecs;
38059
 
class WinMemberExplSpec;
38060
 
class WinTypeKeywords;
38061
 
class PragmaOnceUnitState;
38062
 
class PragmaOnce;
38063
 
class CCExprResolve;
38064
 
class CExprResolve;
38065
 
namespace Puma {
38066
 
 
38067
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38068
 
class CT_TemplateArgList : public CT_List {
38069
 
#line 38070 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38070
 
  friend class ::WinIfExists;
38071
 
  friend class ::WinImportHandler;
38072
 
  friend class ::WinMacros;
38073
 
  friend class ::CMatchSyntax;
38074
 
  friend class ::ExtGnu;
38075
 
  friend class ::ExtAC;
38076
 
  friend class ::ExtACBuilderCoupling;
38077
 
  friend class ::ExtACSyntaxCoupling;
38078
 
  friend class ::ExtACTree;
38079
 
  friend class ::ExtACKeywords;
38080
 
  friend class ::WinAsm;
38081
 
  friend class ::WinDeclSpecs;
38082
 
  friend class ::WinMemberExplSpec;
38083
 
  friend class ::WinTypeKeywords;
38084
 
  friend class ::PragmaOnceUnitState;
38085
 
  friend class ::PragmaOnce;
38086
 
  friend class ::CCExprResolve;
38087
 
  friend class ::CExprResolve;
38088
 
 
38089
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38090
 
 
38091
 
public:
38092
 
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
38093
 
  static const char *NodeId ();
38094
 
  const char *NodeName () const { return NodeId (); }
38095
 
};
38096
 
 
38097
 
/*****************************************************************************/
38098
 
/*                                                                           */
38099
 
/*                              Expressions                                  */
38100
 
/*                                                                           */
38101
 
/*****************************************************************************/
38102
 
 
38103
 
 
38104
 
#line 38105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38105
 
} // closed Puma
38106
 
class WinIfExists;
38107
 
class WinImportHandler;
38108
 
class WinMacros;
38109
 
class CMatchSyntax;
38110
 
class ExtGnu;
38111
 
class ExtAC;
38112
 
class ExtACBuilderCoupling;
38113
 
class ExtACSyntaxCoupling;
38114
 
class ExtACTree;
38115
 
class ExtACKeywords;
38116
 
class WinAsm;
38117
 
class WinDeclSpecs;
38118
 
class WinMemberExplSpec;
38119
 
class WinTypeKeywords;
38120
 
class PragmaOnceUnitState;
38121
 
class PragmaOnce;
38122
 
class CCExprResolve;
38123
 
class CExprResolve;
38124
 
namespace Puma {
38125
 
 
38126
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38127
 
class CT_Expression : public CTree, public CSemValue {
38128
 
#line 38129 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38129
 
  friend class ::WinIfExists;
38130
 
  friend class ::WinImportHandler;
38131
 
  friend class ::WinMacros;
38132
 
  friend class ::CMatchSyntax;
38133
 
  friend class ::ExtGnu;
38134
 
  friend class ::ExtAC;
38135
 
  friend class ::ExtACBuilderCoupling;
38136
 
  friend class ::ExtACSyntaxCoupling;
38137
 
  friend class ::ExtACTree;
38138
 
  friend class ::ExtACKeywords;
38139
 
  friend class ::WinAsm;
38140
 
  friend class ::WinDeclSpecs;
38141
 
  friend class ::WinMemberExplSpec;
38142
 
  friend class ::WinTypeKeywords;
38143
 
  friend class ::PragmaOnceUnitState;
38144
 
  friend class ::PragmaOnce;
38145
 
  friend class ::CCExprResolve;
38146
 
  friend class ::CExprResolve;
38147
 
 
38148
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38149
 
 
38150
 
protected:
38151
 
  CT_Expression () {}
38152
 
 
38153
 
public:
38154
 
  static const char *NodeId ();
38155
 
  const char *NodeName () const { return NodeId (); }
38156
 
  CTypeInfo *Type () const { return type; }
38157
 
  CExprValue *Value () const { return value; }
38158
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
38159
 
   private:
38160
 
  typedef CT_Expression CCExprResolveExpr;
38161
 
 
38162
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38163
 
 public :
38164
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
38165
 
  typedef CT_Expression CExprResolveExpr;
38166
 
 
38167
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38168
 
 public :
38169
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38170
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38171
 
};
38172
 
 
38173
 
 
38174
 
#line 38175 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38175
 
} // closed Puma
38176
 
class WinIfExists;
38177
 
class WinImportHandler;
38178
 
class WinMacros;
38179
 
class CMatchSyntax;
38180
 
class ExtGnu;
38181
 
class ExtAC;
38182
 
class ExtACBuilderCoupling;
38183
 
class ExtACSyntaxCoupling;
38184
 
class ExtACTree;
38185
 
class ExtACKeywords;
38186
 
class WinAsm;
38187
 
class WinDeclSpecs;
38188
 
class WinMemberExplSpec;
38189
 
class WinTypeKeywords;
38190
 
class PragmaOnceUnitState;
38191
 
class PragmaOnce;
38192
 
class CCExprResolve;
38193
 
class CExprResolve;
38194
 
namespace Puma {
38195
 
 
38196
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38197
 
class CT_String : public CT_List, public CSemValue {
38198
 
#line 38199 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38199
 
  friend class ::WinIfExists;
38200
 
  friend class ::WinImportHandler;
38201
 
  friend class ::WinMacros;
38202
 
  friend class ::CMatchSyntax;
38203
 
  friend class ::ExtGnu;
38204
 
  friend class ::ExtAC;
38205
 
  friend class ::ExtACBuilderCoupling;
38206
 
  friend class ::ExtACSyntaxCoupling;
38207
 
  friend class ::ExtACTree;
38208
 
  friend class ::ExtACKeywords;
38209
 
  friend class ::WinAsm;
38210
 
  friend class ::WinDeclSpecs;
38211
 
  friend class ::WinMemberExplSpec;
38212
 
  friend class ::WinTypeKeywords;
38213
 
  friend class ::PragmaOnceUnitState;
38214
 
  friend class ::PragmaOnce;
38215
 
  friend class ::CCExprResolve;
38216
 
  friend class ::CExprResolve;
38217
 
 
38218
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38219
 
 
38220
 
public:
38221
 
  CT_String (int size) : CT_List (size, 1) {}
38222
 
  static const char *NodeId ();
38223
 
  const char *NodeName () const { return NodeId (); }
38224
 
 
38225
 
  CTypeInfo *Type () const { return type; }
38226
 
  CExprValue *Value () const { return value; }
38227
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
38228
 
   private:
38229
 
  typedef CT_String CCExprResolveExpr;
38230
 
 
38231
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38232
 
 public :
38233
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
38234
 
  typedef CT_String CExprResolveExpr;
38235
 
 
38236
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38237
 
 public :
38238
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38239
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38240
 
};
38241
 
 
38242
 
 
38243
 
#line 38244 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38244
 
} // closed Puma
38245
 
class WinIfExists;
38246
 
class WinImportHandler;
38247
 
class WinMacros;
38248
 
class CMatchSyntax;
38249
 
class ExtGnu;
38250
 
class ExtAC;
38251
 
class ExtACBuilderCoupling;
38252
 
class ExtACSyntaxCoupling;
38253
 
class ExtACTree;
38254
 
class ExtACKeywords;
38255
 
class WinAsm;
38256
 
class WinDeclSpecs;
38257
 
class WinMemberExplSpec;
38258
 
class WinTypeKeywords;
38259
 
class PragmaOnceUnitState;
38260
 
class PragmaOnce;
38261
 
class CCExprResolve;
38262
 
class CExprResolve;
38263
 
namespace Puma {
38264
 
 
38265
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38266
 
class CT_WideString : public CT_String {
38267
 
#line 38268 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38268
 
  friend class ::WinIfExists;
38269
 
  friend class ::WinImportHandler;
38270
 
  friend class ::WinMacros;
38271
 
  friend class ::CMatchSyntax;
38272
 
  friend class ::ExtGnu;
38273
 
  friend class ::ExtAC;
38274
 
  friend class ::ExtACBuilderCoupling;
38275
 
  friend class ::ExtACSyntaxCoupling;
38276
 
  friend class ::ExtACTree;
38277
 
  friend class ::ExtACKeywords;
38278
 
  friend class ::WinAsm;
38279
 
  friend class ::WinDeclSpecs;
38280
 
  friend class ::WinMemberExplSpec;
38281
 
  friend class ::WinTypeKeywords;
38282
 
  friend class ::PragmaOnceUnitState;
38283
 
  friend class ::PragmaOnce;
38284
 
  friend class ::CCExprResolve;
38285
 
  friend class ::CExprResolve;
38286
 
 
38287
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38288
 
 
38289
 
public:
38290
 
  CT_WideString (int size) : CT_String (size) {}
38291
 
  static const char *NodeId ();
38292
 
  const char *NodeName () const { return NodeId (); }
38293
 
   private:
38294
 
  typedef CT_WideString CCExprResolveExpr;
38295
 
 
38296
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38297
 
 public :
38298
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
38299
 
  typedef CT_WideString CExprResolveExpr;
38300
 
 
38301
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38302
 
 public :
38303
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38304
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38305
 
};
38306
 
 
38307
 
 
38308
 
#line 38309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38309
 
} // closed Puma
38310
 
class WinIfExists;
38311
 
class WinImportHandler;
38312
 
class WinMacros;
38313
 
class CMatchSyntax;
38314
 
class ExtGnu;
38315
 
class ExtAC;
38316
 
class ExtACBuilderCoupling;
38317
 
class ExtACSyntaxCoupling;
38318
 
class ExtACTree;
38319
 
class ExtACKeywords;
38320
 
class WinAsm;
38321
 
class WinDeclSpecs;
38322
 
class WinMemberExplSpec;
38323
 
class WinTypeKeywords;
38324
 
class PragmaOnceUnitState;
38325
 
class PragmaOnce;
38326
 
class CCExprResolve;
38327
 
class CExprResolve;
38328
 
namespace Puma {
38329
 
 
38330
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38331
 
class CT_Integer : public CT_Expression {
38332
 
#line 38333 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38333
 
  friend class ::WinIfExists;
38334
 
  friend class ::WinImportHandler;
38335
 
  friend class ::WinMacros;
38336
 
  friend class ::CMatchSyntax;
38337
 
  friend class ::ExtGnu;
38338
 
  friend class ::ExtAC;
38339
 
  friend class ::ExtACBuilderCoupling;
38340
 
  friend class ::ExtACSyntaxCoupling;
38341
 
  friend class ::ExtACTree;
38342
 
  friend class ::ExtACKeywords;
38343
 
  friend class ::WinAsm;
38344
 
  friend class ::WinDeclSpecs;
38345
 
  friend class ::WinMemberExplSpec;
38346
 
  friend class ::WinTypeKeywords;
38347
 
  friend class ::PragmaOnceUnitState;
38348
 
  friend class ::PragmaOnce;
38349
 
  friend class ::CCExprResolve;
38350
 
  friend class ::CExprResolve;
38351
 
 
38352
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38353
 
 
38354
 
  CTree *_value;  // CT_Token
38355
 
 
38356
 
public:
38357
 
  CT_Integer (CTree *t) : _value (t) {}
38358
 
  static const char *NodeId ();
38359
 
  const char *NodeName () const { return NodeId (); }
38360
 
  int Sons () const { return _value ? 1 : 0; }
38361
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
38362
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
38363
 
   { if (old_son == _value) _value = new_son; }
38364
 
   private:
38365
 
  typedef CT_Integer CCExprResolveExpr;
38366
 
 
38367
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38368
 
 public :
38369
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
38370
 
  typedef CT_Integer CExprResolveExpr;
38371
 
 
38372
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38373
 
 public :
38374
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38375
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38376
 
};
38377
 
 
38378
 
 
38379
 
#line 38380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38380
 
} // closed Puma
38381
 
class WinIfExists;
38382
 
class WinImportHandler;
38383
 
class WinMacros;
38384
 
class CMatchSyntax;
38385
 
class ExtGnu;
38386
 
class ExtAC;
38387
 
class ExtACBuilderCoupling;
38388
 
class ExtACSyntaxCoupling;
38389
 
class ExtACTree;
38390
 
class ExtACKeywords;
38391
 
class WinAsm;
38392
 
class WinDeclSpecs;
38393
 
class WinMemberExplSpec;
38394
 
class WinTypeKeywords;
38395
 
class PragmaOnceUnitState;
38396
 
class PragmaOnce;
38397
 
class CCExprResolve;
38398
 
class CExprResolve;
38399
 
namespace Puma {
38400
 
 
38401
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38402
 
class CT_Character : public CT_Expression {
38403
 
#line 38404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38404
 
  friend class ::WinIfExists;
38405
 
  friend class ::WinImportHandler;
38406
 
  friend class ::WinMacros;
38407
 
  friend class ::CMatchSyntax;
38408
 
  friend class ::ExtGnu;
38409
 
  friend class ::ExtAC;
38410
 
  friend class ::ExtACBuilderCoupling;
38411
 
  friend class ::ExtACSyntaxCoupling;
38412
 
  friend class ::ExtACTree;
38413
 
  friend class ::ExtACKeywords;
38414
 
  friend class ::WinAsm;
38415
 
  friend class ::WinDeclSpecs;
38416
 
  friend class ::WinMemberExplSpec;
38417
 
  friend class ::WinTypeKeywords;
38418
 
  friend class ::PragmaOnceUnitState;
38419
 
  friend class ::PragmaOnce;
38420
 
  friend class ::CCExprResolve;
38421
 
  friend class ::CExprResolve;
38422
 
 
38423
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38424
 
 
38425
 
  CTree *_value;  // CT_Token
38426
 
 
38427
 
public:
38428
 
  CT_Character (CTree *t) : _value (t) {}
38429
 
  static const char *NodeId ();
38430
 
  const char *NodeName () const { return NodeId (); }
38431
 
  int Sons () const { return 1; }
38432
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
38433
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
38434
 
   { if (old_son == _value) _value = new_son; }
38435
 
   private:
38436
 
  typedef CT_Character CCExprResolveExpr;
38437
 
 
38438
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38439
 
 public :
38440
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
38441
 
  typedef CT_Character CExprResolveExpr;
38442
 
 
38443
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38444
 
 public :
38445
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38446
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38447
 
};
38448
 
 
38449
 
 
38450
 
#line 38451 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38451
 
} // closed Puma
38452
 
class WinIfExists;
38453
 
class WinImportHandler;
38454
 
class WinMacros;
38455
 
class CMatchSyntax;
38456
 
class ExtGnu;
38457
 
class ExtAC;
38458
 
class ExtACBuilderCoupling;
38459
 
class ExtACSyntaxCoupling;
38460
 
class ExtACTree;
38461
 
class ExtACKeywords;
38462
 
class WinAsm;
38463
 
class WinDeclSpecs;
38464
 
class WinMemberExplSpec;
38465
 
class WinTypeKeywords;
38466
 
class PragmaOnceUnitState;
38467
 
class PragmaOnce;
38468
 
class CCExprResolve;
38469
 
class CExprResolve;
38470
 
namespace Puma {
38471
 
 
38472
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38473
 
class CT_WideCharacter : public CT_Character {
38474
 
#line 38475 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38475
 
  friend class ::WinIfExists;
38476
 
  friend class ::WinImportHandler;
38477
 
  friend class ::WinMacros;
38478
 
  friend class ::CMatchSyntax;
38479
 
  friend class ::ExtGnu;
38480
 
  friend class ::ExtAC;
38481
 
  friend class ::ExtACBuilderCoupling;
38482
 
  friend class ::ExtACSyntaxCoupling;
38483
 
  friend class ::ExtACTree;
38484
 
  friend class ::ExtACKeywords;
38485
 
  friend class ::WinAsm;
38486
 
  friend class ::WinDeclSpecs;
38487
 
  friend class ::WinMemberExplSpec;
38488
 
  friend class ::WinTypeKeywords;
38489
 
  friend class ::PragmaOnceUnitState;
38490
 
  friend class ::PragmaOnce;
38491
 
  friend class ::CCExprResolve;
38492
 
  friend class ::CExprResolve;
38493
 
 
38494
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38495
 
 
38496
 
  CTree *_value;  // CT_Token
38497
 
 
38498
 
public:
38499
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
38500
 
  static const char *NodeId ();
38501
 
  const char *NodeName () const { return NodeId (); }
38502
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
38503
 
   { if (old_son == _value) _value = new_son; }
38504
 
   private:
38505
 
  typedef CT_WideCharacter CCExprResolveExpr;
38506
 
 
38507
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38508
 
 public :
38509
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
38510
 
  typedef CT_WideCharacter CExprResolveExpr;
38511
 
 
38512
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38513
 
 public :
38514
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38515
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38516
 
};
38517
 
 
38518
 
 
38519
 
#line 38520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38520
 
} // closed Puma
38521
 
class WinIfExists;
38522
 
class WinImportHandler;
38523
 
class WinMacros;
38524
 
class CMatchSyntax;
38525
 
class ExtGnu;
38526
 
class ExtAC;
38527
 
class ExtACBuilderCoupling;
38528
 
class ExtACSyntaxCoupling;
38529
 
class ExtACTree;
38530
 
class ExtACKeywords;
38531
 
class WinAsm;
38532
 
class WinDeclSpecs;
38533
 
class WinMemberExplSpec;
38534
 
class WinTypeKeywords;
38535
 
class PragmaOnceUnitState;
38536
 
class PragmaOnce;
38537
 
class CCExprResolve;
38538
 
class CExprResolve;
38539
 
namespace Puma {
38540
 
 
38541
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38542
 
class CT_Float : public CT_Expression {
38543
 
#line 38544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38544
 
  friend class ::WinIfExists;
38545
 
  friend class ::WinImportHandler;
38546
 
  friend class ::WinMacros;
38547
 
  friend class ::CMatchSyntax;
38548
 
  friend class ::ExtGnu;
38549
 
  friend class ::ExtAC;
38550
 
  friend class ::ExtACBuilderCoupling;
38551
 
  friend class ::ExtACSyntaxCoupling;
38552
 
  friend class ::ExtACTree;
38553
 
  friend class ::ExtACKeywords;
38554
 
  friend class ::WinAsm;
38555
 
  friend class ::WinDeclSpecs;
38556
 
  friend class ::WinMemberExplSpec;
38557
 
  friend class ::WinTypeKeywords;
38558
 
  friend class ::PragmaOnceUnitState;
38559
 
  friend class ::PragmaOnce;
38560
 
  friend class ::CCExprResolve;
38561
 
  friend class ::CExprResolve;
38562
 
 
38563
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38564
 
 
38565
 
  CTree *_value;  // CT_Token
38566
 
 
38567
 
public:
38568
 
  CT_Float (CTree *t) : _value (t) {}
38569
 
  static const char *NodeId ();
38570
 
  const char *NodeName () const { return NodeId (); }
38571
 
  int Sons () const { return 1; }
38572
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
38573
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
38574
 
   { if (old_son == _value) _value = new_son; }
38575
 
   private:
38576
 
  typedef CT_Float CCExprResolveExpr;
38577
 
 
38578
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38579
 
 public :
38580
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
38581
 
  typedef CT_Float CExprResolveExpr;
38582
 
 
38583
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38584
 
 public :
38585
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38586
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38587
 
};
38588
 
 
38589
 
 
38590
 
#line 38591 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38591
 
} // closed Puma
38592
 
class WinIfExists;
38593
 
class WinImportHandler;
38594
 
class WinMacros;
38595
 
class CMatchSyntax;
38596
 
class ExtGnu;
38597
 
class ExtAC;
38598
 
class ExtACBuilderCoupling;
38599
 
class ExtACSyntaxCoupling;
38600
 
class ExtACTree;
38601
 
class ExtACKeywords;
38602
 
class WinAsm;
38603
 
class WinDeclSpecs;
38604
 
class WinMemberExplSpec;
38605
 
class WinTypeKeywords;
38606
 
class PragmaOnceUnitState;
38607
 
class PragmaOnce;
38608
 
class CCExprResolve;
38609
 
class CExprResolve;
38610
 
namespace Puma {
38611
 
 
38612
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38613
 
class CT_Bool : public CT_Expression {
38614
 
#line 38615 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38615
 
  friend class ::WinIfExists;
38616
 
  friend class ::WinImportHandler;
38617
 
  friend class ::WinMacros;
38618
 
  friend class ::CMatchSyntax;
38619
 
  friend class ::ExtGnu;
38620
 
  friend class ::ExtAC;
38621
 
  friend class ::ExtACBuilderCoupling;
38622
 
  friend class ::ExtACSyntaxCoupling;
38623
 
  friend class ::ExtACTree;
38624
 
  friend class ::ExtACKeywords;
38625
 
  friend class ::WinAsm;
38626
 
  friend class ::WinDeclSpecs;
38627
 
  friend class ::WinMemberExplSpec;
38628
 
  friend class ::WinTypeKeywords;
38629
 
  friend class ::PragmaOnceUnitState;
38630
 
  friend class ::PragmaOnce;
38631
 
  friend class ::CCExprResolve;
38632
 
  friend class ::CExprResolve;
38633
 
 
38634
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38635
 
 
38636
 
  CTree *_value;  // CT_Token
38637
 
 
38638
 
public:
38639
 
  CT_Bool (CTree *t) : _value (t) {}
38640
 
  static const char *NodeId ();
38641
 
  const char *NodeName () const { return NodeId (); }
38642
 
  int Sons () const { return 1; }
38643
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
38644
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
38645
 
   { if (old_son == _value) _value = new_son; }
38646
 
   private:
38647
 
  typedef CT_Bool CCExprResolveExpr;
38648
 
 
38649
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38650
 
 public :
38651
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
38652
 
  typedef CT_Bool CExprResolveExpr;
38653
 
 
38654
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38655
 
 public :
38656
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38657
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38658
 
};
38659
 
 
38660
 
 
38661
 
#line 38662 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38662
 
} // closed Puma
38663
 
class WinIfExists;
38664
 
class WinImportHandler;
38665
 
class WinMacros;
38666
 
class CMatchSyntax;
38667
 
class ExtGnu;
38668
 
class ExtAC;
38669
 
class ExtACBuilderCoupling;
38670
 
class ExtACSyntaxCoupling;
38671
 
class ExtACTree;
38672
 
class ExtACKeywords;
38673
 
class WinAsm;
38674
 
class WinDeclSpecs;
38675
 
class WinMemberExplSpec;
38676
 
class WinTypeKeywords;
38677
 
class PragmaOnceUnitState;
38678
 
class PragmaOnce;
38679
 
class CCExprResolve;
38680
 
class CExprResolve;
38681
 
namespace Puma {
38682
 
 
38683
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38684
 
class CT_BracedExpr : public CT_Expression {
38685
 
#line 38686 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38686
 
  friend class ::WinIfExists;
38687
 
  friend class ::WinImportHandler;
38688
 
  friend class ::WinMacros;
38689
 
  friend class ::CMatchSyntax;
38690
 
  friend class ::ExtGnu;
38691
 
  friend class ::ExtAC;
38692
 
  friend class ::ExtACBuilderCoupling;
38693
 
  friend class ::ExtACSyntaxCoupling;
38694
 
  friend class ::ExtACTree;
38695
 
  friend class ::ExtACKeywords;
38696
 
  friend class ::WinAsm;
38697
 
  friend class ::WinDeclSpecs;
38698
 
  friend class ::WinMemberExplSpec;
38699
 
  friend class ::WinTypeKeywords;
38700
 
  friend class ::PragmaOnceUnitState;
38701
 
  friend class ::PragmaOnce;
38702
 
  friend class ::CCExprResolve;
38703
 
  friend class ::CExprResolve;
38704
 
 
38705
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38706
 
 
38707
 
  CTree *sons[3]; // open, expr, close
38708
 
 
38709
 
public:
38710
 
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
38711
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
38712
 
  }
38713
 
  static const char *NodeId ();
38714
 
  const char *NodeName () const { return NodeId (); }
38715
 
  int Sons () const { return 3; }
38716
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
38717
 
  CTree *Expr () const { return sons[1]; }
38718
 
  CTypeInfo *Type () const { return Expr ()->Type (); }
38719
 
  CExprValue *Value () const { return Expr ()->Value (); }
38720
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
38721
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
38722
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
38723
 
  }
38724
 
   private:
38725
 
  typedef CT_BracedExpr CCExprResolveExpr;
38726
 
 
38727
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38728
 
 public :
38729
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
38730
 
  typedef CT_BracedExpr CExprResolveExpr;
38731
 
 
38732
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38733
 
 public :
38734
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38735
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38736
 
};
38737
 
 
38738
 
 
38739
 
#line 38740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38740
 
} // closed Puma
38741
 
class WinIfExists;
38742
 
class WinImportHandler;
38743
 
class WinMacros;
38744
 
class CMatchSyntax;
38745
 
class ExtGnu;
38746
 
class ExtAC;
38747
 
class ExtACBuilderCoupling;
38748
 
class ExtACSyntaxCoupling;
38749
 
class ExtACTree;
38750
 
class ExtACKeywords;
38751
 
class WinAsm;
38752
 
class WinDeclSpecs;
38753
 
class WinMemberExplSpec;
38754
 
class WinTypeKeywords;
38755
 
class PragmaOnceUnitState;
38756
 
class PragmaOnce;
38757
 
class CCExprResolve;
38758
 
class CExprResolve;
38759
 
namespace Puma {
38760
 
 
38761
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38762
 
class CT_SimpleName : public CT_List, public Printable, 
38763
 
                      public CSemValue, public CSemObject {
38764
 
#line 38765 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38765
 
  friend class ::WinIfExists;
38766
 
  friend class ::WinImportHandler;
38767
 
  friend class ::WinMacros;
38768
 
  friend class ::CMatchSyntax;
38769
 
  friend class ::ExtGnu;
38770
 
  friend class ::ExtAC;
38771
 
  friend class ::ExtACBuilderCoupling;
38772
 
  friend class ::ExtACSyntaxCoupling;
38773
 
  friend class ::ExtACTree;
38774
 
  friend class ::ExtACKeywords;
38775
 
  friend class ::WinAsm;
38776
 
  friend class ::WinDeclSpecs;
38777
 
  friend class ::WinMemberExplSpec;
38778
 
  friend class ::WinTypeKeywords;
38779
 
  friend class ::PragmaOnceUnitState;
38780
 
  friend class ::PragmaOnce;
38781
 
  friend class ::CCExprResolve;
38782
 
  friend class ::CExprResolve;
38783
 
 
38784
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38785
 
 
38786
 
protected:
38787
 
  CT_SimpleName (int size) : CT_List (size, 1) {}
38788
 
  CT_SimpleName (int size, int properties) : 
38789
 
    CT_List (size, 2, properties) {}
38790
 
  
38791
 
public:
38792
 
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
38793
 
  static const char *NodeId ();
38794
 
  const char *NodeName () const { return NodeId (); }
38795
 
  virtual const char *Text () const 
38796
 
   { return Son (Sons ()-1)->token ()->text (); }
38797
 
  virtual void print (ostream &os) const { os << Text (); }
38798
 
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
38799
 
  CTypeInfo *Type () const { return type; }
38800
 
  CExprValue *Value () const { return value; }
38801
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
38802
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
38803
 
  // special new / delete with reusing memory
38804
 
  void *operator new (size_t);
38805
 
  void  operator delete (void *);
38806
 
  // classification function
38807
 
  virtual CT_SimpleName *IsSimpleName () { return this; }  
38808
 
   private:
38809
 
  typedef CT_SimpleName CCExprResolveExpr;
38810
 
 
38811
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38812
 
 public :
38813
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
38814
 
  typedef CT_SimpleName CExprResolveExpr;
38815
 
 
38816
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38817
 
 public :
38818
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38819
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38820
 
};
38821
 
 
38822
 
 
38823
 
#line 38824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38824
 
} // closed Puma
38825
 
class WinIfExists;
38826
 
class WinImportHandler;
38827
 
class WinMacros;
38828
 
class CMatchSyntax;
38829
 
class ExtGnu;
38830
 
class ExtAC;
38831
 
class ExtACBuilderCoupling;
38832
 
class ExtACSyntaxCoupling;
38833
 
class ExtACTree;
38834
 
class ExtACKeywords;
38835
 
class WinAsm;
38836
 
class WinDeclSpecs;
38837
 
class WinMemberExplSpec;
38838
 
class WinTypeKeywords;
38839
 
class PragmaOnceUnitState;
38840
 
class PragmaOnce;
38841
 
class CCExprResolve;
38842
 
class CExprResolve;
38843
 
namespace Puma {
38844
 
 
38845
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38846
 
class CT_SpecialName : public CT_SimpleName {
38847
 
#line 38848 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38848
 
  friend class ::WinIfExists;
38849
 
  friend class ::WinImportHandler;
38850
 
  friend class ::WinMacros;
38851
 
  friend class ::CMatchSyntax;
38852
 
  friend class ::ExtGnu;
38853
 
  friend class ::ExtAC;
38854
 
  friend class ::ExtACBuilderCoupling;
38855
 
  friend class ::ExtACSyntaxCoupling;
38856
 
  friend class ::ExtACTree;
38857
 
  friend class ::ExtACKeywords;
38858
 
  friend class ::WinAsm;
38859
 
  friend class ::WinDeclSpecs;
38860
 
  friend class ::WinMemberExplSpec;
38861
 
  friend class ::WinTypeKeywords;
38862
 
  friend class ::PragmaOnceUnitState;
38863
 
  friend class ::PragmaOnce;
38864
 
  friend class ::CCExprResolve;
38865
 
  friend class ::CExprResolve;
38866
 
 
38867
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38868
 
 
38869
 
  char *_name;
38870
 
  
38871
 
protected:
38872
 
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
38873
 
  
38874
 
public:
38875
 
  ~CT_SpecialName () { if (_name) delete[] _name; }
38876
 
  const char *Text () const { return _name; }
38877
 
  void Name (const char *n) { 
38878
 
    if (n) { 
38879
 
      _name = new char[strlen(n) + 1];
38880
 
      strcpy (_name,n);
38881
 
    }
38882
 
  }
38883
 
  // special new / delete with reusing memory
38884
 
  void *operator new (size_t);
38885
 
  void  operator delete (void *);
38886
 
   private:
38887
 
  typedef CT_SpecialName CCExprResolveExpr;
38888
 
 
38889
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38890
 
 public :
38891
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
38892
 
  typedef CT_SpecialName CExprResolveExpr;
38893
 
 
38894
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38895
 
 public :
38896
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38897
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38898
 
};
38899
 
 
38900
 
 
38901
 
#line 38902 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38902
 
} // closed Puma
38903
 
class WinIfExists;
38904
 
class WinImportHandler;
38905
 
class WinMacros;
38906
 
class CMatchSyntax;
38907
 
class ExtGnu;
38908
 
class ExtAC;
38909
 
class ExtACBuilderCoupling;
38910
 
class ExtACSyntaxCoupling;
38911
 
class ExtACTree;
38912
 
class ExtACKeywords;
38913
 
class WinAsm;
38914
 
class WinDeclSpecs;
38915
 
class WinMemberExplSpec;
38916
 
class WinTypeKeywords;
38917
 
class PragmaOnceUnitState;
38918
 
class PragmaOnce;
38919
 
class CCExprResolve;
38920
 
class CExprResolve;
38921
 
namespace Puma {
38922
 
 
38923
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38924
 
class CT_PrivateName : public CT_SpecialName {
38925
 
#line 38926 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38926
 
  friend class ::WinIfExists;
38927
 
  friend class ::WinImportHandler;
38928
 
  friend class ::WinMacros;
38929
 
  friend class ::CMatchSyntax;
38930
 
  friend class ::ExtGnu;
38931
 
  friend class ::ExtAC;
38932
 
  friend class ::ExtACBuilderCoupling;
38933
 
  friend class ::ExtACSyntaxCoupling;
38934
 
  friend class ::ExtACTree;
38935
 
  friend class ::ExtACKeywords;
38936
 
  friend class ::WinAsm;
38937
 
  friend class ::WinDeclSpecs;
38938
 
  friend class ::WinMemberExplSpec;
38939
 
  friend class ::WinTypeKeywords;
38940
 
  friend class ::PragmaOnceUnitState;
38941
 
  friend class ::PragmaOnce;
38942
 
  friend class ::CCExprResolve;
38943
 
  friend class ::CExprResolve;
38944
 
 
38945
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38946
 
 
38947
 
public:
38948
 
  CT_PrivateName (const char *n) { Name (n); }
38949
 
  static const char *NodeId ();
38950
 
  const char *NodeName () const { return NodeId (); }
38951
 
  int Sons () const { return 0; }
38952
 
  CTree *Son (int n) const { return (CTree*)0; }
38953
 
  // special new / delete with reusing memory
38954
 
  void *operator new (size_t);
38955
 
  void  operator delete (void *);
38956
 
   private:
38957
 
  typedef CT_PrivateName CCExprResolveExpr;
38958
 
 
38959
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38960
 
 public :
38961
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
38962
 
  typedef CT_PrivateName CExprResolveExpr;
38963
 
 
38964
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38965
 
 public :
38966
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38967
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38968
 
};
38969
 
 
38970
 
 
38971
 
#line 38972 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38972
 
} // closed Puma
38973
 
class WinIfExists;
38974
 
class WinImportHandler;
38975
 
class WinMacros;
38976
 
class CMatchSyntax;
38977
 
class ExtGnu;
38978
 
class ExtAC;
38979
 
class ExtACBuilderCoupling;
38980
 
class ExtACSyntaxCoupling;
38981
 
class ExtACTree;
38982
 
class ExtACKeywords;
38983
 
class WinAsm;
38984
 
class WinDeclSpecs;
38985
 
class WinMemberExplSpec;
38986
 
class WinTypeKeywords;
38987
 
class PragmaOnceUnitState;
38988
 
class PragmaOnce;
38989
 
class CCExprResolve;
38990
 
class CExprResolve;
38991
 
namespace Puma {
38992
 
 
38993
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38994
 
class CT_DestructorName : public CT_SpecialName {
38995
 
#line 38996 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
38996
 
  friend class ::WinIfExists;
38997
 
  friend class ::WinImportHandler;
38998
 
  friend class ::WinMacros;
38999
 
  friend class ::CMatchSyntax;
39000
 
  friend class ::ExtGnu;
39001
 
  friend class ::ExtAC;
39002
 
  friend class ::ExtACBuilderCoupling;
39003
 
  friend class ::ExtACSyntaxCoupling;
39004
 
  friend class ::ExtACTree;
39005
 
  friend class ::ExtACKeywords;
39006
 
  friend class ::WinAsm;
39007
 
  friend class ::WinDeclSpecs;
39008
 
  friend class ::WinMemberExplSpec;
39009
 
  friend class ::WinTypeKeywords;
39010
 
  friend class ::PragmaOnceUnitState;
39011
 
  friend class ::PragmaOnce;
39012
 
  friend class ::CCExprResolve;
39013
 
  friend class ::CExprResolve;
39014
 
 
39015
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39016
 
 
39017
 
public:
39018
 
  CT_DestructorName (CTree *, CTree *);
39019
 
  static const char *NodeId ();
39020
 
  const char *NodeName () const { return NodeId (); }
39021
 
  // special new / delete with reusing memory
39022
 
  void *operator new (size_t);
39023
 
  void  operator delete (void *);
39024
 
   private:
39025
 
  typedef CT_DestructorName CCExprResolveExpr;
39026
 
 
39027
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39028
 
 public :
39029
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
39030
 
  typedef CT_DestructorName CExprResolveExpr;
39031
 
 
39032
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39033
 
 public :
39034
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39035
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39036
 
};
39037
 
 
39038
 
 
39039
 
#line 39040 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39040
 
} // closed Puma
39041
 
class WinIfExists;
39042
 
class WinImportHandler;
39043
 
class WinMacros;
39044
 
class CMatchSyntax;
39045
 
class ExtGnu;
39046
 
class ExtAC;
39047
 
class ExtACBuilderCoupling;
39048
 
class ExtACSyntaxCoupling;
39049
 
class ExtACTree;
39050
 
class ExtACKeywords;
39051
 
class WinAsm;
39052
 
class WinDeclSpecs;
39053
 
class WinMemberExplSpec;
39054
 
class WinTypeKeywords;
39055
 
class PragmaOnceUnitState;
39056
 
class PragmaOnce;
39057
 
class CCExprResolve;
39058
 
class CExprResolve;
39059
 
namespace Puma {
39060
 
 
39061
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39062
 
class CT_TemplateName : public CT_SpecialName {
39063
 
#line 39064 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39064
 
  friend class ::WinIfExists;
39065
 
  friend class ::WinImportHandler;
39066
 
  friend class ::WinMacros;
39067
 
  friend class ::CMatchSyntax;
39068
 
  friend class ::ExtGnu;
39069
 
  friend class ::ExtAC;
39070
 
  friend class ::ExtACBuilderCoupling;
39071
 
  friend class ::ExtACSyntaxCoupling;
39072
 
  friend class ::ExtACTree;
39073
 
  friend class ::ExtACKeywords;
39074
 
  friend class ::WinAsm;
39075
 
  friend class ::WinDeclSpecs;
39076
 
  friend class ::WinMemberExplSpec;
39077
 
  friend class ::WinTypeKeywords;
39078
 
  friend class ::PragmaOnceUnitState;
39079
 
  friend class ::PragmaOnce;
39080
 
  friend class ::CCExprResolve;
39081
 
  friend class ::CExprResolve;
39082
 
 
39083
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39084
 
 
39085
 
public:
39086
 
  CT_TemplateName (CTree *n, CTree *a) 
39087
 
   { AddSon (n); AddSon (a); }
39088
 
  static const char *NodeId ();
39089
 
  const char *NodeName () const { return NodeId (); }
39090
 
  CT_TemplateArgList *Arguments () const 
39091
 
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
39092
 
  CT_SimpleName *TemplateName () const 
39093
 
   { return (CT_SimpleName*)Son (Sons ()-2); }
39094
 
  // may change in the future
39095
 
  const char *Text () const { return TemplateName ()->Text (); }
39096
 
  // special new / delete with reusing memory
39097
 
  void *operator new (size_t);
39098
 
  void  operator delete (void *);
39099
 
   private:
39100
 
  typedef CT_TemplateName CCExprResolveExpr;
39101
 
 
39102
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39103
 
 public :
39104
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
39105
 
  typedef CT_TemplateName CExprResolveExpr;
39106
 
 
39107
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39108
 
 public :
39109
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39110
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39111
 
};
39112
 
 
39113
 
 
39114
 
#line 39115 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39115
 
} // closed Puma
39116
 
class WinIfExists;
39117
 
class WinImportHandler;
39118
 
class WinMacros;
39119
 
class CMatchSyntax;
39120
 
class ExtGnu;
39121
 
class ExtAC;
39122
 
class ExtACBuilderCoupling;
39123
 
class ExtACSyntaxCoupling;
39124
 
class ExtACTree;
39125
 
class ExtACKeywords;
39126
 
class WinAsm;
39127
 
class WinDeclSpecs;
39128
 
class WinMemberExplSpec;
39129
 
class WinTypeKeywords;
39130
 
class PragmaOnceUnitState;
39131
 
class PragmaOnce;
39132
 
class CCExprResolve;
39133
 
class CExprResolve;
39134
 
namespace Puma {
39135
 
 
39136
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39137
 
class CT_OperatorName : public CT_SpecialName {
39138
 
#line 39139 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39139
 
  friend class ::WinIfExists;
39140
 
  friend class ::WinImportHandler;
39141
 
  friend class ::WinMacros;
39142
 
  friend class ::CMatchSyntax;
39143
 
  friend class ::ExtGnu;
39144
 
  friend class ::ExtAC;
39145
 
  friend class ::ExtACBuilderCoupling;
39146
 
  friend class ::ExtACSyntaxCoupling;
39147
 
  friend class ::ExtACTree;
39148
 
  friend class ::ExtACKeywords;
39149
 
  friend class ::WinAsm;
39150
 
  friend class ::WinDeclSpecs;
39151
 
  friend class ::WinMemberExplSpec;
39152
 
  friend class ::WinTypeKeywords;
39153
 
  friend class ::PragmaOnceUnitState;
39154
 
  friend class ::PragmaOnce;
39155
 
  friend class ::CCExprResolve;
39156
 
  friend class ::CExprResolve;
39157
 
 
39158
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39159
 
 
39160
 
  int _oper;
39161
 
 
39162
 
public:
39163
 
  enum { // complex operators
39164
 
    FCT_CALL = -100,
39165
 
    SUBSCRIPT,
39166
 
    NEW_ARRAY,
39167
 
    DEL_ARRAY
39168
 
  };
39169
 
 
39170
 
public:
39171
 
  CT_OperatorName (CTree *);
39172
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
39173
 
  static const char *NodeId ();
39174
 
  const char *NodeName () const { return NodeId (); }
39175
 
  int Operator () const { return _oper; }
39176
 
  // special new / delete with reusing memory
39177
 
  void *operator new (size_t);
39178
 
  void  operator delete (void *);
39179
 
   private:
39180
 
  typedef CT_OperatorName CCExprResolveExpr;
39181
 
 
39182
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39183
 
 public :
39184
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
39185
 
  typedef CT_OperatorName CExprResolveExpr;
39186
 
 
39187
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39188
 
 public :
39189
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39190
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39191
 
};
39192
 
 
39193
 
 
39194
 
#line 39195 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39195
 
} // closed Puma
39196
 
class WinIfExists;
39197
 
class WinImportHandler;
39198
 
class WinMacros;
39199
 
class CMatchSyntax;
39200
 
class ExtGnu;
39201
 
class ExtAC;
39202
 
class ExtACBuilderCoupling;
39203
 
class ExtACSyntaxCoupling;
39204
 
class ExtACTree;
39205
 
class ExtACKeywords;
39206
 
class WinAsm;
39207
 
class WinDeclSpecs;
39208
 
class WinMemberExplSpec;
39209
 
class WinTypeKeywords;
39210
 
class PragmaOnceUnitState;
39211
 
class PragmaOnce;
39212
 
class CCExprResolve;
39213
 
class CExprResolve;
39214
 
namespace Puma {
39215
 
 
39216
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39217
 
class CT_ConversionName : public CT_SpecialName {
39218
 
#line 39219 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39219
 
  friend class ::WinIfExists;
39220
 
  friend class ::WinImportHandler;
39221
 
  friend class ::WinMacros;
39222
 
  friend class ::CMatchSyntax;
39223
 
  friend class ::ExtGnu;
39224
 
  friend class ::ExtAC;
39225
 
  friend class ::ExtACBuilderCoupling;
39226
 
  friend class ::ExtACSyntaxCoupling;
39227
 
  friend class ::ExtACTree;
39228
 
  friend class ::ExtACKeywords;
39229
 
  friend class ::WinAsm;
39230
 
  friend class ::WinDeclSpecs;
39231
 
  friend class ::WinMemberExplSpec;
39232
 
  friend class ::WinTypeKeywords;
39233
 
  friend class ::PragmaOnceUnitState;
39234
 
  friend class ::PragmaOnce;
39235
 
  friend class ::CCExprResolve;
39236
 
  friend class ::CExprResolve;
39237
 
 
39238
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39239
 
 
39240
 
public:
39241
 
  CT_ConversionName (CTree *, CTree *);
39242
 
  static const char *NodeId ();
39243
 
  const char *NodeName () const { return NodeId (); }
39244
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
39245
 
  // special new / delete with reusing memory
39246
 
  void *operator new (size_t);
39247
 
  void  operator delete (void *);
39248
 
   private:
39249
 
  typedef CT_ConversionName CCExprResolveExpr;
39250
 
 
39251
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39252
 
 public :
39253
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
39254
 
  typedef CT_ConversionName CExprResolveExpr;
39255
 
 
39256
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39257
 
 public :
39258
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39259
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39260
 
};
39261
 
 
39262
 
 
39263
 
#line 39264 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.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 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39286
 
class CT_QualName : public CT_SimpleName {
39287
 
#line 39288 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.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 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39308
 
 
39309
 
public:
39310
 
  CT_QualName (int size = 3) : 
39311
 
    CT_SimpleName (size, CT_List::SEPARATORS) {}
39312
 
  static const char *NodeId ();
39313
 
  const char *NodeName () const { return NodeId (); }
39314
 
  void print (ostream &) const;
39315
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
39316
 
  const char *Text () const { return Name ()->Text (); }
39317
 
  CTypeInfo *Type () const { return Name ()->Type (); }
39318
 
  CExprValue *Value () const { return Name ()->Value (); }
39319
 
  CSemValue *SemValue () const { return Name ()->SemValue (); }
39320
 
  CSemObject *SemObject () const { return Name ()->SemObject (); }
39321
 
  // special new / delete with reusing memory
39322
 
  void *operator new (size_t);
39323
 
  void  operator delete (void *);
39324
 
   private:
39325
 
  typedef CT_QualName CCExprResolveExpr;
39326
 
 
39327
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39328
 
 public :
39329
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
39330
 
  typedef CT_QualName CExprResolveExpr;
39331
 
 
39332
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39333
 
 public :
39334
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39335
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39336
 
};
39337
 
 
39338
 
 
39339
 
#line 39340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39340
 
} // closed Puma
39341
 
class WinIfExists;
39342
 
class WinImportHandler;
39343
 
class WinMacros;
39344
 
class CMatchSyntax;
39345
 
class ExtGnu;
39346
 
class ExtAC;
39347
 
class ExtACBuilderCoupling;
39348
 
class ExtACSyntaxCoupling;
39349
 
class ExtACTree;
39350
 
class ExtACKeywords;
39351
 
class WinAsm;
39352
 
class WinDeclSpecs;
39353
 
class WinMemberExplSpec;
39354
 
class WinTypeKeywords;
39355
 
class PragmaOnceUnitState;
39356
 
class PragmaOnce;
39357
 
class CCExprResolve;
39358
 
class CExprResolve;
39359
 
namespace Puma {
39360
 
 
39361
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39362
 
class CT_RootQualName : public CT_QualName {
39363
 
#line 39364 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39364
 
  friend class ::WinIfExists;
39365
 
  friend class ::WinImportHandler;
39366
 
  friend class ::WinMacros;
39367
 
  friend class ::CMatchSyntax;
39368
 
  friend class ::ExtGnu;
39369
 
  friend class ::ExtAC;
39370
 
  friend class ::ExtACBuilderCoupling;
39371
 
  friend class ::ExtACSyntaxCoupling;
39372
 
  friend class ::ExtACTree;
39373
 
  friend class ::ExtACKeywords;
39374
 
  friend class ::WinAsm;
39375
 
  friend class ::WinDeclSpecs;
39376
 
  friend class ::WinMemberExplSpec;
39377
 
  friend class ::WinTypeKeywords;
39378
 
  friend class ::PragmaOnceUnitState;
39379
 
  friend class ::PragmaOnce;
39380
 
  friend class ::CCExprResolve;
39381
 
  friend class ::CExprResolve;
39382
 
 
39383
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39384
 
 
39385
 
public:
39386
 
  CT_RootQualName (int size = 2) : 
39387
 
    CT_QualName (size) { AddProperties (INTRO); }
39388
 
  static const char *NodeId ();
39389
 
  const char *NodeName () const { return NodeId (); }
39390
 
  // special new / delete with reusing memory
39391
 
  void *operator new (size_t);
39392
 
  void  operator delete (void *);
39393
 
   private:
39394
 
  typedef CT_RootQualName CCExprResolveExpr;
39395
 
 
39396
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39397
 
 public :
39398
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
39399
 
  typedef CT_RootQualName CExprResolveExpr;
39400
 
 
39401
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39402
 
 public :
39403
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39404
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39405
 
};
39406
 
 
39407
 
 
39408
 
#line 39409 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39409
 
} // closed Puma
39410
 
class WinIfExists;
39411
 
class WinImportHandler;
39412
 
class WinMacros;
39413
 
class CMatchSyntax;
39414
 
class ExtGnu;
39415
 
class ExtAC;
39416
 
class ExtACBuilderCoupling;
39417
 
class ExtACSyntaxCoupling;
39418
 
class ExtACTree;
39419
 
class ExtACKeywords;
39420
 
class WinAsm;
39421
 
class WinDeclSpecs;
39422
 
class WinMemberExplSpec;
39423
 
class WinTypeKeywords;
39424
 
class PragmaOnceUnitState;
39425
 
class PragmaOnce;
39426
 
class CCExprResolve;
39427
 
class CExprResolve;
39428
 
namespace Puma {
39429
 
 
39430
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39431
 
class CT_BinaryExpr : public CT_Expression {
39432
 
#line 39433 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39433
 
  friend class ::WinIfExists;
39434
 
  friend class ::WinImportHandler;
39435
 
  friend class ::WinMacros;
39436
 
  friend class ::CMatchSyntax;
39437
 
  friend class ::ExtGnu;
39438
 
  friend class ::ExtAC;
39439
 
  friend class ::ExtACBuilderCoupling;
39440
 
  friend class ::ExtACSyntaxCoupling;
39441
 
  friend class ::ExtACTree;
39442
 
  friend class ::ExtACKeywords;
39443
 
  friend class ::WinAsm;
39444
 
  friend class ::WinDeclSpecs;
39445
 
  friend class ::WinMemberExplSpec;
39446
 
  friend class ::WinTypeKeywords;
39447
 
  friend class ::PragmaOnceUnitState;
39448
 
  friend class ::PragmaOnce;
39449
 
  friend class ::CCExprResolve;
39450
 
  friend class ::CExprResolve;
39451
 
 
39452
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39453
 
 
39454
 
  CTree *sons[3]; // expr, oper, expr
39455
 
 
39456
 
public:
39457
 
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
39458
 
    sons[0] = l; sons[1] = o; sons[2] = r;
39459
 
  }
39460
 
  static const char *NodeId ();
39461
 
  const char *NodeName () const { return NodeId (); }
39462
 
  int Sons () const { return 3; }
39463
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
39464
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39465
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
39466
 
  }
39467
 
   private:
39468
 
  typedef CT_BinaryExpr CCExprResolveExpr;
39469
 
 
39470
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39471
 
 public :
39472
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
39473
 
  typedef CT_BinaryExpr CExprResolveExpr;
39474
 
 
39475
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39476
 
 public :
39477
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39478
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39479
 
};
39480
 
 
39481
 
 
39482
 
#line 39483 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39483
 
} // closed Puma
39484
 
class WinIfExists;
39485
 
class WinImportHandler;
39486
 
class WinMacros;
39487
 
class CMatchSyntax;
39488
 
class ExtGnu;
39489
 
class ExtAC;
39490
 
class ExtACBuilderCoupling;
39491
 
class ExtACSyntaxCoupling;
39492
 
class ExtACTree;
39493
 
class ExtACKeywords;
39494
 
class WinAsm;
39495
 
class WinDeclSpecs;
39496
 
class WinMemberExplSpec;
39497
 
class WinTypeKeywords;
39498
 
class PragmaOnceUnitState;
39499
 
class PragmaOnce;
39500
 
class CCExprResolve;
39501
 
class CExprResolve;
39502
 
namespace Puma {
39503
 
 
39504
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39505
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
39506
 
#line 39507 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39507
 
  friend class ::WinIfExists;
39508
 
  friend class ::WinImportHandler;
39509
 
  friend class ::WinMacros;
39510
 
  friend class ::CMatchSyntax;
39511
 
  friend class ::ExtGnu;
39512
 
  friend class ::ExtAC;
39513
 
  friend class ::ExtACBuilderCoupling;
39514
 
  friend class ::ExtACSyntaxCoupling;
39515
 
  friend class ::ExtACTree;
39516
 
  friend class ::ExtACKeywords;
39517
 
  friend class ::WinAsm;
39518
 
  friend class ::WinDeclSpecs;
39519
 
  friend class ::WinMemberExplSpec;
39520
 
  friend class ::WinTypeKeywords;
39521
 
  friend class ::PragmaOnceUnitState;
39522
 
  friend class ::PragmaOnce;
39523
 
  friend class ::CCExprResolve;
39524
 
  friend class ::CExprResolve;
39525
 
 
39526
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39527
 
 
39528
 
public:
39529
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
39530
 
    CT_BinaryExpr (e, o, i) {}
39531
 
  static const char *NodeId ();
39532
 
  const char *NodeName () const { return NodeId (); }
39533
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
39534
 
   private:
39535
 
  typedef CT_MembPtrExpr CCExprResolveExpr;
39536
 
 
39537
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39538
 
 public :
39539
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
39540
 
  typedef CT_MembPtrExpr CExprResolveExpr;
39541
 
 
39542
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39543
 
 public :
39544
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39545
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39546
 
};
39547
 
 
39548
 
 
39549
 
#line 39550 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39550
 
} // closed Puma
39551
 
class WinIfExists;
39552
 
class WinImportHandler;
39553
 
class WinMacros;
39554
 
class CMatchSyntax;
39555
 
class ExtGnu;
39556
 
class ExtAC;
39557
 
class ExtACBuilderCoupling;
39558
 
class ExtACSyntaxCoupling;
39559
 
class ExtACTree;
39560
 
class ExtACKeywords;
39561
 
class WinAsm;
39562
 
class WinDeclSpecs;
39563
 
class WinMemberExplSpec;
39564
 
class WinTypeKeywords;
39565
 
class PragmaOnceUnitState;
39566
 
class PragmaOnce;
39567
 
class CCExprResolve;
39568
 
class CExprResolve;
39569
 
namespace Puma {
39570
 
 
39571
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39572
 
class CT_MembRefExpr : public CT_MembPtrExpr {
39573
 
#line 39574 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39574
 
  friend class ::WinIfExists;
39575
 
  friend class ::WinImportHandler;
39576
 
  friend class ::WinMacros;
39577
 
  friend class ::CMatchSyntax;
39578
 
  friend class ::ExtGnu;
39579
 
  friend class ::ExtAC;
39580
 
  friend class ::ExtACBuilderCoupling;
39581
 
  friend class ::ExtACSyntaxCoupling;
39582
 
  friend class ::ExtACTree;
39583
 
  friend class ::ExtACKeywords;
39584
 
  friend class ::WinAsm;
39585
 
  friend class ::WinDeclSpecs;
39586
 
  friend class ::WinMemberExplSpec;
39587
 
  friend class ::WinTypeKeywords;
39588
 
  friend class ::PragmaOnceUnitState;
39589
 
  friend class ::PragmaOnce;
39590
 
  friend class ::CCExprResolve;
39591
 
  friend class ::CExprResolve;
39592
 
 
39593
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39594
 
 
39595
 
public:
39596
 
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
39597
 
    CT_MembPtrExpr (e, o, i) {}
39598
 
  static const char *NodeId ();
39599
 
  const char *NodeName () const { return NodeId (); }
39600
 
   private:
39601
 
  typedef CT_MembRefExpr CCExprResolveExpr;
39602
 
 
39603
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39604
 
 public :
39605
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
39606
 
  typedef CT_MembRefExpr CExprResolveExpr;
39607
 
 
39608
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39609
 
 public :
39610
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39611
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39612
 
};
39613
 
 
39614
 
 
39615
 
#line 39616 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39616
 
} // closed Puma
39617
 
class WinIfExists;
39618
 
class WinImportHandler;
39619
 
class WinMacros;
39620
 
class CMatchSyntax;
39621
 
class ExtGnu;
39622
 
class ExtAC;
39623
 
class ExtACBuilderCoupling;
39624
 
class ExtACSyntaxCoupling;
39625
 
class ExtACTree;
39626
 
class ExtACKeywords;
39627
 
class WinAsm;
39628
 
class WinDeclSpecs;
39629
 
class WinMemberExplSpec;
39630
 
class WinTypeKeywords;
39631
 
class PragmaOnceUnitState;
39632
 
class PragmaOnce;
39633
 
class CCExprResolve;
39634
 
class CExprResolve;
39635
 
namespace Puma {
39636
 
 
39637
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39638
 
class CT_UnaryExpr : public CT_Expression {
39639
 
#line 39640 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39640
 
  friend class ::WinIfExists;
39641
 
  friend class ::WinImportHandler;
39642
 
  friend class ::WinMacros;
39643
 
  friend class ::CMatchSyntax;
39644
 
  friend class ::ExtGnu;
39645
 
  friend class ::ExtAC;
39646
 
  friend class ::ExtACBuilderCoupling;
39647
 
  friend class ::ExtACSyntaxCoupling;
39648
 
  friend class ::ExtACTree;
39649
 
  friend class ::ExtACKeywords;
39650
 
  friend class ::WinAsm;
39651
 
  friend class ::WinDeclSpecs;
39652
 
  friend class ::WinMemberExplSpec;
39653
 
  friend class ::WinTypeKeywords;
39654
 
  friend class ::PragmaOnceUnitState;
39655
 
  friend class ::PragmaOnce;
39656
 
  friend class ::CCExprResolve;
39657
 
  friend class ::CExprResolve;
39658
 
 
39659
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39660
 
 
39661
 
  CTree *sons[2]; // oper, expr
39662
 
 
39663
 
public:
39664
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
39665
 
  static const char *NodeId ();
39666
 
  const char *NodeName () const { return NodeId (); }
39667
 
  int Sons () const { return 2; }
39668
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
39669
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39670
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
39671
 
  }
39672
 
  CTree *Expr () const { return sons[1]; }
39673
 
   private:
39674
 
  typedef CT_UnaryExpr CCExprResolveExpr;
39675
 
 
39676
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39677
 
 public :
39678
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
39679
 
  typedef CT_UnaryExpr CExprResolveExpr;
39680
 
 
39681
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39682
 
 public :
39683
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39684
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39685
 
};
39686
 
 
39687
 
 
39688
 
#line 39689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39689
 
} // closed Puma
39690
 
class WinIfExists;
39691
 
class WinImportHandler;
39692
 
class WinMacros;
39693
 
class CMatchSyntax;
39694
 
class ExtGnu;
39695
 
class ExtAC;
39696
 
class ExtACBuilderCoupling;
39697
 
class ExtACSyntaxCoupling;
39698
 
class ExtACTree;
39699
 
class ExtACKeywords;
39700
 
class WinAsm;
39701
 
class WinDeclSpecs;
39702
 
class WinMemberExplSpec;
39703
 
class WinTypeKeywords;
39704
 
class PragmaOnceUnitState;
39705
 
class PragmaOnce;
39706
 
class CCExprResolve;
39707
 
class CExprResolve;
39708
 
namespace Puma {
39709
 
 
39710
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39711
 
class CT_PostfixExpr : public CT_UnaryExpr {
39712
 
#line 39713 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39713
 
  friend class ::WinIfExists;
39714
 
  friend class ::WinImportHandler;
39715
 
  friend class ::WinMacros;
39716
 
  friend class ::CMatchSyntax;
39717
 
  friend class ::ExtGnu;
39718
 
  friend class ::ExtAC;
39719
 
  friend class ::ExtACBuilderCoupling;
39720
 
  friend class ::ExtACSyntaxCoupling;
39721
 
  friend class ::ExtACTree;
39722
 
  friend class ::ExtACKeywords;
39723
 
  friend class ::WinAsm;
39724
 
  friend class ::WinDeclSpecs;
39725
 
  friend class ::WinMemberExplSpec;
39726
 
  friend class ::WinTypeKeywords;
39727
 
  friend class ::PragmaOnceUnitState;
39728
 
  friend class ::PragmaOnce;
39729
 
  friend class ::CCExprResolve;
39730
 
  friend class ::CExprResolve;
39731
 
 
39732
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39733
 
 
39734
 
public:
39735
 
  CT_PostfixExpr (CTree *e, CTree *o) :
39736
 
    CT_UnaryExpr (e, o) {}
39737
 
  static const char *NodeId ();
39738
 
  const char *NodeName () const { return NodeId (); }
39739
 
   private:
39740
 
  typedef CT_PostfixExpr CCExprResolveExpr;
39741
 
 
39742
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39743
 
 public :
39744
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
39745
 
  typedef CT_PostfixExpr CExprResolveExpr;
39746
 
 
39747
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39748
 
 public :
39749
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39750
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39751
 
};
39752
 
 
39753
 
 
39754
 
#line 39755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39755
 
} // closed Puma
39756
 
class WinIfExists;
39757
 
class WinImportHandler;
39758
 
class WinMacros;
39759
 
class CMatchSyntax;
39760
 
class ExtGnu;
39761
 
class ExtAC;
39762
 
class ExtACBuilderCoupling;
39763
 
class ExtACSyntaxCoupling;
39764
 
class ExtACTree;
39765
 
class ExtACKeywords;
39766
 
class WinAsm;
39767
 
class WinDeclSpecs;
39768
 
class WinMemberExplSpec;
39769
 
class WinTypeKeywords;
39770
 
class PragmaOnceUnitState;
39771
 
class PragmaOnce;
39772
 
class CCExprResolve;
39773
 
class CExprResolve;
39774
 
namespace Puma {
39775
 
 
39776
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39777
 
class CT_AddrExpr : public CT_UnaryExpr {
39778
 
#line 39779 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39779
 
  friend class ::WinIfExists;
39780
 
  friend class ::WinImportHandler;
39781
 
  friend class ::WinMacros;
39782
 
  friend class ::CMatchSyntax;
39783
 
  friend class ::ExtGnu;
39784
 
  friend class ::ExtAC;
39785
 
  friend class ::ExtACBuilderCoupling;
39786
 
  friend class ::ExtACSyntaxCoupling;
39787
 
  friend class ::ExtACTree;
39788
 
  friend class ::ExtACKeywords;
39789
 
  friend class ::WinAsm;
39790
 
  friend class ::WinDeclSpecs;
39791
 
  friend class ::WinMemberExplSpec;
39792
 
  friend class ::WinTypeKeywords;
39793
 
  friend class ::PragmaOnceUnitState;
39794
 
  friend class ::PragmaOnce;
39795
 
  friend class ::CCExprResolve;
39796
 
  friend class ::CExprResolve;
39797
 
 
39798
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39799
 
 
39800
 
public:
39801
 
  CT_AddrExpr (CTree *o, CTree *e) :
39802
 
    CT_UnaryExpr (o, e) {}
39803
 
  static const char *NodeId ();
39804
 
  const char *NodeName () const { return NodeId (); }
39805
 
   private:
39806
 
  typedef CT_AddrExpr CCExprResolveExpr;
39807
 
 
39808
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39809
 
 public :
39810
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
39811
 
  typedef CT_AddrExpr CExprResolveExpr;
39812
 
 
39813
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39814
 
 public :
39815
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39816
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39817
 
};
39818
 
 
39819
 
 
39820
 
#line 39821 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39821
 
} // closed Puma
39822
 
class WinIfExists;
39823
 
class WinImportHandler;
39824
 
class WinMacros;
39825
 
class CMatchSyntax;
39826
 
class ExtGnu;
39827
 
class ExtAC;
39828
 
class ExtACBuilderCoupling;
39829
 
class ExtACSyntaxCoupling;
39830
 
class ExtACTree;
39831
 
class ExtACKeywords;
39832
 
class WinAsm;
39833
 
class WinDeclSpecs;
39834
 
class WinMemberExplSpec;
39835
 
class WinTypeKeywords;
39836
 
class PragmaOnceUnitState;
39837
 
class PragmaOnce;
39838
 
class CCExprResolve;
39839
 
class CExprResolve;
39840
 
namespace Puma {
39841
 
 
39842
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39843
 
class CT_DerefExpr : public CT_UnaryExpr {
39844
 
#line 39845 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39845
 
  friend class ::WinIfExists;
39846
 
  friend class ::WinImportHandler;
39847
 
  friend class ::WinMacros;
39848
 
  friend class ::CMatchSyntax;
39849
 
  friend class ::ExtGnu;
39850
 
  friend class ::ExtAC;
39851
 
  friend class ::ExtACBuilderCoupling;
39852
 
  friend class ::ExtACSyntaxCoupling;
39853
 
  friend class ::ExtACTree;
39854
 
  friend class ::ExtACKeywords;
39855
 
  friend class ::WinAsm;
39856
 
  friend class ::WinDeclSpecs;
39857
 
  friend class ::WinMemberExplSpec;
39858
 
  friend class ::WinTypeKeywords;
39859
 
  friend class ::PragmaOnceUnitState;
39860
 
  friend class ::PragmaOnce;
39861
 
  friend class ::CCExprResolve;
39862
 
  friend class ::CExprResolve;
39863
 
 
39864
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39865
 
 
39866
 
public:
39867
 
  CT_DerefExpr (CTree *o, CTree *e) :
39868
 
    CT_UnaryExpr (o, e) {}
39869
 
  static const char *NodeId ();
39870
 
  const char *NodeName () const { return NodeId (); }
39871
 
   private:
39872
 
  typedef CT_DerefExpr CCExprResolveExpr;
39873
 
 
39874
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39875
 
 public :
39876
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
39877
 
  typedef CT_DerefExpr CExprResolveExpr;
39878
 
 
39879
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39880
 
 public :
39881
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39882
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39883
 
};
39884
 
 
39885
 
 
39886
 
#line 39887 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39887
 
} // closed Puma
39888
 
class WinIfExists;
39889
 
class WinImportHandler;
39890
 
class WinMacros;
39891
 
class CMatchSyntax;
39892
 
class ExtGnu;
39893
 
class ExtAC;
39894
 
class ExtACBuilderCoupling;
39895
 
class ExtACSyntaxCoupling;
39896
 
class ExtACTree;
39897
 
class ExtACKeywords;
39898
 
class WinAsm;
39899
 
class WinDeclSpecs;
39900
 
class WinMemberExplSpec;
39901
 
class WinTypeKeywords;
39902
 
class PragmaOnceUnitState;
39903
 
class PragmaOnce;
39904
 
class CCExprResolve;
39905
 
class CExprResolve;
39906
 
namespace Puma {
39907
 
 
39908
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39909
 
class CT_DeleteExpr : public CT_Expression, public CSemObject {
39910
 
#line 39911 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39911
 
  friend class ::WinIfExists;
39912
 
  friend class ::WinImportHandler;
39913
 
  friend class ::WinMacros;
39914
 
  friend class ::CMatchSyntax;
39915
 
  friend class ::ExtGnu;
39916
 
  friend class ::ExtAC;
39917
 
  friend class ::ExtACBuilderCoupling;
39918
 
  friend class ::ExtACSyntaxCoupling;
39919
 
  friend class ::ExtACTree;
39920
 
  friend class ::ExtACKeywords;
39921
 
  friend class ::WinAsm;
39922
 
  friend class ::WinDeclSpecs;
39923
 
  friend class ::WinMemberExplSpec;
39924
 
  friend class ::WinTypeKeywords;
39925
 
  friend class ::PragmaOnceUnitState;
39926
 
  friend class ::PragmaOnce;
39927
 
  friend class ::CCExprResolve;
39928
 
  friend class ::CExprResolve;
39929
 
 
39930
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39931
 
 
39932
 
  CTree *sons[2]; // oper, expr
39933
 
 
39934
 
public:
39935
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
39936
 
  static const char *NodeId ();
39937
 
  const char *NodeName () const { return NodeId (); }
39938
 
  int Sons () const { return 2; }
39939
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
39940
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39941
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
39942
 
  }
39943
 
  CTree *Expr () const { return sons[1]; }
39944
 
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
39945
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
39946
 
   private:
39947
 
  typedef CT_DeleteExpr CCExprResolveExpr;
39948
 
 
39949
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
39950
 
 public :
39951
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
39952
 
  typedef CT_DeleteExpr CExprResolveExpr;
39953
 
 
39954
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
39955
 
 public :
39956
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
39957
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39958
 
};
39959
 
 
39960
 
 
39961
 
#line 39962 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39962
 
} // closed Puma
39963
 
class WinIfExists;
39964
 
class WinImportHandler;
39965
 
class WinMacros;
39966
 
class CMatchSyntax;
39967
 
class ExtGnu;
39968
 
class ExtAC;
39969
 
class ExtACBuilderCoupling;
39970
 
class ExtACSyntaxCoupling;
39971
 
class ExtACTree;
39972
 
class ExtACKeywords;
39973
 
class WinAsm;
39974
 
class WinDeclSpecs;
39975
 
class WinMemberExplSpec;
39976
 
class WinTypeKeywords;
39977
 
class PragmaOnceUnitState;
39978
 
class PragmaOnce;
39979
 
class CCExprResolve;
39980
 
class CExprResolve;
39981
 
namespace Puma {
39982
 
 
39983
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
39984
 
class CT_NewExpr : public CT_Expression, public CSemObject {
39985
 
#line 39986 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
39986
 
  friend class ::WinIfExists;
39987
 
  friend class ::WinImportHandler;
39988
 
  friend class ::WinMacros;
39989
 
  friend class ::CMatchSyntax;
39990
 
  friend class ::ExtGnu;
39991
 
  friend class ::ExtAC;
39992
 
  friend class ::ExtACBuilderCoupling;
39993
 
  friend class ::ExtACSyntaxCoupling;
39994
 
  friend class ::ExtACTree;
39995
 
  friend class ::ExtACKeywords;
39996
 
  friend class ::WinAsm;
39997
 
  friend class ::WinDeclSpecs;
39998
 
  friend class ::WinMemberExplSpec;
39999
 
  friend class ::WinTypeKeywords;
40000
 
  friend class ::PragmaOnceUnitState;
40001
 
  friend class ::PragmaOnce;
40002
 
  friend class ::CCExprResolve;
40003
 
  friend class ::CExprResolve;
40004
 
 
40005
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40006
 
 
40007
 
  CTree *sons[6]; // oper, placement, open, type, close, init
40008
 
 
40009
 
public:
40010
 
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
40011
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
40012
 
  }
40013
 
  static const char *NodeId ();
40014
 
  const char *NodeName () const { return NodeId (); }
40015
 
  int Sons () const { return CTree::Sons (sons, 6); }
40016
 
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
40017
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40018
 
    CTree::ReplaceSon (sons, 6, old_son, new_son);
40019
 
  }
40020
 
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
40021
 
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
40022
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
40023
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
40024
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
40025
 
   private:
40026
 
  typedef CT_NewExpr CCExprResolveExpr;
40027
 
 
40028
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
40029
 
 public :
40030
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
40031
 
  typedef CT_NewExpr CExprResolveExpr;
40032
 
 
40033
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
40034
 
 public :
40035
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
40036
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40037
 
};
40038
 
 
40039
 
 
40040
 
#line 40041 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40041
 
} // closed Puma
40042
 
class WinIfExists;
40043
 
class WinImportHandler;
40044
 
class WinMacros;
40045
 
class CMatchSyntax;
40046
 
class ExtGnu;
40047
 
class ExtAC;
40048
 
class ExtACBuilderCoupling;
40049
 
class ExtACSyntaxCoupling;
40050
 
class ExtACTree;
40051
 
class ExtACKeywords;
40052
 
class WinAsm;
40053
 
class WinDeclSpecs;
40054
 
class WinMemberExplSpec;
40055
 
class WinTypeKeywords;
40056
 
class PragmaOnceUnitState;
40057
 
class PragmaOnce;
40058
 
class CCExprResolve;
40059
 
class CExprResolve;
40060
 
namespace Puma {
40061
 
 
40062
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40063
 
class CT_IfThenExpr : public CT_Expression {
40064
 
#line 40065 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40065
 
  friend class ::WinIfExists;
40066
 
  friend class ::WinImportHandler;
40067
 
  friend class ::WinMacros;
40068
 
  friend class ::CMatchSyntax;
40069
 
  friend class ::ExtGnu;
40070
 
  friend class ::ExtAC;
40071
 
  friend class ::ExtACBuilderCoupling;
40072
 
  friend class ::ExtACSyntaxCoupling;
40073
 
  friend class ::ExtACTree;
40074
 
  friend class ::ExtACKeywords;
40075
 
  friend class ::WinAsm;
40076
 
  friend class ::WinDeclSpecs;
40077
 
  friend class ::WinMemberExplSpec;
40078
 
  friend class ::WinTypeKeywords;
40079
 
  friend class ::PragmaOnceUnitState;
40080
 
  friend class ::PragmaOnce;
40081
 
  friend class ::CCExprResolve;
40082
 
  friend class ::CExprResolve;
40083
 
 
40084
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40085
 
 
40086
 
  CTree *sons[5]; // cond, oper, left, colon, right
40087
 
 
40088
 
public:
40089
 
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
40090
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
40091
 
  }
40092
 
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
40093
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
40094
 
  }
40095
 
  static const char *NodeId ();
40096
 
  const char *NodeName () const { return NodeId (); }
40097
 
  int Sons () const { return CTree::Sons (sons, 5); }
40098
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
40099
 
  CTree *Condition () const { return sons[0]; }
40100
 
  CTree *LeftOperand () const { return sons[2]; }
40101
 
  CTree *RightOperand () const { return sons[4]; }
40102
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40103
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
40104
 
  }
40105
 
   private:
40106
 
  typedef CT_IfThenExpr CCExprResolveExpr;
40107
 
 
40108
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
40109
 
 public :
40110
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
40111
 
  typedef CT_IfThenExpr CExprResolveExpr;
40112
 
 
40113
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
40114
 
 public :
40115
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
40116
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40117
 
};
40118
 
 
40119
 
 
40120
 
#line 40121 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40121
 
} // closed Puma
40122
 
class WinIfExists;
40123
 
class WinImportHandler;
40124
 
class WinMacros;
40125
 
class CMatchSyntax;
40126
 
class ExtGnu;
40127
 
class ExtAC;
40128
 
class ExtACBuilderCoupling;
40129
 
class ExtACSyntaxCoupling;
40130
 
class ExtACTree;
40131
 
class ExtACKeywords;
40132
 
class WinAsm;
40133
 
class WinDeclSpecs;
40134
 
class WinMemberExplSpec;
40135
 
class WinTypeKeywords;
40136
 
class PragmaOnceUnitState;
40137
 
class PragmaOnce;
40138
 
class CCExprResolve;
40139
 
class CExprResolve;
40140
 
namespace Puma {
40141
 
 
40142
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40143
 
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
40144
 
#line 40145 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40145
 
  friend class ::WinIfExists;
40146
 
  friend class ::WinImportHandler;
40147
 
  friend class ::WinMacros;
40148
 
  friend class ::CMatchSyntax;
40149
 
  friend class ::ExtGnu;
40150
 
  friend class ::ExtAC;
40151
 
  friend class ::ExtACBuilderCoupling;
40152
 
  friend class ::ExtACSyntaxCoupling;
40153
 
  friend class ::ExtACTree;
40154
 
  friend class ::ExtACKeywords;
40155
 
  friend class ::WinAsm;
40156
 
  friend class ::WinDeclSpecs;
40157
 
  friend class ::WinMemberExplSpec;
40158
 
  friend class ::WinTypeKeywords;
40159
 
  friend class ::PragmaOnceUnitState;
40160
 
  friend class ::PragmaOnce;
40161
 
  friend class ::CCExprResolve;
40162
 
  friend class ::CExprResolve;
40163
 
 
40164
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40165
 
 
40166
 
  CTree *sons[4]; // open, type, close, init
40167
 
 
40168
 
public:
40169
 
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
40170
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
40171
 
  }
40172
 
  static const char *NodeId ();
40173
 
  const char *NodeName () const { return NodeId (); }
40174
 
  int Sons () const { return 4; }
40175
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
40176
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40177
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
40178
 
  }
40179
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
40180
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
40181
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
40182
 
   private:
40183
 
  typedef CT_CmpdLiteral CCExprResolveExpr;
40184
 
 
40185
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
40186
 
 public :
40187
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
40188
 
  typedef CT_CmpdLiteral CExprResolveExpr;
40189
 
 
40190
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
40191
 
 public :
40192
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
40193
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40194
 
};
40195
 
 
40196
 
 
40197
 
#line 40198 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40198
 
} // closed Puma
40199
 
class WinIfExists;
40200
 
class WinImportHandler;
40201
 
class WinMacros;
40202
 
class CMatchSyntax;
40203
 
class ExtGnu;
40204
 
class ExtAC;
40205
 
class ExtACBuilderCoupling;
40206
 
class ExtACSyntaxCoupling;
40207
 
class ExtACTree;
40208
 
class ExtACKeywords;
40209
 
class WinAsm;
40210
 
class WinDeclSpecs;
40211
 
class WinMemberExplSpec;
40212
 
class WinTypeKeywords;
40213
 
class PragmaOnceUnitState;
40214
 
class PragmaOnce;
40215
 
class CCExprResolve;
40216
 
class CExprResolve;
40217
 
namespace Puma {
40218
 
 
40219
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40220
 
class CT_ConstructExpr : public CT_Expression, public CSemObject {
40221
 
#line 40222 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40222
 
  friend class ::WinIfExists;
40223
 
  friend class ::WinImportHandler;
40224
 
  friend class ::WinMacros;
40225
 
  friend class ::CMatchSyntax;
40226
 
  friend class ::ExtGnu;
40227
 
  friend class ::ExtAC;
40228
 
  friend class ::ExtACBuilderCoupling;
40229
 
  friend class ::ExtACSyntaxCoupling;
40230
 
  friend class ::ExtACTree;
40231
 
  friend class ::ExtACKeywords;
40232
 
  friend class ::WinAsm;
40233
 
  friend class ::WinDeclSpecs;
40234
 
  friend class ::WinMemberExplSpec;
40235
 
  friend class ::WinTypeKeywords;
40236
 
  friend class ::PragmaOnceUnitState;
40237
 
  friend class ::PragmaOnce;
40238
 
  friend class ::CCExprResolve;
40239
 
  friend class ::CExprResolve;
40240
 
 
40241
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40242
 
 
40243
 
  CTree *sons[2]; // type, init
40244
 
 
40245
 
public:
40246
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
40247
 
  static const char *NodeId ();
40248
 
  const char *NodeName () const { return NodeId (); }
40249
 
  int Sons () const { return 2; }
40250
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
40251
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40252
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
40253
 
  }
40254
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
40255
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
40256
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
40257
 
   private:
40258
 
  typedef CT_ConstructExpr CCExprResolveExpr;
40259
 
 
40260
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
40261
 
 public :
40262
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
40263
 
  typedef CT_ConstructExpr CExprResolveExpr;
40264
 
 
40265
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
40266
 
 public :
40267
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
40268
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40269
 
};
40270
 
 
40271
 
 
40272
 
#line 40273 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40273
 
} // closed Puma
40274
 
class WinIfExists;
40275
 
class WinImportHandler;
40276
 
class WinMacros;
40277
 
class CMatchSyntax;
40278
 
class ExtGnu;
40279
 
class ExtAC;
40280
 
class ExtACBuilderCoupling;
40281
 
class ExtACSyntaxCoupling;
40282
 
class ExtACTree;
40283
 
class ExtACKeywords;
40284
 
class WinAsm;
40285
 
class WinDeclSpecs;
40286
 
class WinMemberExplSpec;
40287
 
class WinTypeKeywords;
40288
 
class PragmaOnceUnitState;
40289
 
class PragmaOnce;
40290
 
class CCExprResolve;
40291
 
class CExprResolve;
40292
 
namespace Puma {
40293
 
 
40294
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40295
 
class CT_ThrowExpr : public CT_Expression {
40296
 
#line 40297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40297
 
  friend class ::WinIfExists;
40298
 
  friend class ::WinImportHandler;
40299
 
  friend class ::WinMacros;
40300
 
  friend class ::CMatchSyntax;
40301
 
  friend class ::ExtGnu;
40302
 
  friend class ::ExtAC;
40303
 
  friend class ::ExtACBuilderCoupling;
40304
 
  friend class ::ExtACSyntaxCoupling;
40305
 
  friend class ::ExtACTree;
40306
 
  friend class ::ExtACKeywords;
40307
 
  friend class ::WinAsm;
40308
 
  friend class ::WinDeclSpecs;
40309
 
  friend class ::WinMemberExplSpec;
40310
 
  friend class ::WinTypeKeywords;
40311
 
  friend class ::PragmaOnceUnitState;
40312
 
  friend class ::PragmaOnce;
40313
 
  friend class ::CCExprResolve;
40314
 
  friend class ::CExprResolve;
40315
 
 
40316
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40317
 
 
40318
 
  CTree *sons[2]; // throw, expr
40319
 
 
40320
 
public:
40321
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
40322
 
  static const char *NodeId ();
40323
 
  const char *NodeName () const { return NodeId (); }
40324
 
  int Sons () const { return CTree::Sons (sons, 2); }
40325
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
40326
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40327
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
40328
 
  }
40329
 
  CTree *Expr () const { return sons[1]; }
40330
 
   private:
40331
 
  typedef CT_ThrowExpr CCExprResolveExpr;
40332
 
 
40333
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
40334
 
 public :
40335
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
40336
 
  typedef CT_ThrowExpr CExprResolveExpr;
40337
 
 
40338
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
40339
 
 public :
40340
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
40341
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40342
 
};
40343
 
 
40344
 
 
40345
 
#line 40346 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40346
 
} // closed Puma
40347
 
class WinIfExists;
40348
 
class WinImportHandler;
40349
 
class WinMacros;
40350
 
class CMatchSyntax;
40351
 
class ExtGnu;
40352
 
class ExtAC;
40353
 
class ExtACBuilderCoupling;
40354
 
class ExtACSyntaxCoupling;
40355
 
class ExtACTree;
40356
 
class ExtACKeywords;
40357
 
class WinAsm;
40358
 
class WinDeclSpecs;
40359
 
class WinMemberExplSpec;
40360
 
class WinTypeKeywords;
40361
 
class PragmaOnceUnitState;
40362
 
class PragmaOnce;
40363
 
class CCExprResolve;
40364
 
class CExprResolve;
40365
 
namespace Puma {
40366
 
 
40367
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40368
 
class CT_IndexExpr : public CT_Expression {
40369
 
#line 40370 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40370
 
  friend class ::WinIfExists;
40371
 
  friend class ::WinImportHandler;
40372
 
  friend class ::WinMacros;
40373
 
  friend class ::CMatchSyntax;
40374
 
  friend class ::ExtGnu;
40375
 
  friend class ::ExtAC;
40376
 
  friend class ::ExtACBuilderCoupling;
40377
 
  friend class ::ExtACSyntaxCoupling;
40378
 
  friend class ::ExtACTree;
40379
 
  friend class ::ExtACKeywords;
40380
 
  friend class ::WinAsm;
40381
 
  friend class ::WinDeclSpecs;
40382
 
  friend class ::WinMemberExplSpec;
40383
 
  friend class ::WinTypeKeywords;
40384
 
  friend class ::PragmaOnceUnitState;
40385
 
  friend class ::PragmaOnce;
40386
 
  friend class ::CCExprResolve;
40387
 
  friend class ::CExprResolve;
40388
 
 
40389
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40390
 
 
40391
 
  CTree *sons[4]; // expr, open, index, close
40392
 
 
40393
 
public:
40394
 
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
40395
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
40396
 
  }
40397
 
  static const char *NodeId ();
40398
 
  const char *NodeName () const { return NodeId (); }
40399
 
  int Sons () const { return 4; }
40400
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
40401
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40402
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
40403
 
  }
40404
 
   private:
40405
 
  typedef CT_IndexExpr CCExprResolveExpr;
40406
 
 
40407
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
40408
 
 public :
40409
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
40410
 
  typedef CT_IndexExpr CExprResolveExpr;
40411
 
 
40412
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
40413
 
 public :
40414
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
40415
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40416
 
};
40417
 
 
40418
 
 
40419
 
#line 40420 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40420
 
} // closed Puma
40421
 
class WinIfExists;
40422
 
class WinImportHandler;
40423
 
class WinMacros;
40424
 
class CMatchSyntax;
40425
 
class ExtGnu;
40426
 
class ExtAC;
40427
 
class ExtACBuilderCoupling;
40428
 
class ExtACSyntaxCoupling;
40429
 
class ExtACTree;
40430
 
class ExtACKeywords;
40431
 
class WinAsm;
40432
 
class WinDeclSpecs;
40433
 
class WinMemberExplSpec;
40434
 
class WinTypeKeywords;
40435
 
class PragmaOnceUnitState;
40436
 
class PragmaOnce;
40437
 
class CCExprResolve;
40438
 
class CExprResolve;
40439
 
namespace Puma {
40440
 
 
40441
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40442
 
class CT_CallExpr : public CT_Expression, public CSemObject {
40443
 
#line 40444 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40444
 
  friend class ::WinIfExists;
40445
 
  friend class ::WinImportHandler;
40446
 
  friend class ::WinMacros;
40447
 
  friend class ::CMatchSyntax;
40448
 
  friend class ::ExtGnu;
40449
 
  friend class ::ExtAC;
40450
 
  friend class ::ExtACBuilderCoupling;
40451
 
  friend class ::ExtACSyntaxCoupling;
40452
 
  friend class ::ExtACTree;
40453
 
  friend class ::ExtACKeywords;
40454
 
  friend class ::WinAsm;
40455
 
  friend class ::WinDeclSpecs;
40456
 
  friend class ::WinMemberExplSpec;
40457
 
  friend class ::WinTypeKeywords;
40458
 
  friend class ::PragmaOnceUnitState;
40459
 
  friend class ::PragmaOnce;
40460
 
  friend class ::CCExprResolve;
40461
 
  friend class ::CExprResolve;
40462
 
 
40463
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40464
 
 
40465
 
  CTree *sons[2]; // expr, args
40466
 
 
40467
 
public:
40468
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
40469
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
40470
 
  static const char *NodeId ();
40471
 
  const char *NodeName () const { return NodeId (); }
40472
 
  int Sons () const { return CTree::Sons (sons, 2); }
40473
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
40474
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40475
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
40476
 
  }
40477
 
  CTree *Expr () const { return sons[0]; }
40478
 
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
40479
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
40480
 
   private:
40481
 
  typedef CT_CallExpr CCExprResolveExpr;
40482
 
 
40483
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
40484
 
 public :
40485
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
40486
 
  typedef CT_CallExpr CExprResolveExpr;
40487
 
 
40488
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
40489
 
 public :
40490
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
40491
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40492
 
};
40493
 
 
40494
 
 
40495
 
#line 40496 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40496
 
} // closed Puma
40497
 
class WinIfExists;
40498
 
class WinImportHandler;
40499
 
class WinMacros;
40500
 
class CMatchSyntax;
40501
 
class ExtGnu;
40502
 
class ExtAC;
40503
 
class ExtACBuilderCoupling;
40504
 
class ExtACSyntaxCoupling;
40505
 
class ExtACTree;
40506
 
class ExtACKeywords;
40507
 
class WinAsm;
40508
 
class WinDeclSpecs;
40509
 
class WinMemberExplSpec;
40510
 
class WinTypeKeywords;
40511
 
class PragmaOnceUnitState;
40512
 
class PragmaOnce;
40513
 
class CCExprResolve;
40514
 
class CExprResolve;
40515
 
namespace Puma {
40516
 
 
40517
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40518
 
class CT_CastExpr : public CT_Expression {
40519
 
#line 40520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40520
 
  friend class ::WinIfExists;
40521
 
  friend class ::WinImportHandler;
40522
 
  friend class ::WinMacros;
40523
 
  friend class ::CMatchSyntax;
40524
 
  friend class ::ExtGnu;
40525
 
  friend class ::ExtAC;
40526
 
  friend class ::ExtACBuilderCoupling;
40527
 
  friend class ::ExtACSyntaxCoupling;
40528
 
  friend class ::ExtACTree;
40529
 
  friend class ::ExtACKeywords;
40530
 
  friend class ::WinAsm;
40531
 
  friend class ::WinDeclSpecs;
40532
 
  friend class ::WinMemberExplSpec;
40533
 
  friend class ::WinTypeKeywords;
40534
 
  friend class ::PragmaOnceUnitState;
40535
 
  friend class ::PragmaOnce;
40536
 
  friend class ::CCExprResolve;
40537
 
  friend class ::CExprResolve;
40538
 
 
40539
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40540
 
 
40541
 
  CTree *sons[4]; // open, type, close, expr
40542
 
 
40543
 
public:
40544
 
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
40545
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
40546
 
  }
40547
 
  static const char *NodeId ();
40548
 
  const char *NodeName () const { return NodeId (); }
40549
 
  int Sons () const { return 4; }
40550
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
40551
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40552
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
40553
 
  }
40554
 
  CTree *Expr () const { return sons[3]; }
40555
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
40556
 
   private:
40557
 
  typedef CT_CastExpr CCExprResolveExpr;
40558
 
 
40559
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
40560
 
 public :
40561
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
40562
 
  typedef CT_CastExpr CExprResolveExpr;
40563
 
 
40564
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
40565
 
 public :
40566
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
40567
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40568
 
};
40569
 
 
40570
 
 
40571
 
#line 40572 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40572
 
} // closed Puma
40573
 
class WinIfExists;
40574
 
class WinImportHandler;
40575
 
class WinMacros;
40576
 
class CMatchSyntax;
40577
 
class ExtGnu;
40578
 
class ExtAC;
40579
 
class ExtACBuilderCoupling;
40580
 
class ExtACSyntaxCoupling;
40581
 
class ExtACTree;
40582
 
class ExtACKeywords;
40583
 
class WinAsm;
40584
 
class WinDeclSpecs;
40585
 
class WinMemberExplSpec;
40586
 
class WinTypeKeywords;
40587
 
class PragmaOnceUnitState;
40588
 
class PragmaOnce;
40589
 
class CCExprResolve;
40590
 
class CExprResolve;
40591
 
namespace Puma {
40592
 
 
40593
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40594
 
class CT_StaticCast : public CT_Expression {
40595
 
#line 40596 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40596
 
  friend class ::WinIfExists;
40597
 
  friend class ::WinImportHandler;
40598
 
  friend class ::WinMacros;
40599
 
  friend class ::CMatchSyntax;
40600
 
  friend class ::ExtGnu;
40601
 
  friend class ::ExtAC;
40602
 
  friend class ::ExtACBuilderCoupling;
40603
 
  friend class ::ExtACSyntaxCoupling;
40604
 
  friend class ::ExtACTree;
40605
 
  friend class ::ExtACKeywords;
40606
 
  friend class ::WinAsm;
40607
 
  friend class ::WinDeclSpecs;
40608
 
  friend class ::WinMemberExplSpec;
40609
 
  friend class ::WinTypeKeywords;
40610
 
  friend class ::PragmaOnceUnitState;
40611
 
  friend class ::PragmaOnce;
40612
 
  friend class ::CCExprResolve;
40613
 
  friend class ::CExprResolve;
40614
 
 
40615
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40616
 
 
40617
 
  CTree *sons[5]; // cast, open, type, close, expr
40618
 
 
40619
 
public:
40620
 
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
40621
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
40622
 
  }
40623
 
  static const char *NodeId ();
40624
 
  const char *NodeName () const { return NodeId (); }
40625
 
  int Sons () const { return 5; }
40626
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
40627
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40628
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
40629
 
  }
40630
 
  CTree *Expr () const { return sons[4]; }
40631
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
40632
 
   private:
40633
 
  typedef CT_StaticCast CCExprResolveExpr;
40634
 
 
40635
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
40636
 
 public :
40637
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
40638
 
  typedef CT_StaticCast CExprResolveExpr;
40639
 
 
40640
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
40641
 
 public :
40642
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
40643
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40644
 
};
40645
 
 
40646
 
 
40647
 
#line 40648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40648
 
} // closed Puma
40649
 
class WinIfExists;
40650
 
class WinImportHandler;
40651
 
class WinMacros;
40652
 
class CMatchSyntax;
40653
 
class ExtGnu;
40654
 
class ExtAC;
40655
 
class ExtACBuilderCoupling;
40656
 
class ExtACSyntaxCoupling;
40657
 
class ExtACTree;
40658
 
class ExtACKeywords;
40659
 
class WinAsm;
40660
 
class WinDeclSpecs;
40661
 
class WinMemberExplSpec;
40662
 
class WinTypeKeywords;
40663
 
class PragmaOnceUnitState;
40664
 
class PragmaOnce;
40665
 
class CCExprResolve;
40666
 
class CExprResolve;
40667
 
namespace Puma {
40668
 
 
40669
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40670
 
class CT_ConstCast : public CT_StaticCast {
40671
 
#line 40672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40672
 
  friend class ::WinIfExists;
40673
 
  friend class ::WinImportHandler;
40674
 
  friend class ::WinMacros;
40675
 
  friend class ::CMatchSyntax;
40676
 
  friend class ::ExtGnu;
40677
 
  friend class ::ExtAC;
40678
 
  friend class ::ExtACBuilderCoupling;
40679
 
  friend class ::ExtACSyntaxCoupling;
40680
 
  friend class ::ExtACTree;
40681
 
  friend class ::ExtACKeywords;
40682
 
  friend class ::WinAsm;
40683
 
  friend class ::WinDeclSpecs;
40684
 
  friend class ::WinMemberExplSpec;
40685
 
  friend class ::WinTypeKeywords;
40686
 
  friend class ::PragmaOnceUnitState;
40687
 
  friend class ::PragmaOnce;
40688
 
  friend class ::CCExprResolve;
40689
 
  friend class ::CExprResolve;
40690
 
 
40691
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40692
 
 
40693
 
public:
40694
 
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
40695
 
    CT_StaticCast (cst, o, t, c, e) {}
40696
 
  static const char *NodeId ();
40697
 
  const char *NodeName () const { return NodeId (); }
40698
 
   private:
40699
 
  typedef CT_ConstCast CCExprResolveExpr;
40700
 
 
40701
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
40702
 
 public :
40703
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
40704
 
  typedef CT_ConstCast CExprResolveExpr;
40705
 
 
40706
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
40707
 
 public :
40708
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
40709
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40710
 
};
40711
 
 
40712
 
 
40713
 
#line 40714 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40714
 
} // closed Puma
40715
 
class WinIfExists;
40716
 
class WinImportHandler;
40717
 
class WinMacros;
40718
 
class CMatchSyntax;
40719
 
class ExtGnu;
40720
 
class ExtAC;
40721
 
class ExtACBuilderCoupling;
40722
 
class ExtACSyntaxCoupling;
40723
 
class ExtACTree;
40724
 
class ExtACKeywords;
40725
 
class WinAsm;
40726
 
class WinDeclSpecs;
40727
 
class WinMemberExplSpec;
40728
 
class WinTypeKeywords;
40729
 
class PragmaOnceUnitState;
40730
 
class PragmaOnce;
40731
 
class CCExprResolve;
40732
 
class CExprResolve;
40733
 
namespace Puma {
40734
 
 
40735
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40736
 
class CT_ReintCast : public CT_StaticCast {
40737
 
#line 40738 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40738
 
  friend class ::WinIfExists;
40739
 
  friend class ::WinImportHandler;
40740
 
  friend class ::WinMacros;
40741
 
  friend class ::CMatchSyntax;
40742
 
  friend class ::ExtGnu;
40743
 
  friend class ::ExtAC;
40744
 
  friend class ::ExtACBuilderCoupling;
40745
 
  friend class ::ExtACSyntaxCoupling;
40746
 
  friend class ::ExtACTree;
40747
 
  friend class ::ExtACKeywords;
40748
 
  friend class ::WinAsm;
40749
 
  friend class ::WinDeclSpecs;
40750
 
  friend class ::WinMemberExplSpec;
40751
 
  friend class ::WinTypeKeywords;
40752
 
  friend class ::PragmaOnceUnitState;
40753
 
  friend class ::PragmaOnce;
40754
 
  friend class ::CCExprResolve;
40755
 
  friend class ::CExprResolve;
40756
 
 
40757
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40758
 
 
40759
 
public:
40760
 
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
40761
 
    CT_StaticCast (cst, o, t, c, e) {}
40762
 
  static const char *NodeId ();
40763
 
  const char *NodeName () const { return NodeId (); }
40764
 
   private:
40765
 
  typedef CT_ReintCast CCExprResolveExpr;
40766
 
 
40767
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
40768
 
 public :
40769
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
40770
 
  typedef CT_ReintCast CExprResolveExpr;
40771
 
 
40772
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
40773
 
 public :
40774
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
40775
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40776
 
};
40777
 
 
40778
 
 
40779
 
#line 40780 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40780
 
} // closed Puma
40781
 
class WinIfExists;
40782
 
class WinImportHandler;
40783
 
class WinMacros;
40784
 
class CMatchSyntax;
40785
 
class ExtGnu;
40786
 
class ExtAC;
40787
 
class ExtACBuilderCoupling;
40788
 
class ExtACSyntaxCoupling;
40789
 
class ExtACTree;
40790
 
class ExtACKeywords;
40791
 
class WinAsm;
40792
 
class WinDeclSpecs;
40793
 
class WinMemberExplSpec;
40794
 
class WinTypeKeywords;
40795
 
class PragmaOnceUnitState;
40796
 
class PragmaOnce;
40797
 
class CCExprResolve;
40798
 
class CExprResolve;
40799
 
namespace Puma {
40800
 
 
40801
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40802
 
class CT_DynamicCast : public CT_StaticCast {
40803
 
#line 40804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40804
 
  friend class ::WinIfExists;
40805
 
  friend class ::WinImportHandler;
40806
 
  friend class ::WinMacros;
40807
 
  friend class ::CMatchSyntax;
40808
 
  friend class ::ExtGnu;
40809
 
  friend class ::ExtAC;
40810
 
  friend class ::ExtACBuilderCoupling;
40811
 
  friend class ::ExtACSyntaxCoupling;
40812
 
  friend class ::ExtACTree;
40813
 
  friend class ::ExtACKeywords;
40814
 
  friend class ::WinAsm;
40815
 
  friend class ::WinDeclSpecs;
40816
 
  friend class ::WinMemberExplSpec;
40817
 
  friend class ::WinTypeKeywords;
40818
 
  friend class ::PragmaOnceUnitState;
40819
 
  friend class ::PragmaOnce;
40820
 
  friend class ::CCExprResolve;
40821
 
  friend class ::CExprResolve;
40822
 
 
40823
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40824
 
 
40825
 
public:
40826
 
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
40827
 
    CT_StaticCast (cst, o, t, c, e) {}
40828
 
  static const char *NodeId ();
40829
 
  const char *NodeName () const { return NodeId (); }
40830
 
   private:
40831
 
  typedef CT_DynamicCast CCExprResolveExpr;
40832
 
 
40833
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
40834
 
 public :
40835
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
40836
 
  typedef CT_DynamicCast CExprResolveExpr;
40837
 
 
40838
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
40839
 
 public :
40840
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
40841
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40842
 
};
40843
 
 
40844
 
 
40845
 
#line 40846 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40846
 
} // closed Puma
40847
 
class WinIfExists;
40848
 
class WinImportHandler;
40849
 
class WinMacros;
40850
 
class CMatchSyntax;
40851
 
class ExtGnu;
40852
 
class ExtAC;
40853
 
class ExtACBuilderCoupling;
40854
 
class ExtACSyntaxCoupling;
40855
 
class ExtACTree;
40856
 
class ExtACKeywords;
40857
 
class WinAsm;
40858
 
class WinDeclSpecs;
40859
 
class WinMemberExplSpec;
40860
 
class WinTypeKeywords;
40861
 
class PragmaOnceUnitState;
40862
 
class PragmaOnce;
40863
 
class CCExprResolve;
40864
 
class CExprResolve;
40865
 
namespace Puma {
40866
 
 
40867
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40868
 
class CT_ImplicitCast : public CT_Expression {
40869
 
#line 40870 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40870
 
  friend class ::WinIfExists;
40871
 
  friend class ::WinImportHandler;
40872
 
  friend class ::WinMacros;
40873
 
  friend class ::CMatchSyntax;
40874
 
  friend class ::ExtGnu;
40875
 
  friend class ::ExtAC;
40876
 
  friend class ::ExtACBuilderCoupling;
40877
 
  friend class ::ExtACSyntaxCoupling;
40878
 
  friend class ::ExtACTree;
40879
 
  friend class ::ExtACKeywords;
40880
 
  friend class ::WinAsm;
40881
 
  friend class ::WinDeclSpecs;
40882
 
  friend class ::WinMemberExplSpec;
40883
 
  friend class ::WinTypeKeywords;
40884
 
  friend class ::PragmaOnceUnitState;
40885
 
  friend class ::PragmaOnce;
40886
 
  friend class ::CCExprResolve;
40887
 
  friend class ::CExprResolve;
40888
 
 
40889
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40890
 
 
40891
 
  CTree *_expr; // casted expression
40892
 
 
40893
 
public:
40894
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
40895
 
  static const char *NodeId ();
40896
 
  const char *NodeName () const { return NodeId (); }
40897
 
  int Sons () const { return 1; }
40898
 
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
40899
 
  CTree *Expr () const { return _expr; }
40900
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
40901
 
   { if (old_son == _expr) _expr = new_son; }
40902
 
   private:
40903
 
  typedef CT_ImplicitCast CCExprResolveExpr;
40904
 
 
40905
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
40906
 
 public :
40907
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
40908
 
  typedef CT_ImplicitCast CExprResolveExpr;
40909
 
 
40910
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
40911
 
 public :
40912
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
40913
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40914
 
};
40915
 
 
40916
 
 
40917
 
#line 40918 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40918
 
} // closed Puma
40919
 
class WinIfExists;
40920
 
class WinImportHandler;
40921
 
class WinMacros;
40922
 
class CMatchSyntax;
40923
 
class ExtGnu;
40924
 
class ExtAC;
40925
 
class ExtACBuilderCoupling;
40926
 
class ExtACSyntaxCoupling;
40927
 
class ExtACTree;
40928
 
class ExtACKeywords;
40929
 
class WinAsm;
40930
 
class WinDeclSpecs;
40931
 
class WinMemberExplSpec;
40932
 
class WinTypeKeywords;
40933
 
class PragmaOnceUnitState;
40934
 
class PragmaOnce;
40935
 
class CCExprResolve;
40936
 
class CExprResolve;
40937
 
namespace Puma {
40938
 
 
40939
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40940
 
class CT_TypeidExpr : public CT_Expression {
40941
 
#line 40942 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40942
 
  friend class ::WinIfExists;
40943
 
  friend class ::WinImportHandler;
40944
 
  friend class ::WinMacros;
40945
 
  friend class ::CMatchSyntax;
40946
 
  friend class ::ExtGnu;
40947
 
  friend class ::ExtAC;
40948
 
  friend class ::ExtACBuilderCoupling;
40949
 
  friend class ::ExtACSyntaxCoupling;
40950
 
  friend class ::ExtACTree;
40951
 
  friend class ::ExtACKeywords;
40952
 
  friend class ::WinAsm;
40953
 
  friend class ::WinDeclSpecs;
40954
 
  friend class ::WinMemberExplSpec;
40955
 
  friend class ::WinTypeKeywords;
40956
 
  friend class ::PragmaOnceUnitState;
40957
 
  friend class ::PragmaOnce;
40958
 
  friend class ::CCExprResolve;
40959
 
  friend class ::CExprResolve;
40960
 
 
40961
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40962
 
 
40963
 
  CTree *sons[4]; // typeid, open, type_id/expr, close
40964
 
 
40965
 
public:
40966
 
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
40967
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
40968
 
  }
40969
 
  static const char *NodeId ();
40970
 
  const char *NodeName () const { return NodeId (); }
40971
 
  int Sons () const { return 4; }
40972
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
40973
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40974
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
40975
 
  }
40976
 
  CTree *Arg () const { return sons[2]; }
40977
 
   private:
40978
 
  typedef CT_TypeidExpr CCExprResolveExpr;
40979
 
 
40980
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
40981
 
 public :
40982
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
40983
 
  typedef CT_TypeidExpr CExprResolveExpr;
40984
 
 
40985
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
40986
 
 public :
40987
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
40988
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40989
 
};
40990
 
 
40991
 
 
40992
 
#line 40993 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
40993
 
} // closed Puma
40994
 
class WinIfExists;
40995
 
class WinImportHandler;
40996
 
class WinMacros;
40997
 
class CMatchSyntax;
40998
 
class ExtGnu;
40999
 
class ExtAC;
41000
 
class ExtACBuilderCoupling;
41001
 
class ExtACSyntaxCoupling;
41002
 
class ExtACTree;
41003
 
class ExtACKeywords;
41004
 
class WinAsm;
41005
 
class WinDeclSpecs;
41006
 
class WinMemberExplSpec;
41007
 
class WinTypeKeywords;
41008
 
class PragmaOnceUnitState;
41009
 
class PragmaOnce;
41010
 
class CCExprResolve;
41011
 
class CExprResolve;
41012
 
namespace Puma {
41013
 
 
41014
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41015
 
class CT_SizeofExpr : public CT_Expression {
41016
 
#line 41017 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41017
 
  friend class ::WinIfExists;
41018
 
  friend class ::WinImportHandler;
41019
 
  friend class ::WinMacros;
41020
 
  friend class ::CMatchSyntax;
41021
 
  friend class ::ExtGnu;
41022
 
  friend class ::ExtAC;
41023
 
  friend class ::ExtACBuilderCoupling;
41024
 
  friend class ::ExtACSyntaxCoupling;
41025
 
  friend class ::ExtACTree;
41026
 
  friend class ::ExtACKeywords;
41027
 
  friend class ::WinAsm;
41028
 
  friend class ::WinDeclSpecs;
41029
 
  friend class ::WinMemberExplSpec;
41030
 
  friend class ::WinTypeKeywords;
41031
 
  friend class ::PragmaOnceUnitState;
41032
 
  friend class ::PragmaOnce;
41033
 
  friend class ::CCExprResolve;
41034
 
  friend class ::CExprResolve;
41035
 
 
41036
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41037
 
 
41038
 
  CTree *sons[5]; // key, open, type, close, expr
41039
 
 
41040
 
public:
41041
 
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
41042
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
41043
 
  }
41044
 
  CT_SizeofExpr (CTree *k, CTree *e) {
41045
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
41046
 
  }
41047
 
  static const char *NodeId ();
41048
 
  const char *NodeName () const { return NodeId (); }
41049
 
  int Sons () const { return CTree::Sons (sons, 5); }
41050
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
41051
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41052
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
41053
 
  }
41054
 
  CTree *Expr () const { return sons[4]; }
41055
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
41056
 
   private:
41057
 
  typedef CT_SizeofExpr CCExprResolveExpr;
41058
 
 
41059
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
41060
 
 public :
41061
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
41062
 
  typedef CT_SizeofExpr CExprResolveExpr;
41063
 
 
41064
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
41065
 
 public :
41066
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
41067
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41068
 
};
41069
 
 
41070
 
 
41071
 
#line 41072 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41072
 
} // closed Puma
41073
 
class WinIfExists;
41074
 
class WinImportHandler;
41075
 
class WinMacros;
41076
 
class CMatchSyntax;
41077
 
class ExtGnu;
41078
 
class ExtAC;
41079
 
class ExtACBuilderCoupling;
41080
 
class ExtACSyntaxCoupling;
41081
 
class ExtACTree;
41082
 
class ExtACKeywords;
41083
 
class WinAsm;
41084
 
class WinDeclSpecs;
41085
 
class WinMemberExplSpec;
41086
 
class WinTypeKeywords;
41087
 
class PragmaOnceUnitState;
41088
 
class PragmaOnce;
41089
 
class CCExprResolve;
41090
 
class CExprResolve;
41091
 
namespace Puma {
41092
 
 
41093
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41094
 
class CT_IndexDesignator : public CT_Expression {
41095
 
#line 41096 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41096
 
  friend class ::WinIfExists;
41097
 
  friend class ::WinImportHandler;
41098
 
  friend class ::WinMacros;
41099
 
  friend class ::CMatchSyntax;
41100
 
  friend class ::ExtGnu;
41101
 
  friend class ::ExtAC;
41102
 
  friend class ::ExtACBuilderCoupling;
41103
 
  friend class ::ExtACSyntaxCoupling;
41104
 
  friend class ::ExtACTree;
41105
 
  friend class ::ExtACKeywords;
41106
 
  friend class ::WinAsm;
41107
 
  friend class ::WinDeclSpecs;
41108
 
  friend class ::WinMemberExplSpec;
41109
 
  friend class ::WinTypeKeywords;
41110
 
  friend class ::PragmaOnceUnitState;
41111
 
  friend class ::PragmaOnce;
41112
 
  friend class ::CCExprResolve;
41113
 
  friend class ::CExprResolve;
41114
 
 
41115
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41116
 
 
41117
 
  CTree *sons[3]; // open, index, close
41118
 
 
41119
 
public:
41120
 
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
41121
 
    sons[0] = o; sons[1] = i; sons[2] = c;
41122
 
  }
41123
 
  static const char *NodeId ();
41124
 
  const char *NodeName () const { return NodeId (); }
41125
 
  int Sons () const { return 3; }
41126
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
41127
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41128
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
41129
 
  }
41130
 
   private:
41131
 
  typedef CT_IndexDesignator CCExprResolveExpr;
41132
 
 
41133
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
41134
 
 public :
41135
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
41136
 
  typedef CT_IndexDesignator CExprResolveExpr;
41137
 
 
41138
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
41139
 
 public :
41140
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
41141
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41142
 
};
41143
 
 
41144
 
 
41145
 
#line 41146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41146
 
} // closed Puma
41147
 
class WinIfExists;
41148
 
class WinImportHandler;
41149
 
class WinMacros;
41150
 
class CMatchSyntax;
41151
 
class ExtGnu;
41152
 
class ExtAC;
41153
 
class ExtACBuilderCoupling;
41154
 
class ExtACSyntaxCoupling;
41155
 
class ExtACTree;
41156
 
class ExtACKeywords;
41157
 
class WinAsm;
41158
 
class WinDeclSpecs;
41159
 
class WinMemberExplSpec;
41160
 
class WinTypeKeywords;
41161
 
class PragmaOnceUnitState;
41162
 
class PragmaOnce;
41163
 
class CCExprResolve;
41164
 
class CExprResolve;
41165
 
namespace Puma {
41166
 
 
41167
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41168
 
class CT_MembDesignator : public CT_Expression {
41169
 
#line 41170 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41170
 
  friend class ::WinIfExists;
41171
 
  friend class ::WinImportHandler;
41172
 
  friend class ::WinMacros;
41173
 
  friend class ::CMatchSyntax;
41174
 
  friend class ::ExtGnu;
41175
 
  friend class ::ExtAC;
41176
 
  friend class ::ExtACBuilderCoupling;
41177
 
  friend class ::ExtACSyntaxCoupling;
41178
 
  friend class ::ExtACTree;
41179
 
  friend class ::ExtACKeywords;
41180
 
  friend class ::WinAsm;
41181
 
  friend class ::WinDeclSpecs;
41182
 
  friend class ::WinMemberExplSpec;
41183
 
  friend class ::WinTypeKeywords;
41184
 
  friend class ::PragmaOnceUnitState;
41185
 
  friend class ::PragmaOnce;
41186
 
  friend class ::CCExprResolve;
41187
 
  friend class ::CExprResolve;
41188
 
 
41189
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41190
 
 
41191
 
  CTree *sons[2]; // dot, member
41192
 
 
41193
 
public:
41194
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
41195
 
  static const char *NodeId ();
41196
 
  const char *NodeName () const { return NodeId (); }
41197
 
  int Sons () const { return 2; }
41198
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
41199
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41200
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
41201
 
  }
41202
 
   private:
41203
 
  typedef CT_MembDesignator CCExprResolveExpr;
41204
 
 
41205
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
41206
 
 public :
41207
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
41208
 
  typedef CT_MembDesignator CExprResolveExpr;
41209
 
 
41210
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
41211
 
 public :
41212
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
41213
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41214
 
};
41215
 
 
41216
 
 
41217
 
#line 41218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41218
 
} // closed Puma
41219
 
class WinIfExists;
41220
 
class WinImportHandler;
41221
 
class WinMacros;
41222
 
class CMatchSyntax;
41223
 
class ExtGnu;
41224
 
class ExtAC;
41225
 
class ExtACBuilderCoupling;
41226
 
class ExtACSyntaxCoupling;
41227
 
class ExtACTree;
41228
 
class ExtACKeywords;
41229
 
class WinAsm;
41230
 
class WinDeclSpecs;
41231
 
class WinMemberExplSpec;
41232
 
class WinTypeKeywords;
41233
 
class PragmaOnceUnitState;
41234
 
class PragmaOnce;
41235
 
class CCExprResolve;
41236
 
class CExprResolve;
41237
 
namespace Puma {
41238
 
 
41239
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41240
 
class CT_DesignatorSeq : public CT_List, public CSemValue {
41241
 
#line 41242 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41242
 
  friend class ::WinIfExists;
41243
 
  friend class ::WinImportHandler;
41244
 
  friend class ::WinMacros;
41245
 
  friend class ::CMatchSyntax;
41246
 
  friend class ::ExtGnu;
41247
 
  friend class ::ExtAC;
41248
 
  friend class ::ExtACBuilderCoupling;
41249
 
  friend class ::ExtACSyntaxCoupling;
41250
 
  friend class ::ExtACTree;
41251
 
  friend class ::ExtACKeywords;
41252
 
  friend class ::WinAsm;
41253
 
  friend class ::WinDeclSpecs;
41254
 
  friend class ::WinMemberExplSpec;
41255
 
  friend class ::WinTypeKeywords;
41256
 
  friend class ::PragmaOnceUnitState;
41257
 
  friend class ::PragmaOnce;
41258
 
  friend class ::CCExprResolve;
41259
 
  friend class ::CExprResolve;
41260
 
 
41261
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41262
 
 
41263
 
public:
41264
 
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
41265
 
  static const char *NodeId ();
41266
 
  const char *NodeName () const { return NodeId (); }
41267
 
 
41268
 
  CTypeInfo *Type () const { return type; }
41269
 
  CExprValue *Value () const { return value; }
41270
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
41271
 
};
41272
 
 
41273
 
/*****************************************************************************/
41274
 
/*                                                                           */
41275
 
/*                         Declaration specifiers                            */
41276
 
/*                                                                           */
41277
 
/*****************************************************************************/
41278
 
 
41279
 
 
41280
 
#line 41281 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41281
 
} // closed Puma
41282
 
class WinIfExists;
41283
 
class WinImportHandler;
41284
 
class WinMacros;
41285
 
class CMatchSyntax;
41286
 
class ExtGnu;
41287
 
class ExtAC;
41288
 
class ExtACBuilderCoupling;
41289
 
class ExtACSyntaxCoupling;
41290
 
class ExtACTree;
41291
 
class ExtACKeywords;
41292
 
class WinAsm;
41293
 
class WinDeclSpecs;
41294
 
class WinMemberExplSpec;
41295
 
class WinTypeKeywords;
41296
 
class PragmaOnceUnitState;
41297
 
class PragmaOnce;
41298
 
class CCExprResolve;
41299
 
class CExprResolve;
41300
 
namespace Puma {
41301
 
 
41302
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41303
 
class CT_DeclSpec : public CTree {
41304
 
#line 41305 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41305
 
  friend class ::WinIfExists;
41306
 
  friend class ::WinImportHandler;
41307
 
  friend class ::WinMacros;
41308
 
  friend class ::CMatchSyntax;
41309
 
  friend class ::ExtGnu;
41310
 
  friend class ::ExtAC;
41311
 
  friend class ::ExtACBuilderCoupling;
41312
 
  friend class ::ExtACSyntaxCoupling;
41313
 
  friend class ::ExtACTree;
41314
 
  friend class ::ExtACKeywords;
41315
 
  friend class ::WinAsm;
41316
 
  friend class ::WinDeclSpecs;
41317
 
  friend class ::WinMemberExplSpec;
41318
 
  friend class ::WinTypeKeywords;
41319
 
  friend class ::PragmaOnceUnitState;
41320
 
  friend class ::PragmaOnce;
41321
 
  friend class ::CCExprResolve;
41322
 
  friend class ::CExprResolve;
41323
 
 
41324
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41325
 
 
41326
 
protected:
41327
 
  CT_DeclSpec () {}
41328
 
};
41329
 
 
41330
 
 
41331
 
#line 41332 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41332
 
} // closed Puma
41333
 
class WinIfExists;
41334
 
class WinImportHandler;
41335
 
class WinMacros;
41336
 
class CMatchSyntax;
41337
 
class ExtGnu;
41338
 
class ExtAC;
41339
 
class ExtACBuilderCoupling;
41340
 
class ExtACSyntaxCoupling;
41341
 
class ExtACTree;
41342
 
class ExtACKeywords;
41343
 
class WinAsm;
41344
 
class WinDeclSpecs;
41345
 
class WinMemberExplSpec;
41346
 
class WinTypeKeywords;
41347
 
class PragmaOnceUnitState;
41348
 
class PragmaOnce;
41349
 
class CCExprResolve;
41350
 
class CExprResolve;
41351
 
namespace Puma {
41352
 
 
41353
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41354
 
class CT_PrimDeclSpec : public CT_DeclSpec {
41355
 
#line 41356 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41356
 
  friend class ::WinIfExists;
41357
 
  friend class ::WinImportHandler;
41358
 
  friend class ::WinMacros;
41359
 
  friend class ::CMatchSyntax;
41360
 
  friend class ::ExtGnu;
41361
 
  friend class ::ExtAC;
41362
 
  friend class ::ExtACBuilderCoupling;
41363
 
  friend class ::ExtACSyntaxCoupling;
41364
 
  friend class ::ExtACTree;
41365
 
  friend class ::ExtACKeywords;
41366
 
  friend class ::WinAsm;
41367
 
  friend class ::WinDeclSpecs;
41368
 
  friend class ::WinMemberExplSpec;
41369
 
  friend class ::WinTypeKeywords;
41370
 
  friend class ::PragmaOnceUnitState;
41371
 
  friend class ::PragmaOnce;
41372
 
  friend class ::CCExprResolve;
41373
 
  friend class ::CExprResolve;
41374
 
 
41375
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41376
 
 
41377
 
public:
41378
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
41379
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
41380
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
41381
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
41382
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
41383
 
              // AspectC++ specific type specifier
41384
 
              PDS_UNKNOWN_T,
41385
 
              // Win specific declaration specifiers
41386
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
41387
 
              PDS_UNKNOWN, PDS_NUM };
41388
 
 
41389
 
private:
41390
 
  Type _type;
41391
 
  CT_Token *_token;
41392
 
 
41393
 
  void determine_type ();
41394
 
 
41395
 
public:
41396
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
41397
 
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
41398
 
  static const char *NodeId ();
41399
 
  const char *NodeName () const { return NodeId (); }
41400
 
  int Sons () const { return _token ? 1 : 0; }
41401
 
  CTree *Son (int n) const 
41402
 
   { return (n == 0) ? _token : (CTree*)0; }
41403
 
  const char *SpecText () const 
41404
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
41405
 
  Type SpecType () const { return _type; }
41406
 
  static const int NumTypes = PDS_NUM;
41407
 
};
41408
 
 
41409
 
 
41410
 
#line 41411 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41411
 
} // closed Puma
41412
 
class WinIfExists;
41413
 
class WinImportHandler;
41414
 
class WinMacros;
41415
 
class CMatchSyntax;
41416
 
class ExtGnu;
41417
 
class ExtAC;
41418
 
class ExtACBuilderCoupling;
41419
 
class ExtACSyntaxCoupling;
41420
 
class ExtACTree;
41421
 
class ExtACKeywords;
41422
 
class WinAsm;
41423
 
class WinDeclSpecs;
41424
 
class WinMemberExplSpec;
41425
 
class WinTypeKeywords;
41426
 
class PragmaOnceUnitState;
41427
 
class PragmaOnce;
41428
 
class CCExprResolve;
41429
 
class CExprResolve;
41430
 
namespace Puma {
41431
 
 
41432
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41433
 
class CT_NamedType : public CT_DeclSpec, public CSemObject {
41434
 
#line 41435 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41435
 
  friend class ::WinIfExists;
41436
 
  friend class ::WinImportHandler;
41437
 
  friend class ::WinMacros;
41438
 
  friend class ::CMatchSyntax;
41439
 
  friend class ::ExtGnu;
41440
 
  friend class ::ExtAC;
41441
 
  friend class ::ExtACBuilderCoupling;
41442
 
  friend class ::ExtACSyntaxCoupling;
41443
 
  friend class ::ExtACTree;
41444
 
  friend class ::ExtACKeywords;
41445
 
  friend class ::WinAsm;
41446
 
  friend class ::WinDeclSpecs;
41447
 
  friend class ::WinMemberExplSpec;
41448
 
  friend class ::WinTypeKeywords;
41449
 
  friend class ::PragmaOnceUnitState;
41450
 
  friend class ::PragmaOnce;
41451
 
  friend class ::CCExprResolve;
41452
 
  friend class ::CExprResolve;
41453
 
 
41454
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41455
 
 
41456
 
  CTree *sons[2]; // declspecs, declarator
41457
 
 
41458
 
public:
41459
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
41460
 
  static const char *NodeId ();
41461
 
  const char *NodeName () const { return NodeId (); }
41462
 
  int Sons () const { return CTree::Sons (sons, 2); }
41463
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
41464
 
  CTree *Declarator () const { return sons[1]; }
41465
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41466
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
41467
 
  }
41468
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
41469
 
};
41470
 
      
41471
 
 
41472
 
#line 41473 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41473
 
} // closed Puma
41474
 
class WinIfExists;
41475
 
class WinImportHandler;
41476
 
class WinMacros;
41477
 
class CMatchSyntax;
41478
 
class ExtGnu;
41479
 
class ExtAC;
41480
 
class ExtACBuilderCoupling;
41481
 
class ExtACSyntaxCoupling;
41482
 
class ExtACTree;
41483
 
class ExtACKeywords;
41484
 
class WinAsm;
41485
 
class WinDeclSpecs;
41486
 
class WinMemberExplSpec;
41487
 
class WinTypeKeywords;
41488
 
class PragmaOnceUnitState;
41489
 
class PragmaOnce;
41490
 
class CCExprResolve;
41491
 
class CExprResolve;
41492
 
namespace Puma {
41493
 
 
41494
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41495
 
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
41496
 
#line 41497 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41497
 
  friend class ::WinIfExists;
41498
 
  friend class ::WinImportHandler;
41499
 
  friend class ::WinMacros;
41500
 
  friend class ::CMatchSyntax;
41501
 
  friend class ::ExtGnu;
41502
 
  friend class ::ExtAC;
41503
 
  friend class ::ExtACBuilderCoupling;
41504
 
  friend class ::ExtACSyntaxCoupling;
41505
 
  friend class ::ExtACTree;
41506
 
  friend class ::ExtACKeywords;
41507
 
  friend class ::WinAsm;
41508
 
  friend class ::WinDeclSpecs;
41509
 
  friend class ::WinMemberExplSpec;
41510
 
  friend class ::WinTypeKeywords;
41511
 
  friend class ::PragmaOnceUnitState;
41512
 
  friend class ::PragmaOnce;
41513
 
  friend class ::CCExprResolve;
41514
 
  friend class ::CExprResolve;
41515
 
 
41516
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41517
 
 
41518
 
  CTree *sons[2]; // key, name
41519
 
  
41520
 
public:
41521
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
41522
 
  static const char *NodeId ();
41523
 
  const char *NodeName () const { return NodeId (); }
41524
 
  int Sons () const { return 2; }
41525
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
41526
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
41527
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
41528
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41529
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
41530
 
  }
41531
 
};
41532
 
 
41533
 
 
41534
 
#line 41535 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41535
 
} // closed Puma
41536
 
class WinIfExists;
41537
 
class WinImportHandler;
41538
 
class WinMacros;
41539
 
class CMatchSyntax;
41540
 
class ExtGnu;
41541
 
class ExtAC;
41542
 
class ExtACBuilderCoupling;
41543
 
class ExtACSyntaxCoupling;
41544
 
class ExtACTree;
41545
 
class ExtACKeywords;
41546
 
class WinAsm;
41547
 
class WinDeclSpecs;
41548
 
class WinMemberExplSpec;
41549
 
class WinTypeKeywords;
41550
 
class PragmaOnceUnitState;
41551
 
class PragmaOnce;
41552
 
class CCExprResolve;
41553
 
class CExprResolve;
41554
 
namespace Puma {
41555
 
 
41556
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41557
 
class CT_UnionSpec : public CT_ClassSpec {
41558
 
#line 41559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41559
 
  friend class ::WinIfExists;
41560
 
  friend class ::WinImportHandler;
41561
 
  friend class ::WinMacros;
41562
 
  friend class ::CMatchSyntax;
41563
 
  friend class ::ExtGnu;
41564
 
  friend class ::ExtAC;
41565
 
  friend class ::ExtACBuilderCoupling;
41566
 
  friend class ::ExtACSyntaxCoupling;
41567
 
  friend class ::ExtACTree;
41568
 
  friend class ::ExtACKeywords;
41569
 
  friend class ::WinAsm;
41570
 
  friend class ::WinDeclSpecs;
41571
 
  friend class ::WinMemberExplSpec;
41572
 
  friend class ::WinTypeKeywords;
41573
 
  friend class ::PragmaOnceUnitState;
41574
 
  friend class ::PragmaOnce;
41575
 
  friend class ::CCExprResolve;
41576
 
  friend class ::CExprResolve;
41577
 
 
41578
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41579
 
 
41580
 
public:
41581
 
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
41582
 
  static const char *NodeId ();
41583
 
  const char *NodeName () const { return NodeId (); }
41584
 
};
41585
 
 
41586
 
 
41587
 
#line 41588 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41588
 
} // closed Puma
41589
 
class WinIfExists;
41590
 
class WinImportHandler;
41591
 
class WinMacros;
41592
 
class CMatchSyntax;
41593
 
class ExtGnu;
41594
 
class ExtAC;
41595
 
class ExtACBuilderCoupling;
41596
 
class ExtACSyntaxCoupling;
41597
 
class ExtACTree;
41598
 
class ExtACKeywords;
41599
 
class WinAsm;
41600
 
class WinDeclSpecs;
41601
 
class WinMemberExplSpec;
41602
 
class WinTypeKeywords;
41603
 
class PragmaOnceUnitState;
41604
 
class PragmaOnce;
41605
 
class CCExprResolve;
41606
 
class CExprResolve;
41607
 
namespace Puma {
41608
 
 
41609
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41610
 
class CT_EnumSpec : public CT_ClassSpec {
41611
 
#line 41612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41612
 
  friend class ::WinIfExists;
41613
 
  friend class ::WinImportHandler;
41614
 
  friend class ::WinMacros;
41615
 
  friend class ::CMatchSyntax;
41616
 
  friend class ::ExtGnu;
41617
 
  friend class ::ExtAC;
41618
 
  friend class ::ExtACBuilderCoupling;
41619
 
  friend class ::ExtACSyntaxCoupling;
41620
 
  friend class ::ExtACTree;
41621
 
  friend class ::ExtACKeywords;
41622
 
  friend class ::WinAsm;
41623
 
  friend class ::WinDeclSpecs;
41624
 
  friend class ::WinMemberExplSpec;
41625
 
  friend class ::WinTypeKeywords;
41626
 
  friend class ::PragmaOnceUnitState;
41627
 
  friend class ::PragmaOnce;
41628
 
  friend class ::CCExprResolve;
41629
 
  friend class ::CExprResolve;
41630
 
 
41631
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41632
 
 
41633
 
public:
41634
 
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
41635
 
  static const char *NodeId ();
41636
 
  const char *NodeName () const { return NodeId (); }
41637
 
};
41638
 
 
41639
 
 
41640
 
#line 41641 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41641
 
} // closed Puma
41642
 
class WinIfExists;
41643
 
class WinImportHandler;
41644
 
class WinMacros;
41645
 
class CMatchSyntax;
41646
 
class ExtGnu;
41647
 
class ExtAC;
41648
 
class ExtACBuilderCoupling;
41649
 
class ExtACSyntaxCoupling;
41650
 
class ExtACTree;
41651
 
class ExtACKeywords;
41652
 
class WinAsm;
41653
 
class WinDeclSpecs;
41654
 
class WinMemberExplSpec;
41655
 
class WinTypeKeywords;
41656
 
class PragmaOnceUnitState;
41657
 
class PragmaOnce;
41658
 
class CCExprResolve;
41659
 
class CExprResolve;
41660
 
namespace Puma {
41661
 
 
41662
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41663
 
class CT_ExceptionSpec : public CT_DeclSpec {
41664
 
#line 41665 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41665
 
  friend class ::WinIfExists;
41666
 
  friend class ::WinImportHandler;
41667
 
  friend class ::WinMacros;
41668
 
  friend class ::CMatchSyntax;
41669
 
  friend class ::ExtGnu;
41670
 
  friend class ::ExtAC;
41671
 
  friend class ::ExtACBuilderCoupling;
41672
 
  friend class ::ExtACSyntaxCoupling;
41673
 
  friend class ::ExtACTree;
41674
 
  friend class ::ExtACKeywords;
41675
 
  friend class ::WinAsm;
41676
 
  friend class ::WinDeclSpecs;
41677
 
  friend class ::WinMemberExplSpec;
41678
 
  friend class ::WinTypeKeywords;
41679
 
  friend class ::PragmaOnceUnitState;
41680
 
  friend class ::PragmaOnce;
41681
 
  friend class ::CCExprResolve;
41682
 
  friend class ::CExprResolve;
41683
 
 
41684
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41685
 
 
41686
 
  CTree *sons[2]; // throw, type_id_list
41687
 
  
41688
 
public:
41689
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
41690
 
  static const char *NodeId ();
41691
 
  const char *NodeName () const { return NodeId (); }
41692
 
  int Sons () const { return 2; }
41693
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
41694
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
41695
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41696
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
41697
 
  }
41698
 
};
41699
 
 
41700
 
/*****************************************************************************/
41701
 
/*                                                                           */
41702
 
/*                              Declarations                                 */
41703
 
/*                                                                           */
41704
 
/*****************************************************************************/
41705
 
 
41706
 
 
41707
 
#line 41708 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41708
 
} // closed Puma
41709
 
class WinIfExists;
41710
 
class WinImportHandler;
41711
 
class WinMacros;
41712
 
class CMatchSyntax;
41713
 
class ExtGnu;
41714
 
class ExtAC;
41715
 
class ExtACBuilderCoupling;
41716
 
class ExtACSyntaxCoupling;
41717
 
class ExtACTree;
41718
 
class ExtACKeywords;
41719
 
class WinAsm;
41720
 
class WinDeclSpecs;
41721
 
class WinMemberExplSpec;
41722
 
class WinTypeKeywords;
41723
 
class PragmaOnceUnitState;
41724
 
class PragmaOnce;
41725
 
class CCExprResolve;
41726
 
class CExprResolve;
41727
 
namespace Puma {
41728
 
 
41729
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41730
 
class CT_Decl : public CTree {
41731
 
#line 41732 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41732
 
  friend class ::WinIfExists;
41733
 
  friend class ::WinImportHandler;
41734
 
  friend class ::WinMacros;
41735
 
  friend class ::CMatchSyntax;
41736
 
  friend class ::ExtGnu;
41737
 
  friend class ::ExtAC;
41738
 
  friend class ::ExtACBuilderCoupling;
41739
 
  friend class ::ExtACSyntaxCoupling;
41740
 
  friend class ::ExtACTree;
41741
 
  friend class ::ExtACKeywords;
41742
 
  friend class ::WinAsm;
41743
 
  friend class ::WinDeclSpecs;
41744
 
  friend class ::WinMemberExplSpec;
41745
 
  friend class ::WinTypeKeywords;
41746
 
  friend class ::PragmaOnceUnitState;
41747
 
  friend class ::PragmaOnce;
41748
 
  friend class ::CCExprResolve;
41749
 
  friend class ::CExprResolve;
41750
 
 
41751
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41752
 
 
41753
 
  CT_LinkageSpec *_linkage;
41754
 
protected:
41755
 
  CT_Decl () : _linkage (0) {}
41756
 
public:
41757
 
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
41758
 
  CT_LinkageSpec *Linkage () const { return _linkage; }
41759
 
};
41760
 
 
41761
 
 
41762
 
#line 41763 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41763
 
} // closed Puma
41764
 
class WinIfExists;
41765
 
class WinImportHandler;
41766
 
class WinMacros;
41767
 
class CMatchSyntax;
41768
 
class ExtGnu;
41769
 
class ExtAC;
41770
 
class ExtACBuilderCoupling;
41771
 
class ExtACSyntaxCoupling;
41772
 
class ExtACTree;
41773
 
class ExtACKeywords;
41774
 
class WinAsm;
41775
 
class WinDeclSpecs;
41776
 
class WinMemberExplSpec;
41777
 
class WinTypeKeywords;
41778
 
class PragmaOnceUnitState;
41779
 
class PragmaOnce;
41780
 
class CCExprResolve;
41781
 
class CExprResolve;
41782
 
namespace Puma {
41783
 
 
41784
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41785
 
class CT_Program : public CT_DeclList, public CSemScope {
41786
 
#line 41787 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41787
 
  friend class ::WinIfExists;
41788
 
  friend class ::WinImportHandler;
41789
 
  friend class ::WinMacros;
41790
 
  friend class ::CMatchSyntax;
41791
 
  friend class ::ExtGnu;
41792
 
  friend class ::ExtAC;
41793
 
  friend class ::ExtACBuilderCoupling;
41794
 
  friend class ::ExtACSyntaxCoupling;
41795
 
  friend class ::ExtACTree;
41796
 
  friend class ::ExtACKeywords;
41797
 
  friend class ::WinAsm;
41798
 
  friend class ::WinDeclSpecs;
41799
 
  friend class ::WinMemberExplSpec;
41800
 
  friend class ::WinTypeKeywords;
41801
 
  friend class ::PragmaOnceUnitState;
41802
 
  friend class ::PragmaOnce;
41803
 
  friend class ::CCExprResolve;
41804
 
  friend class ::CExprResolve;
41805
 
 
41806
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41807
 
 
41808
 
public:
41809
 
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
41810
 
  static const char *NodeId ();
41811
 
  const char *NodeName () const { return NodeId (); }
41812
 
};
41813
 
   
41814
 
 
41815
 
#line 41816 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41816
 
} // closed Puma
41817
 
class WinIfExists;
41818
 
class WinImportHandler;
41819
 
class WinMacros;
41820
 
class CMatchSyntax;
41821
 
class ExtGnu;
41822
 
class ExtAC;
41823
 
class ExtACBuilderCoupling;
41824
 
class ExtACSyntaxCoupling;
41825
 
class ExtACTree;
41826
 
class ExtACKeywords;
41827
 
class WinAsm;
41828
 
class WinDeclSpecs;
41829
 
class WinMemberExplSpec;
41830
 
class WinTypeKeywords;
41831
 
class PragmaOnceUnitState;
41832
 
class PragmaOnce;
41833
 
class CCExprResolve;
41834
 
class CExprResolve;
41835
 
namespace Puma {
41836
 
 
41837
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41838
 
class CT_ObjDecl : public CT_Decl {
41839
 
#line 41840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41840
 
  friend class ::WinIfExists;
41841
 
  friend class ::WinImportHandler;
41842
 
  friend class ::WinMacros;
41843
 
  friend class ::CMatchSyntax;
41844
 
  friend class ::ExtGnu;
41845
 
  friend class ::ExtAC;
41846
 
  friend class ::ExtACBuilderCoupling;
41847
 
  friend class ::ExtACSyntaxCoupling;
41848
 
  friend class ::ExtACTree;
41849
 
  friend class ::ExtACKeywords;
41850
 
  friend class ::WinAsm;
41851
 
  friend class ::WinDeclSpecs;
41852
 
  friend class ::WinMemberExplSpec;
41853
 
  friend class ::WinTypeKeywords;
41854
 
  friend class ::PragmaOnceUnitState;
41855
 
  friend class ::PragmaOnce;
41856
 
  friend class ::CCExprResolve;
41857
 
  friend class ::CExprResolve;
41858
 
 
41859
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41860
 
 
41861
 
  CTree *sons[3]; // declspecs, declarators, colon
41862
 
 
41863
 
public:
41864
 
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
41865
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
41866
 
  }
41867
 
  static const char *NodeId ();
41868
 
  const char *NodeName () const { return NodeId (); }
41869
 
  int Sons () const { return 3; }
41870
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
41871
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
41872
 
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
41873
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41874
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
41875
 
  }
41876
 
};
41877
 
 
41878
 
 
41879
 
#line 41880 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41880
 
} // closed Puma
41881
 
class WinIfExists;
41882
 
class WinImportHandler;
41883
 
class WinMacros;
41884
 
class CMatchSyntax;
41885
 
class ExtGnu;
41886
 
class ExtAC;
41887
 
class ExtACBuilderCoupling;
41888
 
class ExtACSyntaxCoupling;
41889
 
class ExtACTree;
41890
 
class ExtACKeywords;
41891
 
class WinAsm;
41892
 
class WinDeclSpecs;
41893
 
class WinMemberExplSpec;
41894
 
class WinTypeKeywords;
41895
 
class PragmaOnceUnitState;
41896
 
class PragmaOnce;
41897
 
class CCExprResolve;
41898
 
class CExprResolve;
41899
 
namespace Puma {
41900
 
 
41901
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41902
 
class CT_TemplateDecl : public CT_Decl, public CSemScope {
41903
 
#line 41904 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41904
 
  friend class ::WinIfExists;
41905
 
  friend class ::WinImportHandler;
41906
 
  friend class ::WinMacros;
41907
 
  friend class ::CMatchSyntax;
41908
 
  friend class ::ExtGnu;
41909
 
  friend class ::ExtAC;
41910
 
  friend class ::ExtACBuilderCoupling;
41911
 
  friend class ::ExtACSyntaxCoupling;
41912
 
  friend class ::ExtACTree;
41913
 
  friend class ::ExtACKeywords;
41914
 
  friend class ::WinAsm;
41915
 
  friend class ::WinDeclSpecs;
41916
 
  friend class ::WinMemberExplSpec;
41917
 
  friend class ::WinTypeKeywords;
41918
 
  friend class ::PragmaOnceUnitState;
41919
 
  friend class ::PragmaOnce;
41920
 
  friend class ::CCExprResolve;
41921
 
  friend class ::CExprResolve;
41922
 
 
41923
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41924
 
 
41925
 
  CTree *sons[3]; // export, param_list, decl
41926
 
 
41927
 
public:
41928
 
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
41929
 
    sons[0] = e; sons[1] = p; sons[2] = d;
41930
 
  }
41931
 
  static const char *NodeId ();
41932
 
  const char *NodeName () const { return NodeId (); }
41933
 
  int Sons () const { return CTree::Sons (sons, 3); }
41934
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
41935
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41936
 
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
41937
 
  }
41938
 
  CTree *Export () const { return sons[0]; }
41939
 
  CT_TemplateParamList *Parameters () const { 
41940
 
    return (CT_TemplateParamList*)sons[1]; 
41941
 
  }
41942
 
  CTree *Declaration () const { return sons[2]; }
41943
 
};
41944
 
 
41945
 
 
41946
 
#line 41947 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41947
 
} // closed Puma
41948
 
class WinIfExists;
41949
 
class WinImportHandler;
41950
 
class WinMacros;
41951
 
class CMatchSyntax;
41952
 
class ExtGnu;
41953
 
class ExtAC;
41954
 
class ExtACBuilderCoupling;
41955
 
class ExtACSyntaxCoupling;
41956
 
class ExtACTree;
41957
 
class ExtACKeywords;
41958
 
class WinAsm;
41959
 
class WinDeclSpecs;
41960
 
class WinMemberExplSpec;
41961
 
class WinTypeKeywords;
41962
 
class PragmaOnceUnitState;
41963
 
class PragmaOnce;
41964
 
class CCExprResolve;
41965
 
class CExprResolve;
41966
 
namespace Puma {
41967
 
 
41968
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41969
 
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
41970
 
#line 41971 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
41971
 
  friend class ::WinIfExists;
41972
 
  friend class ::WinImportHandler;
41973
 
  friend class ::WinMacros;
41974
 
  friend class ::CMatchSyntax;
41975
 
  friend class ::ExtGnu;
41976
 
  friend class ::ExtAC;
41977
 
  friend class ::ExtACBuilderCoupling;
41978
 
  friend class ::ExtACSyntaxCoupling;
41979
 
  friend class ::ExtACTree;
41980
 
  friend class ::ExtACKeywords;
41981
 
  friend class ::WinAsm;
41982
 
  friend class ::WinDeclSpecs;
41983
 
  friend class ::WinMemberExplSpec;
41984
 
  friend class ::WinTypeKeywords;
41985
 
  friend class ::PragmaOnceUnitState;
41986
 
  friend class ::PragmaOnce;
41987
 
  friend class ::CCExprResolve;
41988
 
  friend class ::CExprResolve;
41989
 
 
41990
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41991
 
 
41992
 
protected:
41993
 
  CT_TemplateParamDecl () {}
41994
 
  
41995
 
public:
41996
 
  virtual CT_ExprList *DefaultArgument () const = 0;
41997
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
41998
 
};
41999
 
 
42000
 
 
42001
 
#line 42002 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42002
 
} // closed Puma
42003
 
class WinIfExists;
42004
 
class WinImportHandler;
42005
 
class WinMacros;
42006
 
class CMatchSyntax;
42007
 
class ExtGnu;
42008
 
class ExtAC;
42009
 
class ExtACBuilderCoupling;
42010
 
class ExtACSyntaxCoupling;
42011
 
class ExtACTree;
42012
 
class ExtACKeywords;
42013
 
class WinAsm;
42014
 
class WinDeclSpecs;
42015
 
class WinMemberExplSpec;
42016
 
class WinTypeKeywords;
42017
 
class PragmaOnceUnitState;
42018
 
class PragmaOnce;
42019
 
class CCExprResolve;
42020
 
class CExprResolve;
42021
 
namespace Puma {
42022
 
 
42023
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42024
 
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
42025
 
#line 42026 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42026
 
  friend class ::WinIfExists;
42027
 
  friend class ::WinImportHandler;
42028
 
  friend class ::WinMacros;
42029
 
  friend class ::CMatchSyntax;
42030
 
  friend class ::ExtGnu;
42031
 
  friend class ::ExtAC;
42032
 
  friend class ::ExtACBuilderCoupling;
42033
 
  friend class ::ExtACSyntaxCoupling;
42034
 
  friend class ::ExtACTree;
42035
 
  friend class ::ExtACKeywords;
42036
 
  friend class ::WinAsm;
42037
 
  friend class ::WinDeclSpecs;
42038
 
  friend class ::WinMemberExplSpec;
42039
 
  friend class ::WinTypeKeywords;
42040
 
  friend class ::PragmaOnceUnitState;
42041
 
  friend class ::PragmaOnce;
42042
 
  friend class ::CCExprResolve;
42043
 
  friend class ::CExprResolve;
42044
 
 
42045
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42046
 
 
42047
 
  CTree *sons[3]; // declspecs, declarator, init
42048
 
 
42049
 
public:
42050
 
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
42051
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
42052
 
  }
42053
 
  static const char *NodeId ();
42054
 
  const char *NodeName () const { return NodeId (); }
42055
 
  int Sons () const { return CTree::Sons (sons, 3); }
42056
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
42057
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
42058
 
  CTree *Declarator () const { return sons[1]; }
42059
 
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
42060
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
42061
 
  void Initializer (CTree *i) { sons[2] = i; }
42062
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42063
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
42064
 
  }
42065
 
};
42066
 
 
42067
 
 
42068
 
#line 42069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42069
 
} // closed Puma
42070
 
class WinIfExists;
42071
 
class WinImportHandler;
42072
 
class WinMacros;
42073
 
class CMatchSyntax;
42074
 
class ExtGnu;
42075
 
class ExtAC;
42076
 
class ExtACBuilderCoupling;
42077
 
class ExtACSyntaxCoupling;
42078
 
class ExtACTree;
42079
 
class ExtACKeywords;
42080
 
class WinAsm;
42081
 
class WinDeclSpecs;
42082
 
class WinMemberExplSpec;
42083
 
class WinTypeKeywords;
42084
 
class PragmaOnceUnitState;
42085
 
class PragmaOnce;
42086
 
class CCExprResolve;
42087
 
class CExprResolve;
42088
 
namespace Puma {
42089
 
 
42090
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42091
 
class CT_TypeParamDecl : public CT_TemplateParamDecl {
42092
 
#line 42093 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42093
 
  friend class ::WinIfExists;
42094
 
  friend class ::WinImportHandler;
42095
 
  friend class ::WinMacros;
42096
 
  friend class ::CMatchSyntax;
42097
 
  friend class ::ExtGnu;
42098
 
  friend class ::ExtAC;
42099
 
  friend class ::ExtACBuilderCoupling;
42100
 
  friend class ::ExtACSyntaxCoupling;
42101
 
  friend class ::ExtACTree;
42102
 
  friend class ::ExtACKeywords;
42103
 
  friend class ::WinAsm;
42104
 
  friend class ::WinDeclSpecs;
42105
 
  friend class ::WinMemberExplSpec;
42106
 
  friend class ::WinTypeKeywords;
42107
 
  friend class ::PragmaOnceUnitState;
42108
 
  friend class ::PragmaOnce;
42109
 
  friend class ::CCExprResolve;
42110
 
  friend class ::CExprResolve;
42111
 
 
42112
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42113
 
 
42114
 
  CTree *sons[4]; // params, key, id, init
42115
 
 
42116
 
public:
42117
 
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
42118
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
42119
 
  }
42120
 
  static const char *NodeId ();
42121
 
  const char *NodeName () const { return NodeId (); }
42122
 
  int Sons () const { return CTree::Sons (sons, 4); }
42123
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
42124
 
  CT_TemplateParamList *Parameters () const { 
42125
 
    return (CT_TemplateParamList*)sons[0]; 
42126
 
  }
42127
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
42128
 
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
42129
 
  void Initializer (CTree *i) { sons[3] = i; }
42130
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42131
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
42132
 
  }
42133
 
};
42134
 
 
42135
 
 
42136
 
#line 42137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42137
 
} // closed Puma
42138
 
class WinIfExists;
42139
 
class WinImportHandler;
42140
 
class WinMacros;
42141
 
class CMatchSyntax;
42142
 
class ExtGnu;
42143
 
class ExtAC;
42144
 
class ExtACBuilderCoupling;
42145
 
class ExtACSyntaxCoupling;
42146
 
class ExtACTree;
42147
 
class ExtACKeywords;
42148
 
class WinAsm;
42149
 
class WinDeclSpecs;
42150
 
class WinMemberExplSpec;
42151
 
class WinTypeKeywords;
42152
 
class PragmaOnceUnitState;
42153
 
class PragmaOnce;
42154
 
class CCExprResolve;
42155
 
class CExprResolve;
42156
 
namespace Puma {
42157
 
 
42158
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42159
 
class CT_EnumDef : public CT_Decl, public CSemObject {
42160
 
#line 42161 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42161
 
  friend class ::WinIfExists;
42162
 
  friend class ::WinImportHandler;
42163
 
  friend class ::WinMacros;
42164
 
  friend class ::CMatchSyntax;
42165
 
  friend class ::ExtGnu;
42166
 
  friend class ::ExtAC;
42167
 
  friend class ::ExtACBuilderCoupling;
42168
 
  friend class ::ExtACSyntaxCoupling;
42169
 
  friend class ::ExtACTree;
42170
 
  friend class ::ExtACKeywords;
42171
 
  friend class ::WinAsm;
42172
 
  friend class ::WinDeclSpecs;
42173
 
  friend class ::WinMemberExplSpec;
42174
 
  friend class ::WinTypeKeywords;
42175
 
  friend class ::PragmaOnceUnitState;
42176
 
  friend class ::PragmaOnce;
42177
 
  friend class ::CCExprResolve;
42178
 
  friend class ::CExprResolve;
42179
 
 
42180
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42181
 
 
42182
 
  CTree *sons[3]; // key, name, enumerators
42183
 
 
42184
 
public:
42185
 
  CT_EnumDef (CTree *k, CTree *n) {
42186
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
42187
 
  }
42188
 
  static const char *NodeId ();
42189
 
  const char *NodeName () const { return NodeId (); }
42190
 
  int Sons () const { return CTree::Sons (sons, 3); }
42191
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
42192
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
42193
 
  void Enumerators (CTree *el) { sons[2] = el; }
42194
 
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
42195
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42196
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
42197
 
  }
42198
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
42199
 
};
42200
 
 
42201
 
 
42202
 
#line 42203 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42203
 
} // closed Puma
42204
 
class WinIfExists;
42205
 
class WinImportHandler;
42206
 
class WinMacros;
42207
 
class CMatchSyntax;
42208
 
class ExtGnu;
42209
 
class ExtAC;
42210
 
class ExtACBuilderCoupling;
42211
 
class ExtACSyntaxCoupling;
42212
 
class ExtACTree;
42213
 
class ExtACKeywords;
42214
 
class WinAsm;
42215
 
class WinDeclSpecs;
42216
 
class WinMemberExplSpec;
42217
 
class WinTypeKeywords;
42218
 
class PragmaOnceUnitState;
42219
 
class PragmaOnce;
42220
 
class CCExprResolve;
42221
 
class CExprResolve;
42222
 
namespace Puma {
42223
 
 
42224
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42225
 
class CT_Enumerator : public CT_Decl, public CSemObject {
42226
 
#line 42227 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42227
 
  friend class ::WinIfExists;
42228
 
  friend class ::WinImportHandler;
42229
 
  friend class ::WinMacros;
42230
 
  friend class ::CMatchSyntax;
42231
 
  friend class ::ExtGnu;
42232
 
  friend class ::ExtAC;
42233
 
  friend class ::ExtACBuilderCoupling;
42234
 
  friend class ::ExtACSyntaxCoupling;
42235
 
  friend class ::ExtACTree;
42236
 
  friend class ::ExtACKeywords;
42237
 
  friend class ::WinAsm;
42238
 
  friend class ::WinDeclSpecs;
42239
 
  friend class ::WinMemberExplSpec;
42240
 
  friend class ::WinTypeKeywords;
42241
 
  friend class ::PragmaOnceUnitState;
42242
 
  friend class ::PragmaOnce;
42243
 
  friend class ::CCExprResolve;
42244
 
  friend class ::CExprResolve;
42245
 
 
42246
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42247
 
 
42248
 
  CTree *sons[2]; // name, init
42249
 
 
42250
 
public:
42251
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
42252
 
  static const char *NodeId ();
42253
 
  const char *NodeName () const { return NodeId (); }
42254
 
  int Sons () const { return CTree::Sons (sons, 2); }
42255
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
42256
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
42257
 
  void Initializer (CTree *i) { sons[1] = i; }
42258
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
42259
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42260
 
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
42261
 
  }
42262
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
42263
 
};
42264
 
 
42265
 
 
42266
 
#line 42267 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42267
 
} // closed Puma
42268
 
class WinIfExists;
42269
 
class WinImportHandler;
42270
 
class WinMacros;
42271
 
class CMatchSyntax;
42272
 
class ExtGnu;
42273
 
class ExtAC;
42274
 
class ExtACBuilderCoupling;
42275
 
class ExtACSyntaxCoupling;
42276
 
class ExtACTree;
42277
 
class ExtACKeywords;
42278
 
class WinAsm;
42279
 
class WinDeclSpecs;
42280
 
class WinMemberExplSpec;
42281
 
class WinTypeKeywords;
42282
 
class PragmaOnceUnitState;
42283
 
class PragmaOnce;
42284
 
class CCExprResolve;
42285
 
class CExprResolve;
42286
 
namespace Puma {
42287
 
 
42288
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42289
 
class CT_FctDef : public CT_Decl, public CSemObject {
42290
 
#line 42291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42291
 
  friend class ::WinIfExists;
42292
 
  friend class ::WinImportHandler;
42293
 
  friend class ::WinMacros;
42294
 
  friend class ::CMatchSyntax;
42295
 
  friend class ::ExtGnu;
42296
 
  friend class ::ExtAC;
42297
 
  friend class ::ExtACBuilderCoupling;
42298
 
  friend class ::ExtACSyntaxCoupling;
42299
 
  friend class ::ExtACTree;
42300
 
  friend class ::ExtACKeywords;
42301
 
  friend class ::WinAsm;
42302
 
  friend class ::WinDeclSpecs;
42303
 
  friend class ::WinMemberExplSpec;
42304
 
  friend class ::WinTypeKeywords;
42305
 
  friend class ::PragmaOnceUnitState;
42306
 
  friend class ::PragmaOnce;
42307
 
  friend class ::CCExprResolve;
42308
 
  friend class ::CExprResolve;
42309
 
 
42310
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42311
 
 
42312
 
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
42313
 
 
42314
 
public:
42315
 
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
42316
 
             CTree *b, CTree *hs) {
42317
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
42318
 
    sons[5] = b; sons[6] = hs; 
42319
 
  }
42320
 
  static const char *NodeId ();
42321
 
  const char *NodeName () const { return NodeId (); }
42322
 
  int Sons () const { return CTree::Sons (sons, 7); }
42323
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
42324
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
42325
 
  CTree *Declarator () const { return sons[1]; }
42326
 
  CT_Token *TryKey () const { return (CT_Token*)sons[2]; }
42327
 
  CTree *CtorInit () const { return sons[3]; }
42328
 
  CT_ArgDeclSeq *ArgDeclSeq () const { return (CT_ArgDeclSeq*)sons[4]; }
42329
 
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
42330
 
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
42331
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
42332
 
  void CtorInit (CTree *i) { sons[3] = i; }
42333
 
  void Body (CTree *b) { sons[5] = b; }
42334
 
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
42335
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
42336
 
  }
42337
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42338
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
42339
 
  }
42340
 
};
42341
 
 
42342
 
 
42343
 
#line 42344 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42344
 
} // closed Puma
42345
 
class WinIfExists;
42346
 
class WinImportHandler;
42347
 
class WinMacros;
42348
 
class CMatchSyntax;
42349
 
class ExtGnu;
42350
 
class ExtAC;
42351
 
class ExtACBuilderCoupling;
42352
 
class ExtACSyntaxCoupling;
42353
 
class ExtACTree;
42354
 
class ExtACKeywords;
42355
 
class WinAsm;
42356
 
class WinDeclSpecs;
42357
 
class WinMemberExplSpec;
42358
 
class WinTypeKeywords;
42359
 
class PragmaOnceUnitState;
42360
 
class PragmaOnce;
42361
 
class CCExprResolve;
42362
 
class CExprResolve;
42363
 
namespace Puma {
42364
 
 
42365
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42366
 
class CT_AsmDef : public CT_Decl {
42367
 
#line 42368 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42368
 
  friend class ::WinIfExists;
42369
 
  friend class ::WinImportHandler;
42370
 
  friend class ::WinMacros;
42371
 
  friend class ::CMatchSyntax;
42372
 
  friend class ::ExtGnu;
42373
 
  friend class ::ExtAC;
42374
 
  friend class ::ExtACBuilderCoupling;
42375
 
  friend class ::ExtACSyntaxCoupling;
42376
 
  friend class ::ExtACTree;
42377
 
  friend class ::ExtACKeywords;
42378
 
  friend class ::WinAsm;
42379
 
  friend class ::WinDeclSpecs;
42380
 
  friend class ::WinMemberExplSpec;
42381
 
  friend class ::WinTypeKeywords;
42382
 
  friend class ::PragmaOnceUnitState;
42383
 
  friend class ::PragmaOnce;
42384
 
  friend class ::CCExprResolve;
42385
 
  friend class ::CExprResolve;
42386
 
 
42387
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42388
 
 
42389
 
  CTree *sons[5]; // asm, open, str, close, semi_colon
42390
 
 
42391
 
public:
42392
 
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
42393
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
42394
 
  }
42395
 
  static const char *NodeId ();
42396
 
  const char *NodeName () const { return NodeId (); }
42397
 
  int Sons () const { return 5; }
42398
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
42399
 
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
42400
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42401
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
42402
 
  }
42403
 
};
42404
 
 
42405
 
 
42406
 
#line 42407 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42407
 
} // closed Puma
42408
 
class WinIfExists;
42409
 
class WinImportHandler;
42410
 
class WinMacros;
42411
 
class CMatchSyntax;
42412
 
class ExtGnu;
42413
 
class ExtAC;
42414
 
class ExtACBuilderCoupling;
42415
 
class ExtACSyntaxCoupling;
42416
 
class ExtACTree;
42417
 
class ExtACKeywords;
42418
 
class WinAsm;
42419
 
class WinDeclSpecs;
42420
 
class WinMemberExplSpec;
42421
 
class WinTypeKeywords;
42422
 
class PragmaOnceUnitState;
42423
 
class PragmaOnce;
42424
 
class CCExprResolve;
42425
 
class CExprResolve;
42426
 
namespace Puma {
42427
 
 
42428
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42429
 
class CT_Handler : public CT_Decl, public CSemScope {
42430
 
#line 42431 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42431
 
  friend class ::WinIfExists;
42432
 
  friend class ::WinImportHandler;
42433
 
  friend class ::WinMacros;
42434
 
  friend class ::CMatchSyntax;
42435
 
  friend class ::ExtGnu;
42436
 
  friend class ::ExtAC;
42437
 
  friend class ::ExtACBuilderCoupling;
42438
 
  friend class ::ExtACSyntaxCoupling;
42439
 
  friend class ::ExtACTree;
42440
 
  friend class ::ExtACKeywords;
42441
 
  friend class ::WinAsm;
42442
 
  friend class ::WinDeclSpecs;
42443
 
  friend class ::WinMemberExplSpec;
42444
 
  friend class ::WinTypeKeywords;
42445
 
  friend class ::PragmaOnceUnitState;
42446
 
  friend class ::PragmaOnce;
42447
 
  friend class ::CCExprResolve;
42448
 
  friend class ::CExprResolve;
42449
 
 
42450
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42451
 
 
42452
 
  CTree *sons[3]; // catch, exception_decl, stmt
42453
 
 
42454
 
public:
42455
 
  CT_Handler (CTree *c, CTree *e, CTree *s) {
42456
 
    sons[0] = c; sons[1] = e; sons[2] = s;
42457
 
  }
42458
 
  static const char *NodeId ();
42459
 
  const char *NodeName () const { return NodeId (); }
42460
 
  int Sons () const { return 3; }
42461
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
42462
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
42463
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
42464
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42465
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
42466
 
  }
42467
 
};
42468
 
 
42469
 
 
42470
 
#line 42471 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42471
 
} // closed Puma
42472
 
class WinIfExists;
42473
 
class WinImportHandler;
42474
 
class WinMacros;
42475
 
class CMatchSyntax;
42476
 
class ExtGnu;
42477
 
class ExtAC;
42478
 
class ExtACBuilderCoupling;
42479
 
class ExtACSyntaxCoupling;
42480
 
class ExtACTree;
42481
 
class ExtACKeywords;
42482
 
class WinAsm;
42483
 
class WinDeclSpecs;
42484
 
class WinMemberExplSpec;
42485
 
class WinTypeKeywords;
42486
 
class PragmaOnceUnitState;
42487
 
class PragmaOnce;
42488
 
class CCExprResolve;
42489
 
class CExprResolve;
42490
 
namespace Puma {
42491
 
 
42492
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42493
 
class CT_LinkageSpec : public CT_Decl {
42494
 
#line 42495 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42495
 
  friend class ::WinIfExists;
42496
 
  friend class ::WinImportHandler;
42497
 
  friend class ::WinMacros;
42498
 
  friend class ::CMatchSyntax;
42499
 
  friend class ::ExtGnu;
42500
 
  friend class ::ExtAC;
42501
 
  friend class ::ExtACBuilderCoupling;
42502
 
  friend class ::ExtACSyntaxCoupling;
42503
 
  friend class ::ExtACTree;
42504
 
  friend class ::ExtACKeywords;
42505
 
  friend class ::WinAsm;
42506
 
  friend class ::WinDeclSpecs;
42507
 
  friend class ::WinMemberExplSpec;
42508
 
  friend class ::WinTypeKeywords;
42509
 
  friend class ::PragmaOnceUnitState;
42510
 
  friend class ::PragmaOnce;
42511
 
  friend class ::CCExprResolve;
42512
 
  friend class ::CExprResolve;
42513
 
 
42514
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42515
 
 
42516
 
  CTree *sons[5]; // extern, str, open, decls, close
42517
 
 
42518
 
public:
42519
 
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
42520
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
42521
 
    if (isList ())
42522
 
      ((CT_DeclList*)Decls ())->Linkage (this);
42523
 
    else
42524
 
      ((CT_Decl*)Decls ())->Linkage (this);
42525
 
  }
42526
 
  static const char *NodeId ();
42527
 
  const char *NodeName () const { return NodeId (); }
42528
 
  int Sons () const { return CTree::Sons (sons, 5); }
42529
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
42530
 
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
42531
 
  CTree *Decls () const { return sons[3]; }
42532
 
  bool isList () const {
42533
 
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
42534
 
  }
42535
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42536
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
42537
 
  }
42538
 
};
42539
 
 
42540
 
 
42541
 
#line 42542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42542
 
} // closed Puma
42543
 
class WinIfExists;
42544
 
class WinImportHandler;
42545
 
class WinMacros;
42546
 
class CMatchSyntax;
42547
 
class ExtGnu;
42548
 
class ExtAC;
42549
 
class ExtACBuilderCoupling;
42550
 
class ExtACSyntaxCoupling;
42551
 
class ExtACTree;
42552
 
class ExtACKeywords;
42553
 
class WinAsm;
42554
 
class WinDeclSpecs;
42555
 
class WinMemberExplSpec;
42556
 
class WinTypeKeywords;
42557
 
class PragmaOnceUnitState;
42558
 
class PragmaOnce;
42559
 
class CCExprResolve;
42560
 
class CExprResolve;
42561
 
namespace Puma {
42562
 
 
42563
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42564
 
class CT_ArgDecl : public CT_Decl, public CSemObject {
42565
 
#line 42566 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42566
 
  friend class ::WinIfExists;
42567
 
  friend class ::WinImportHandler;
42568
 
  friend class ::WinMacros;
42569
 
  friend class ::CMatchSyntax;
42570
 
  friend class ::ExtGnu;
42571
 
  friend class ::ExtAC;
42572
 
  friend class ::ExtACBuilderCoupling;
42573
 
  friend class ::ExtACSyntaxCoupling;
42574
 
  friend class ::ExtACTree;
42575
 
  friend class ::ExtACKeywords;
42576
 
  friend class ::WinAsm;
42577
 
  friend class ::WinDeclSpecs;
42578
 
  friend class ::WinMemberExplSpec;
42579
 
  friend class ::WinTypeKeywords;
42580
 
  friend class ::PragmaOnceUnitState;
42581
 
  friend class ::PragmaOnce;
42582
 
  friend class ::CCExprResolve;
42583
 
  friend class ::CExprResolve;
42584
 
 
42585
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42586
 
 
42587
 
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
42588
 
 
42589
 
public:
42590
 
  CT_ArgDecl (CTree *dsl, CTree *d) {
42591
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
42592
 
  }
42593
 
  CT_ArgDecl (CTree *ellipsis) {
42594
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
42595
 
  }
42596
 
  static const char *NodeId ();
42597
 
  const char *NodeName () const { return NodeId (); }
42598
 
  int Sons () const { return CTree::Sons (sons, 4); }
42599
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
42600
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
42601
 
  CTree *Declarator () const { return sons[1]; }
42602
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
42603
 
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
42604
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
42605
 
  void Initializer (CTree *i) { sons[2] = i; }
42606
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42607
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
42608
 
  }
42609
 
};
42610
 
 
42611
 
 
42612
 
#line 42613 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42613
 
} // closed Puma
42614
 
class WinIfExists;
42615
 
class WinImportHandler;
42616
 
class WinMacros;
42617
 
class CMatchSyntax;
42618
 
class ExtGnu;
42619
 
class ExtAC;
42620
 
class ExtACBuilderCoupling;
42621
 
class ExtACSyntaxCoupling;
42622
 
class ExtACTree;
42623
 
class ExtACKeywords;
42624
 
class WinAsm;
42625
 
class WinDeclSpecs;
42626
 
class WinMemberExplSpec;
42627
 
class WinTypeKeywords;
42628
 
class PragmaOnceUnitState;
42629
 
class PragmaOnce;
42630
 
class CCExprResolve;
42631
 
class CExprResolve;
42632
 
namespace Puma {
42633
 
 
42634
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42635
 
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
42636
 
#line 42637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42637
 
  friend class ::WinIfExists;
42638
 
  friend class ::WinImportHandler;
42639
 
  friend class ::WinMacros;
42640
 
  friend class ::CMatchSyntax;
42641
 
  friend class ::ExtGnu;
42642
 
  friend class ::ExtAC;
42643
 
  friend class ::ExtACBuilderCoupling;
42644
 
  friend class ::ExtACSyntaxCoupling;
42645
 
  friend class ::ExtACTree;
42646
 
  friend class ::ExtACKeywords;
42647
 
  friend class ::WinAsm;
42648
 
  friend class ::WinDeclSpecs;
42649
 
  friend class ::WinMemberExplSpec;
42650
 
  friend class ::WinTypeKeywords;
42651
 
  friend class ::PragmaOnceUnitState;
42652
 
  friend class ::PragmaOnce;
42653
 
  friend class ::CCExprResolve;
42654
 
  friend class ::CExprResolve;
42655
 
 
42656
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42657
 
 
42658
 
public:
42659
 
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
42660
 
   CT_DeclList (size, 2) { AddProperties (props); }
42661
 
  static const char *NodeId ();
42662
 
  const char *NodeName () const { return NodeId (); }
42663
 
};
42664
 
 
42665
 
 
42666
 
#line 42667 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42667
 
} // closed Puma
42668
 
class WinIfExists;
42669
 
class WinImportHandler;
42670
 
class WinMacros;
42671
 
class CMatchSyntax;
42672
 
class ExtGnu;
42673
 
class ExtAC;
42674
 
class ExtACBuilderCoupling;
42675
 
class ExtACSyntaxCoupling;
42676
 
class ExtACTree;
42677
 
class ExtACKeywords;
42678
 
class WinAsm;
42679
 
class WinDeclSpecs;
42680
 
class WinMemberExplSpec;
42681
 
class WinTypeKeywords;
42682
 
class PragmaOnceUnitState;
42683
 
class PragmaOnce;
42684
 
class CCExprResolve;
42685
 
class CExprResolve;
42686
 
namespace Puma {
42687
 
 
42688
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42689
 
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
42690
 
#line 42691 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42691
 
  friend class ::WinIfExists;
42692
 
  friend class ::WinImportHandler;
42693
 
  friend class ::WinMacros;
42694
 
  friend class ::CMatchSyntax;
42695
 
  friend class ::ExtGnu;
42696
 
  friend class ::ExtAC;
42697
 
  friend class ::ExtACBuilderCoupling;
42698
 
  friend class ::ExtACSyntaxCoupling;
42699
 
  friend class ::ExtACTree;
42700
 
  friend class ::ExtACKeywords;
42701
 
  friend class ::WinAsm;
42702
 
  friend class ::WinDeclSpecs;
42703
 
  friend class ::WinMemberExplSpec;
42704
 
  friend class ::WinTypeKeywords;
42705
 
  friend class ::PragmaOnceUnitState;
42706
 
  friend class ::PragmaOnce;
42707
 
  friend class ::CCExprResolve;
42708
 
  friend class ::CExprResolve;
42709
 
 
42710
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42711
 
 
42712
 
public:
42713
 
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
42714
 
  static const char *NodeId ();
42715
 
  const char *NodeName () const { return NodeId (); }
42716
 
};
42717
 
 
42718
 
 
42719
 
#line 42720 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42720
 
} // closed Puma
42721
 
class WinIfExists;
42722
 
class WinImportHandler;
42723
 
class WinMacros;
42724
 
class CMatchSyntax;
42725
 
class ExtGnu;
42726
 
class ExtAC;
42727
 
class ExtACBuilderCoupling;
42728
 
class ExtACSyntaxCoupling;
42729
 
class ExtACTree;
42730
 
class ExtACKeywords;
42731
 
class WinAsm;
42732
 
class WinDeclSpecs;
42733
 
class WinMemberExplSpec;
42734
 
class WinTypeKeywords;
42735
 
class PragmaOnceUnitState;
42736
 
class PragmaOnce;
42737
 
class CCExprResolve;
42738
 
class CExprResolve;
42739
 
namespace Puma {
42740
 
 
42741
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42742
 
class CT_ArgNameList : public CT_ArgDeclList {
42743
 
#line 42744 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42744
 
  friend class ::WinIfExists;
42745
 
  friend class ::WinImportHandler;
42746
 
  friend class ::WinMacros;
42747
 
  friend class ::CMatchSyntax;
42748
 
  friend class ::ExtGnu;
42749
 
  friend class ::ExtAC;
42750
 
  friend class ::ExtACBuilderCoupling;
42751
 
  friend class ::ExtACSyntaxCoupling;
42752
 
  friend class ::ExtACTree;
42753
 
  friend class ::ExtACKeywords;
42754
 
  friend class ::WinAsm;
42755
 
  friend class ::WinDeclSpecs;
42756
 
  friend class ::WinMemberExplSpec;
42757
 
  friend class ::WinTypeKeywords;
42758
 
  friend class ::PragmaOnceUnitState;
42759
 
  friend class ::PragmaOnce;
42760
 
  friend class ::CCExprResolve;
42761
 
  friend class ::CExprResolve;
42762
 
 
42763
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42764
 
 
42765
 
public:
42766
 
  CT_ArgNameList () : CT_ArgDeclList () {}
42767
 
  static const char *NodeId ();
42768
 
  const char *NodeName () const { return NodeId (); }
42769
 
};
42770
 
 
42771
 
 
42772
 
#line 42773 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42773
 
} // closed Puma
42774
 
class WinIfExists;
42775
 
class WinImportHandler;
42776
 
class WinMacros;
42777
 
class CMatchSyntax;
42778
 
class ExtGnu;
42779
 
class ExtAC;
42780
 
class ExtACBuilderCoupling;
42781
 
class ExtACSyntaxCoupling;
42782
 
class ExtACTree;
42783
 
class ExtACKeywords;
42784
 
class WinAsm;
42785
 
class WinDeclSpecs;
42786
 
class WinMemberExplSpec;
42787
 
class WinTypeKeywords;
42788
 
class PragmaOnceUnitState;
42789
 
class PragmaOnce;
42790
 
class CCExprResolve;
42791
 
class CExprResolve;
42792
 
namespace Puma {
42793
 
 
42794
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42795
 
class CT_NamespaceDef : public CT_Decl, public CSemObject {
42796
 
#line 42797 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42797
 
  friend class ::WinIfExists;
42798
 
  friend class ::WinImportHandler;
42799
 
  friend class ::WinMacros;
42800
 
  friend class ::CMatchSyntax;
42801
 
  friend class ::ExtGnu;
42802
 
  friend class ::ExtAC;
42803
 
  friend class ::ExtACBuilderCoupling;
42804
 
  friend class ::ExtACSyntaxCoupling;
42805
 
  friend class ::ExtACTree;
42806
 
  friend class ::ExtACKeywords;
42807
 
  friend class ::WinAsm;
42808
 
  friend class ::WinDeclSpecs;
42809
 
  friend class ::WinMemberExplSpec;
42810
 
  friend class ::WinTypeKeywords;
42811
 
  friend class ::PragmaOnceUnitState;
42812
 
  friend class ::PragmaOnce;
42813
 
  friend class ::CCExprResolve;
42814
 
  friend class ::CExprResolve;
42815
 
 
42816
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42817
 
 
42818
 
  CTree *sons[3]; // ns, name, members
42819
 
 
42820
 
public:
42821
 
  CT_NamespaceDef (CTree *n, CTree *nm) {
42822
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
42823
 
  }
42824
 
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
42825
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
42826
 
  }
42827
 
  static const char *NodeId ();
42828
 
  const char *NodeName () const { return NodeId (); }
42829
 
  int Sons () const { return CTree::Sons (sons, 3); }
42830
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
42831
 
  void Members (CTree *m) { sons[2] = m; }
42832
 
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
42833
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
42834
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
42835
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42836
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
42837
 
  }
42838
 
};
42839
 
 
42840
 
 
42841
 
#line 42842 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42842
 
} // closed Puma
42843
 
class WinIfExists;
42844
 
class WinImportHandler;
42845
 
class WinMacros;
42846
 
class CMatchSyntax;
42847
 
class ExtGnu;
42848
 
class ExtAC;
42849
 
class ExtACBuilderCoupling;
42850
 
class ExtACSyntaxCoupling;
42851
 
class ExtACTree;
42852
 
class ExtACKeywords;
42853
 
class WinAsm;
42854
 
class WinDeclSpecs;
42855
 
class WinMemberExplSpec;
42856
 
class WinTypeKeywords;
42857
 
class PragmaOnceUnitState;
42858
 
class PragmaOnce;
42859
 
class CCExprResolve;
42860
 
class CExprResolve;
42861
 
namespace Puma {
42862
 
 
42863
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42864
 
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
42865
 
#line 42866 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42866
 
  friend class ::WinIfExists;
42867
 
  friend class ::WinImportHandler;
42868
 
  friend class ::WinMacros;
42869
 
  friend class ::CMatchSyntax;
42870
 
  friend class ::ExtGnu;
42871
 
  friend class ::ExtAC;
42872
 
  friend class ::ExtACBuilderCoupling;
42873
 
  friend class ::ExtACSyntaxCoupling;
42874
 
  friend class ::ExtACTree;
42875
 
  friend class ::ExtACKeywords;
42876
 
  friend class ::WinAsm;
42877
 
  friend class ::WinDeclSpecs;
42878
 
  friend class ::WinMemberExplSpec;
42879
 
  friend class ::WinTypeKeywords;
42880
 
  friend class ::PragmaOnceUnitState;
42881
 
  friend class ::PragmaOnce;
42882
 
  friend class ::CCExprResolve;
42883
 
  friend class ::CExprResolve;
42884
 
 
42885
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42886
 
 
42887
 
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
42888
 
 
42889
 
public:
42890
 
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
42891
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
42892
 
  }
42893
 
  static const char *NodeId ();
42894
 
  const char *NodeName () const { return NodeId (); }
42895
 
  int Sons () const { return 5; }
42896
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
42897
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
42898
 
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
42899
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
42900
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42901
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
42902
 
  }
42903
 
};
42904
 
 
42905
 
 
42906
 
#line 42907 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42907
 
} // closed Puma
42908
 
class WinIfExists;
42909
 
class WinImportHandler;
42910
 
class WinMacros;
42911
 
class CMatchSyntax;
42912
 
class ExtGnu;
42913
 
class ExtAC;
42914
 
class ExtACBuilderCoupling;
42915
 
class ExtACSyntaxCoupling;
42916
 
class ExtACTree;
42917
 
class ExtACKeywords;
42918
 
class WinAsm;
42919
 
class WinDeclSpecs;
42920
 
class WinMemberExplSpec;
42921
 
class WinTypeKeywords;
42922
 
class PragmaOnceUnitState;
42923
 
class PragmaOnce;
42924
 
class CCExprResolve;
42925
 
class CExprResolve;
42926
 
namespace Puma {
42927
 
 
42928
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42929
 
class CT_UsingDirective : public CT_Decl {
42930
 
#line 42931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42931
 
  friend class ::WinIfExists;
42932
 
  friend class ::WinImportHandler;
42933
 
  friend class ::WinMacros;
42934
 
  friend class ::CMatchSyntax;
42935
 
  friend class ::ExtGnu;
42936
 
  friend class ::ExtAC;
42937
 
  friend class ::ExtACBuilderCoupling;
42938
 
  friend class ::ExtACSyntaxCoupling;
42939
 
  friend class ::ExtACTree;
42940
 
  friend class ::ExtACKeywords;
42941
 
  friend class ::WinAsm;
42942
 
  friend class ::WinDeclSpecs;
42943
 
  friend class ::WinMemberExplSpec;
42944
 
  friend class ::WinTypeKeywords;
42945
 
  friend class ::PragmaOnceUnitState;
42946
 
  friend class ::PragmaOnce;
42947
 
  friend class ::CCExprResolve;
42948
 
  friend class ::CExprResolve;
42949
 
 
42950
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42951
 
 
42952
 
  CTree *sons[4]; // using, ns, name, semi_colon
42953
 
 
42954
 
public:
42955
 
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
42956
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
42957
 
  }
42958
 
  static const char *NodeId ();
42959
 
  const char *NodeName () const { return NodeId (); }
42960
 
  int Sons () const { return 4; }
42961
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
42962
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
42963
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42964
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
42965
 
  }
42966
 
};
42967
 
 
42968
 
/*****************************************************************************/
42969
 
/*                                                                           */
42970
 
/*                              Declarators                                  */
42971
 
/*                                                                           */
42972
 
/*****************************************************************************/
42973
 
 
42974
 
 
42975
 
#line 42976 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
42976
 
} // closed Puma
42977
 
class WinIfExists;
42978
 
class WinImportHandler;
42979
 
class WinMacros;
42980
 
class CMatchSyntax;
42981
 
class ExtGnu;
42982
 
class ExtAC;
42983
 
class ExtACBuilderCoupling;
42984
 
class ExtACSyntaxCoupling;
42985
 
class ExtACTree;
42986
 
class ExtACKeywords;
42987
 
class WinAsm;
42988
 
class WinDeclSpecs;
42989
 
class WinMemberExplSpec;
42990
 
class WinTypeKeywords;
42991
 
class PragmaOnceUnitState;
42992
 
class PragmaOnce;
42993
 
class CCExprResolve;
42994
 
class CExprResolve;
42995
 
namespace Puma {
42996
 
 
42997
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42998
 
class CT_Declarator : public CTree {
42999
 
#line 43000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43000
 
  friend class ::WinIfExists;
43001
 
  friend class ::WinImportHandler;
43002
 
  friend class ::WinMacros;
43003
 
  friend class ::CMatchSyntax;
43004
 
  friend class ::ExtGnu;
43005
 
  friend class ::ExtAC;
43006
 
  friend class ::ExtACBuilderCoupling;
43007
 
  friend class ::ExtACSyntaxCoupling;
43008
 
  friend class ::ExtACTree;
43009
 
  friend class ::ExtACKeywords;
43010
 
  friend class ::WinAsm;
43011
 
  friend class ::WinDeclSpecs;
43012
 
  friend class ::WinMemberExplSpec;
43013
 
  friend class ::WinTypeKeywords;
43014
 
  friend class ::PragmaOnceUnitState;
43015
 
  friend class ::PragmaOnce;
43016
 
  friend class ::CCExprResolve;
43017
 
  friend class ::CExprResolve;
43018
 
 
43019
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43020
 
 
43021
 
protected:
43022
 
  CT_Declarator () {}
43023
 
 
43024
 
public:
43025
 
  virtual CTree *Declarator () const = 0;
43026
 
  //classification function
43027
 
  virtual CT_Declarator *IsDeclarator () { return this; }
43028
 
  // locate the name node
43029
 
  CT_SimpleName *Name ();
43030
 
  CT_SimpleName *Name (CT_Declarator *&last_declarator);
43031
 
};
43032
 
 
43033
 
 
43034
 
#line 43035 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43035
 
} // closed Puma
43036
 
class WinIfExists;
43037
 
class WinImportHandler;
43038
 
class WinMacros;
43039
 
class CMatchSyntax;
43040
 
class ExtGnu;
43041
 
class ExtAC;
43042
 
class ExtACBuilderCoupling;
43043
 
class ExtACSyntaxCoupling;
43044
 
class ExtACTree;
43045
 
class ExtACKeywords;
43046
 
class WinAsm;
43047
 
class WinDeclSpecs;
43048
 
class WinMemberExplSpec;
43049
 
class WinTypeKeywords;
43050
 
class PragmaOnceUnitState;
43051
 
class PragmaOnce;
43052
 
class CCExprResolve;
43053
 
class CExprResolve;
43054
 
namespace Puma {
43055
 
 
43056
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43057
 
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
43058
 
#line 43059 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43059
 
  friend class ::WinIfExists;
43060
 
  friend class ::WinImportHandler;
43061
 
  friend class ::WinMacros;
43062
 
  friend class ::CMatchSyntax;
43063
 
  friend class ::ExtGnu;
43064
 
  friend class ::ExtAC;
43065
 
  friend class ::ExtACBuilderCoupling;
43066
 
  friend class ::ExtACSyntaxCoupling;
43067
 
  friend class ::ExtACTree;
43068
 
  friend class ::ExtACKeywords;
43069
 
  friend class ::WinAsm;
43070
 
  friend class ::WinDeclSpecs;
43071
 
  friend class ::WinMemberExplSpec;
43072
 
  friend class ::WinTypeKeywords;
43073
 
  friend class ::PragmaOnceUnitState;
43074
 
  friend class ::PragmaOnce;
43075
 
  friend class ::CCExprResolve;
43076
 
  friend class ::CExprResolve;
43077
 
 
43078
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43079
 
 
43080
 
  CTree *sons[2]; // declarator, init
43081
 
  CTree *obj_decl;
43082
 
 
43083
 
public:
43084
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
43085
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
43086
 
  }
43087
 
  static const char *NodeId ();
43088
 
  const char *NodeName () const { return NodeId (); }
43089
 
  int Sons () const { return CTree::Sons (sons, 2); }
43090
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
43091
 
  CTree *Declarator () const { return sons[0]; }
43092
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
43093
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
43094
 
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
43095
 
  void Initializer (CTree* i) { sons[1] = i; }
43096
 
  void ObjDecl (CTree *od) { obj_decl = od; }
43097
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43098
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
43099
 
  }
43100
 
};
43101
 
 
43102
 
 
43103
 
#line 43104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43104
 
} // closed Puma
43105
 
class WinIfExists;
43106
 
class WinImportHandler;
43107
 
class WinMacros;
43108
 
class CMatchSyntax;
43109
 
class ExtGnu;
43110
 
class ExtAC;
43111
 
class ExtACBuilderCoupling;
43112
 
class ExtACSyntaxCoupling;
43113
 
class ExtACTree;
43114
 
class ExtACKeywords;
43115
 
class WinAsm;
43116
 
class WinDeclSpecs;
43117
 
class WinMemberExplSpec;
43118
 
class WinTypeKeywords;
43119
 
class PragmaOnceUnitState;
43120
 
class PragmaOnce;
43121
 
class CCExprResolve;
43122
 
class CExprResolve;
43123
 
namespace Puma {
43124
 
 
43125
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43126
 
class CT_BracedDeclarator : public CT_Declarator {
43127
 
#line 43128 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43128
 
  friend class ::WinIfExists;
43129
 
  friend class ::WinImportHandler;
43130
 
  friend class ::WinMacros;
43131
 
  friend class ::CMatchSyntax;
43132
 
  friend class ::ExtGnu;
43133
 
  friend class ::ExtAC;
43134
 
  friend class ::ExtACBuilderCoupling;
43135
 
  friend class ::ExtACSyntaxCoupling;
43136
 
  friend class ::ExtACTree;
43137
 
  friend class ::ExtACKeywords;
43138
 
  friend class ::WinAsm;
43139
 
  friend class ::WinDeclSpecs;
43140
 
  friend class ::WinMemberExplSpec;
43141
 
  friend class ::WinTypeKeywords;
43142
 
  friend class ::PragmaOnceUnitState;
43143
 
  friend class ::PragmaOnce;
43144
 
  friend class ::CCExprResolve;
43145
 
  friend class ::CExprResolve;
43146
 
 
43147
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43148
 
 
43149
 
  CTree *sons[4]; // open, win_specs, declarator, close
43150
 
 
43151
 
public:
43152
 
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
43153
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
43154
 
  }
43155
 
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
43156
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
43157
 
  }
43158
 
  static const char *NodeId ();
43159
 
  const char *NodeName () const { return NodeId (); }
43160
 
  int Sons () const { return CTree::Sons (sons, 4); }
43161
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
43162
 
  CTree *Declarator () const { return sons[2]; }
43163
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43164
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
43165
 
  }
43166
 
};
43167
 
 
43168
 
 
43169
 
#line 43170 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43170
 
} // closed Puma
43171
 
class WinIfExists;
43172
 
class WinImportHandler;
43173
 
class WinMacros;
43174
 
class CMatchSyntax;
43175
 
class ExtGnu;
43176
 
class ExtAC;
43177
 
class ExtACBuilderCoupling;
43178
 
class ExtACSyntaxCoupling;
43179
 
class ExtACTree;
43180
 
class ExtACKeywords;
43181
 
class WinAsm;
43182
 
class WinDeclSpecs;
43183
 
class WinMemberExplSpec;
43184
 
class WinTypeKeywords;
43185
 
class PragmaOnceUnitState;
43186
 
class PragmaOnce;
43187
 
class CCExprResolve;
43188
 
class CExprResolve;
43189
 
namespace Puma {
43190
 
 
43191
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43192
 
class CT_ArrayDelimiter : public CTree {
43193
 
#line 43194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43194
 
  friend class ::WinIfExists;
43195
 
  friend class ::WinImportHandler;
43196
 
  friend class ::WinMacros;
43197
 
  friend class ::CMatchSyntax;
43198
 
  friend class ::ExtGnu;
43199
 
  friend class ::ExtAC;
43200
 
  friend class ::ExtACBuilderCoupling;
43201
 
  friend class ::ExtACSyntaxCoupling;
43202
 
  friend class ::ExtACTree;
43203
 
  friend class ::ExtACKeywords;
43204
 
  friend class ::WinAsm;
43205
 
  friend class ::WinDeclSpecs;
43206
 
  friend class ::WinMemberExplSpec;
43207
 
  friend class ::WinTypeKeywords;
43208
 
  friend class ::PragmaOnceUnitState;
43209
 
  friend class ::PragmaOnce;
43210
 
  friend class ::CCExprResolve;
43211
 
  friend class ::CExprResolve;
43212
 
 
43213
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43214
 
 
43215
 
  CTree *sons[4]; // star, static, quals, expr
43216
 
  bool pos0;
43217
 
 
43218
 
public:
43219
 
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
43220
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
43221
 
  }
43222
 
  static const char *NodeId ();
43223
 
  const char *NodeName () const { return NodeId (); }
43224
 
  int Sons () const { return CTree::Sons (sons, 4); }
43225
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
43226
 
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
43227
 
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
43228
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
43229
 
  CTree *Expr () const { return sons[3]; }
43230
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43231
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
43232
 
  }
43233
 
};
43234
 
 
43235
 
 
43236
 
#line 43237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43237
 
} // closed Puma
43238
 
class WinIfExists;
43239
 
class WinImportHandler;
43240
 
class WinMacros;
43241
 
class CMatchSyntax;
43242
 
class ExtGnu;
43243
 
class ExtAC;
43244
 
class ExtACBuilderCoupling;
43245
 
class ExtACSyntaxCoupling;
43246
 
class ExtACTree;
43247
 
class ExtACKeywords;
43248
 
class WinAsm;
43249
 
class WinDeclSpecs;
43250
 
class WinMemberExplSpec;
43251
 
class WinTypeKeywords;
43252
 
class PragmaOnceUnitState;
43253
 
class PragmaOnce;
43254
 
class CCExprResolve;
43255
 
class CExprResolve;
43256
 
namespace Puma {
43257
 
 
43258
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43259
 
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
43260
 
#line 43261 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43261
 
  friend class ::WinIfExists;
43262
 
  friend class ::WinImportHandler;
43263
 
  friend class ::WinMacros;
43264
 
  friend class ::CMatchSyntax;
43265
 
  friend class ::ExtGnu;
43266
 
  friend class ::ExtAC;
43267
 
  friend class ::ExtACBuilderCoupling;
43268
 
  friend class ::ExtACSyntaxCoupling;
43269
 
  friend class ::ExtACTree;
43270
 
  friend class ::ExtACKeywords;
43271
 
  friend class ::WinAsm;
43272
 
  friend class ::WinDeclSpecs;
43273
 
  friend class ::WinMemberExplSpec;
43274
 
  friend class ::WinTypeKeywords;
43275
 
  friend class ::PragmaOnceUnitState;
43276
 
  friend class ::PragmaOnce;
43277
 
  friend class ::CCExprResolve;
43278
 
  friend class ::CExprResolve;
43279
 
 
43280
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43281
 
 
43282
 
  CTree *sons[4]; // declarator, open, delim, close
43283
 
 
43284
 
public:
43285
 
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
43286
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
43287
 
  }
43288
 
  static const char *NodeId ();
43289
 
  const char *NodeName () const { return NodeId (); }
43290
 
  int Sons () const { return 4; }
43291
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
43292
 
  CTree *Declarator () const { return sons[0]; }
43293
 
  CT_ArrayDelimiter *Delimiter () const 
43294
 
   { return (CT_ArrayDelimiter*)sons[2]; }
43295
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43296
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
43297
 
  }
43298
 
  CTypeInfo *Type () const { return type; }
43299
 
  CExprValue *Value () const { return value; }
43300
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
43301
 
};
43302
 
 
43303
 
 
43304
 
#line 43305 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43305
 
} // closed Puma
43306
 
class WinIfExists;
43307
 
class WinImportHandler;
43308
 
class WinMacros;
43309
 
class CMatchSyntax;
43310
 
class ExtGnu;
43311
 
class ExtAC;
43312
 
class ExtACBuilderCoupling;
43313
 
class ExtACSyntaxCoupling;
43314
 
class ExtACTree;
43315
 
class ExtACKeywords;
43316
 
class WinAsm;
43317
 
class WinDeclSpecs;
43318
 
class WinMemberExplSpec;
43319
 
class WinTypeKeywords;
43320
 
class PragmaOnceUnitState;
43321
 
class PragmaOnce;
43322
 
class CCExprResolve;
43323
 
class CExprResolve;
43324
 
namespace Puma {
43325
 
 
43326
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43327
 
class CT_FctDeclarator : public CT_Declarator {
43328
 
#line 43329 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43329
 
  friend class ::WinIfExists;
43330
 
  friend class ::WinImportHandler;
43331
 
  friend class ::WinMacros;
43332
 
  friend class ::CMatchSyntax;
43333
 
  friend class ::ExtGnu;
43334
 
  friend class ::ExtAC;
43335
 
  friend class ::ExtACBuilderCoupling;
43336
 
  friend class ::ExtACSyntaxCoupling;
43337
 
  friend class ::ExtACTree;
43338
 
  friend class ::ExtACKeywords;
43339
 
  friend class ::WinAsm;
43340
 
  friend class ::WinDeclSpecs;
43341
 
  friend class ::WinMemberExplSpec;
43342
 
  friend class ::WinTypeKeywords;
43343
 
  friend class ::PragmaOnceUnitState;
43344
 
  friend class ::PragmaOnce;
43345
 
  friend class ::CCExprResolve;
43346
 
  friend class ::CExprResolve;
43347
 
 
43348
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43349
 
 
43350
 
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
43351
 
 
43352
 
public:
43353
 
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
43354
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
43355
 
  }
43356
 
  static const char *NodeId ();
43357
 
  const char *NodeName () const { return NodeId (); }
43358
 
  int Sons () const { return CTree::Sons (sons, 4); }
43359
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
43360
 
  CTree *Declarator () const { return sons[0]; }
43361
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
43362
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
43363
 
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
43364
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43365
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
43366
 
  }
43367
 
};
43368
 
 
43369
 
 
43370
 
#line 43371 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43371
 
} // closed Puma
43372
 
class WinIfExists;
43373
 
class WinImportHandler;
43374
 
class WinMacros;
43375
 
class CMatchSyntax;
43376
 
class ExtGnu;
43377
 
class ExtAC;
43378
 
class ExtACBuilderCoupling;
43379
 
class ExtACSyntaxCoupling;
43380
 
class ExtACTree;
43381
 
class ExtACKeywords;
43382
 
class WinAsm;
43383
 
class WinDeclSpecs;
43384
 
class WinMemberExplSpec;
43385
 
class WinTypeKeywords;
43386
 
class PragmaOnceUnitState;
43387
 
class PragmaOnce;
43388
 
class CCExprResolve;
43389
 
class CExprResolve;
43390
 
namespace Puma {
43391
 
 
43392
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43393
 
class CT_RefDeclarator : public CT_Declarator {
43394
 
#line 43395 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43395
 
  friend class ::WinIfExists;
43396
 
  friend class ::WinImportHandler;
43397
 
  friend class ::WinMacros;
43398
 
  friend class ::CMatchSyntax;
43399
 
  friend class ::ExtGnu;
43400
 
  friend class ::ExtAC;
43401
 
  friend class ::ExtACBuilderCoupling;
43402
 
  friend class ::ExtACSyntaxCoupling;
43403
 
  friend class ::ExtACTree;
43404
 
  friend class ::ExtACKeywords;
43405
 
  friend class ::WinAsm;
43406
 
  friend class ::WinDeclSpecs;
43407
 
  friend class ::WinMemberExplSpec;
43408
 
  friend class ::WinTypeKeywords;
43409
 
  friend class ::PragmaOnceUnitState;
43410
 
  friend class ::PragmaOnce;
43411
 
  friend class ::CCExprResolve;
43412
 
  friend class ::CExprResolve;
43413
 
 
43414
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43415
 
 
43416
 
  CTree *sons[2]; // ref, declarator
43417
 
 
43418
 
public:
43419
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
43420
 
  static const char *NodeId ();
43421
 
  const char *NodeName () const { return NodeId (); }
43422
 
  int Sons () const { return 2; }
43423
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
43424
 
  CTree *Declarator () const { return sons[1]; }
43425
 
  void ReplaceSon (CTree *old_son, CTree *new_son) {
43426
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
43427
 
  }
43428
 
};
43429
 
 
43430
 
 
43431
 
#line 43432 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43432
 
} // closed Puma
43433
 
class WinIfExists;
43434
 
class WinImportHandler;
43435
 
class WinMacros;
43436
 
class CMatchSyntax;
43437
 
class ExtGnu;
43438
 
class ExtAC;
43439
 
class ExtACBuilderCoupling;
43440
 
class ExtACSyntaxCoupling;
43441
 
class ExtACTree;
43442
 
class ExtACKeywords;
43443
 
class WinAsm;
43444
 
class WinDeclSpecs;
43445
 
class WinMemberExplSpec;
43446
 
class WinTypeKeywords;
43447
 
class PragmaOnceUnitState;
43448
 
class PragmaOnce;
43449
 
class CCExprResolve;
43450
 
class CExprResolve;
43451
 
namespace Puma {
43452
 
 
43453
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43454
 
class CT_PtrDeclarator : public CT_Declarator {
43455
 
#line 43456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43456
 
  friend class ::WinIfExists;
43457
 
  friend class ::WinImportHandler;
43458
 
  friend class ::WinMacros;
43459
 
  friend class ::CMatchSyntax;
43460
 
  friend class ::ExtGnu;
43461
 
  friend class ::ExtAC;
43462
 
  friend class ::ExtACBuilderCoupling;
43463
 
  friend class ::ExtACSyntaxCoupling;
43464
 
  friend class ::ExtACTree;
43465
 
  friend class ::ExtACKeywords;
43466
 
  friend class ::WinAsm;
43467
 
  friend class ::WinDeclSpecs;
43468
 
  friend class ::WinMemberExplSpec;
43469
 
  friend class ::WinTypeKeywords;
43470
 
  friend class ::PragmaOnceUnitState;
43471
 
  friend class ::PragmaOnce;
43472
 
  friend class ::CCExprResolve;
43473
 
  friend class ::CExprResolve;
43474
 
 
43475
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43476
 
 
43477
 
  CTree *sons[3]; // ptr, cv_quals, declarator
43478
 
 
43479
 
public:
43480
 
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
43481
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
43482
 
  }
43483
 
  static const char *NodeId ();
43484
 
  const char *NodeName () const { return NodeId (); }
43485
 
  int Sons () const { return CTree::Sons (sons, 3); }
43486
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
43487
 
  CTree *Declarator () const { return sons[2]; }
43488
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
43489
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43490
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
43491
 
  }
43492
 
};
43493
 
 
43494
 
 
43495
 
#line 43496 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43496
 
} // closed Puma
43497
 
class WinIfExists;
43498
 
class WinImportHandler;
43499
 
class WinMacros;
43500
 
class CMatchSyntax;
43501
 
class ExtGnu;
43502
 
class ExtAC;
43503
 
class ExtACBuilderCoupling;
43504
 
class ExtACSyntaxCoupling;
43505
 
class ExtACTree;
43506
 
class ExtACKeywords;
43507
 
class WinAsm;
43508
 
class WinDeclSpecs;
43509
 
class WinMemberExplSpec;
43510
 
class WinTypeKeywords;
43511
 
class PragmaOnceUnitState;
43512
 
class PragmaOnce;
43513
 
class CCExprResolve;
43514
 
class CExprResolve;
43515
 
namespace Puma {
43516
 
 
43517
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43518
 
class CT_MembPtrDeclarator : public CT_Declarator {
43519
 
#line 43520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43520
 
  friend class ::WinIfExists;
43521
 
  friend class ::WinImportHandler;
43522
 
  friend class ::WinMacros;
43523
 
  friend class ::CMatchSyntax;
43524
 
  friend class ::ExtGnu;
43525
 
  friend class ::ExtAC;
43526
 
  friend class ::ExtACBuilderCoupling;
43527
 
  friend class ::ExtACSyntaxCoupling;
43528
 
  friend class ::ExtACTree;
43529
 
  friend class ::ExtACKeywords;
43530
 
  friend class ::WinAsm;
43531
 
  friend class ::WinDeclSpecs;
43532
 
  friend class ::WinMemberExplSpec;
43533
 
  friend class ::WinTypeKeywords;
43534
 
  friend class ::PragmaOnceUnitState;
43535
 
  friend class ::PragmaOnce;
43536
 
  friend class ::CCExprResolve;
43537
 
  friend class ::CExprResolve;
43538
 
 
43539
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43540
 
 
43541
 
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
43542
 
 
43543
 
public:
43544
 
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
43545
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
43546
 
  }
43547
 
  static const char *NodeId ();
43548
 
  const char *NodeName () const { return NodeId (); }
43549
 
  int Sons () const { return CTree::Sons (sons, 5); }
43550
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
43551
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
43552
 
  CTree *Declarator () const { return sons[4]; }
43553
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
43554
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43555
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
43556
 
  }
43557
 
};
43558
 
 
43559
 
 
43560
 
#line 43561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43561
 
} // closed Puma
43562
 
class WinIfExists;
43563
 
class WinImportHandler;
43564
 
class WinMacros;
43565
 
class CMatchSyntax;
43566
 
class ExtGnu;
43567
 
class ExtAC;
43568
 
class ExtACBuilderCoupling;
43569
 
class ExtACSyntaxCoupling;
43570
 
class ExtACTree;
43571
 
class ExtACKeywords;
43572
 
class WinAsm;
43573
 
class WinDeclSpecs;
43574
 
class WinMemberExplSpec;
43575
 
class WinTypeKeywords;
43576
 
class PragmaOnceUnitState;
43577
 
class PragmaOnce;
43578
 
class CCExprResolve;
43579
 
class CExprResolve;
43580
 
namespace Puma {
43581
 
 
43582
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43583
 
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
43584
 
#line 43585 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43585
 
  friend class ::WinIfExists;
43586
 
  friend class ::WinImportHandler;
43587
 
  friend class ::WinMacros;
43588
 
  friend class ::CMatchSyntax;
43589
 
  friend class ::ExtGnu;
43590
 
  friend class ::ExtAC;
43591
 
  friend class ::ExtACBuilderCoupling;
43592
 
  friend class ::ExtACSyntaxCoupling;
43593
 
  friend class ::ExtACTree;
43594
 
  friend class ::ExtACKeywords;
43595
 
  friend class ::WinAsm;
43596
 
  friend class ::WinDeclSpecs;
43597
 
  friend class ::WinMemberExplSpec;
43598
 
  friend class ::WinTypeKeywords;
43599
 
  friend class ::PragmaOnceUnitState;
43600
 
  friend class ::PragmaOnce;
43601
 
  friend class ::CCExprResolve;
43602
 
  friend class ::CExprResolve;
43603
 
 
43604
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43605
 
 
43606
 
  CTree *sons[3]; // declarator, colon, expr
43607
 
 
43608
 
public:
43609
 
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
43610
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
43611
 
  }
43612
 
  static const char *NodeId ();
43613
 
  const char *NodeName () const { return NodeId (); }
43614
 
  int Sons () const { return CTree::Sons (sons, 3); }
43615
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
43616
 
  CTree *Declarator () const { return sons[0]; }
43617
 
  CTree *Expr () const { return sons[2]; }
43618
 
  void FieldSize (CTree *s) { sons[2] = s; }
43619
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
43620
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43621
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
43622
 
  }
43623
 
};
43624
 
 
43625
 
/*****************************************************************************/
43626
 
/*                                                                           */
43627
 
/*                              Statements                                   */
43628
 
/*                                                                           */
43629
 
/*****************************************************************************/
43630
 
 
43631
 
 
43632
 
#line 43633 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43633
 
} // closed Puma
43634
 
class WinIfExists;
43635
 
class WinImportHandler;
43636
 
class WinMacros;
43637
 
class CMatchSyntax;
43638
 
class ExtGnu;
43639
 
class ExtAC;
43640
 
class ExtACBuilderCoupling;
43641
 
class ExtACSyntaxCoupling;
43642
 
class ExtACTree;
43643
 
class ExtACKeywords;
43644
 
class WinAsm;
43645
 
class WinDeclSpecs;
43646
 
class WinMemberExplSpec;
43647
 
class WinTypeKeywords;
43648
 
class PragmaOnceUnitState;
43649
 
class PragmaOnce;
43650
 
class CCExprResolve;
43651
 
class CExprResolve;
43652
 
namespace Puma {
43653
 
 
43654
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43655
 
class CT_Statement : public CTree {
43656
 
#line 43657 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43657
 
  friend class ::WinIfExists;
43658
 
  friend class ::WinImportHandler;
43659
 
  friend class ::WinMacros;
43660
 
  friend class ::CMatchSyntax;
43661
 
  friend class ::ExtGnu;
43662
 
  friend class ::ExtAC;
43663
 
  friend class ::ExtACBuilderCoupling;
43664
 
  friend class ::ExtACSyntaxCoupling;
43665
 
  friend class ::ExtACTree;
43666
 
  friend class ::ExtACKeywords;
43667
 
  friend class ::WinAsm;
43668
 
  friend class ::WinDeclSpecs;
43669
 
  friend class ::WinMemberExplSpec;
43670
 
  friend class ::WinTypeKeywords;
43671
 
  friend class ::PragmaOnceUnitState;
43672
 
  friend class ::PragmaOnce;
43673
 
  friend class ::CCExprResolve;
43674
 
  friend class ::CExprResolve;
43675
 
 
43676
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43677
 
 
43678
 
protected:
43679
 
  CT_Statement () {}
43680
 
};
43681
 
 
43682
 
 
43683
 
#line 43684 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43684
 
} // closed Puma
43685
 
class WinIfExists;
43686
 
class WinImportHandler;
43687
 
class WinMacros;
43688
 
class CMatchSyntax;
43689
 
class ExtGnu;
43690
 
class ExtAC;
43691
 
class ExtACBuilderCoupling;
43692
 
class ExtACSyntaxCoupling;
43693
 
class ExtACTree;
43694
 
class ExtACKeywords;
43695
 
class WinAsm;
43696
 
class WinDeclSpecs;
43697
 
class WinMemberExplSpec;
43698
 
class WinTypeKeywords;
43699
 
class PragmaOnceUnitState;
43700
 
class PragmaOnce;
43701
 
class CCExprResolve;
43702
 
class CExprResolve;
43703
 
namespace Puma {
43704
 
 
43705
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43706
 
class CT_LabelStmt : public CT_Statement {
43707
 
#line 43708 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43708
 
  friend class ::WinIfExists;
43709
 
  friend class ::WinImportHandler;
43710
 
  friend class ::WinMacros;
43711
 
  friend class ::CMatchSyntax;
43712
 
  friend class ::ExtGnu;
43713
 
  friend class ::ExtAC;
43714
 
  friend class ::ExtACBuilderCoupling;
43715
 
  friend class ::ExtACSyntaxCoupling;
43716
 
  friend class ::ExtACTree;
43717
 
  friend class ::ExtACKeywords;
43718
 
  friend class ::WinAsm;
43719
 
  friend class ::WinDeclSpecs;
43720
 
  friend class ::WinMemberExplSpec;
43721
 
  friend class ::WinTypeKeywords;
43722
 
  friend class ::PragmaOnceUnitState;
43723
 
  friend class ::PragmaOnce;
43724
 
  friend class ::CCExprResolve;
43725
 
  friend class ::CExprResolve;
43726
 
 
43727
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43728
 
 
43729
 
  CTree *sons[3]; // id, colon, stmt
43730
 
 
43731
 
public:
43732
 
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
43733
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
43734
 
  }
43735
 
  static const char *NodeId ();
43736
 
  const char *NodeName () const { return NodeId (); }
43737
 
  int Sons () const { return 3; }
43738
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
43739
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
43740
 
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
43741
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43742
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
43743
 
  }
43744
 
};
43745
 
 
43746
 
 
43747
 
#line 43748 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43748
 
} // closed Puma
43749
 
class WinIfExists;
43750
 
class WinImportHandler;
43751
 
class WinMacros;
43752
 
class CMatchSyntax;
43753
 
class ExtGnu;
43754
 
class ExtAC;
43755
 
class ExtACBuilderCoupling;
43756
 
class ExtACSyntaxCoupling;
43757
 
class ExtACTree;
43758
 
class ExtACKeywords;
43759
 
class WinAsm;
43760
 
class WinDeclSpecs;
43761
 
class WinMemberExplSpec;
43762
 
class WinTypeKeywords;
43763
 
class PragmaOnceUnitState;
43764
 
class PragmaOnce;
43765
 
class CCExprResolve;
43766
 
class CExprResolve;
43767
 
namespace Puma {
43768
 
 
43769
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43770
 
class CT_DefaultStmt : public CT_Statement {
43771
 
#line 43772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43772
 
  friend class ::WinIfExists;
43773
 
  friend class ::WinImportHandler;
43774
 
  friend class ::WinMacros;
43775
 
  friend class ::CMatchSyntax;
43776
 
  friend class ::ExtGnu;
43777
 
  friend class ::ExtAC;
43778
 
  friend class ::ExtACBuilderCoupling;
43779
 
  friend class ::ExtACSyntaxCoupling;
43780
 
  friend class ::ExtACTree;
43781
 
  friend class ::ExtACKeywords;
43782
 
  friend class ::WinAsm;
43783
 
  friend class ::WinDeclSpecs;
43784
 
  friend class ::WinMemberExplSpec;
43785
 
  friend class ::WinTypeKeywords;
43786
 
  friend class ::PragmaOnceUnitState;
43787
 
  friend class ::PragmaOnce;
43788
 
  friend class ::CCExprResolve;
43789
 
  friend class ::CExprResolve;
43790
 
 
43791
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43792
 
 
43793
 
  CTree *sons[3]; // keyword, colon, stmt
43794
 
 
43795
 
public:
43796
 
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
43797
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
43798
 
  }
43799
 
  static const char *NodeId ();
43800
 
  const char *NodeName () const { return NodeId (); }
43801
 
  int Sons () const { return 3; }
43802
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
43803
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
43804
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43805
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
43806
 
  }
43807
 
};
43808
 
 
43809
 
 
43810
 
#line 43811 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43811
 
} // closed Puma
43812
 
class WinIfExists;
43813
 
class WinImportHandler;
43814
 
class WinMacros;
43815
 
class CMatchSyntax;
43816
 
class ExtGnu;
43817
 
class ExtAC;
43818
 
class ExtACBuilderCoupling;
43819
 
class ExtACSyntaxCoupling;
43820
 
class ExtACTree;
43821
 
class ExtACKeywords;
43822
 
class WinAsm;
43823
 
class WinDeclSpecs;
43824
 
class WinMemberExplSpec;
43825
 
class WinTypeKeywords;
43826
 
class PragmaOnceUnitState;
43827
 
class PragmaOnce;
43828
 
class CCExprResolve;
43829
 
class CExprResolve;
43830
 
namespace Puma {
43831
 
 
43832
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43833
 
class CT_TryStmt : public CT_Statement {
43834
 
#line 43835 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43835
 
  friend class ::WinIfExists;
43836
 
  friend class ::WinImportHandler;
43837
 
  friend class ::WinMacros;
43838
 
  friend class ::CMatchSyntax;
43839
 
  friend class ::ExtGnu;
43840
 
  friend class ::ExtAC;
43841
 
  friend class ::ExtACBuilderCoupling;
43842
 
  friend class ::ExtACSyntaxCoupling;
43843
 
  friend class ::ExtACTree;
43844
 
  friend class ::ExtACKeywords;
43845
 
  friend class ::WinAsm;
43846
 
  friend class ::WinDeclSpecs;
43847
 
  friend class ::WinMemberExplSpec;
43848
 
  friend class ::WinTypeKeywords;
43849
 
  friend class ::PragmaOnceUnitState;
43850
 
  friend class ::PragmaOnce;
43851
 
  friend class ::CCExprResolve;
43852
 
  friend class ::CExprResolve;
43853
 
 
43854
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43855
 
 
43856
 
  CTree *sons[3]; // try, stmt, handlers
43857
 
 
43858
 
public:
43859
 
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
43860
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
43861
 
  }
43862
 
  static const char *NodeId ();
43863
 
  const char *NodeName () const { return NodeId (); }
43864
 
  int Sons () const { return 3; }
43865
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
43866
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
43867
 
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
43868
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43869
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
43870
 
  }
43871
 
};
43872
 
 
43873
 
 
43874
 
#line 43875 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43875
 
} // closed Puma
43876
 
class WinIfExists;
43877
 
class WinImportHandler;
43878
 
class WinMacros;
43879
 
class CMatchSyntax;
43880
 
class ExtGnu;
43881
 
class ExtAC;
43882
 
class ExtACBuilderCoupling;
43883
 
class ExtACSyntaxCoupling;
43884
 
class ExtACTree;
43885
 
class ExtACKeywords;
43886
 
class WinAsm;
43887
 
class WinDeclSpecs;
43888
 
class WinMemberExplSpec;
43889
 
class WinTypeKeywords;
43890
 
class PragmaOnceUnitState;
43891
 
class PragmaOnce;
43892
 
class CCExprResolve;
43893
 
class CExprResolve;
43894
 
namespace Puma {
43895
 
 
43896
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43897
 
class CT_CaseStmt : public CT_Statement {
43898
 
#line 43899 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43899
 
  friend class ::WinIfExists;
43900
 
  friend class ::WinImportHandler;
43901
 
  friend class ::WinMacros;
43902
 
  friend class ::CMatchSyntax;
43903
 
  friend class ::ExtGnu;
43904
 
  friend class ::ExtAC;
43905
 
  friend class ::ExtACBuilderCoupling;
43906
 
  friend class ::ExtACSyntaxCoupling;
43907
 
  friend class ::ExtACTree;
43908
 
  friend class ::ExtACKeywords;
43909
 
  friend class ::WinAsm;
43910
 
  friend class ::WinDeclSpecs;
43911
 
  friend class ::WinMemberExplSpec;
43912
 
  friend class ::WinTypeKeywords;
43913
 
  friend class ::PragmaOnceUnitState;
43914
 
  friend class ::PragmaOnce;
43915
 
  friend class ::CCExprResolve;
43916
 
  friend class ::CExprResolve;
43917
 
 
43918
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43919
 
 
43920
 
  CTree *sons[4]; // keyword, expr, colon, stmt
43921
 
 
43922
 
public:
43923
 
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
43924
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
43925
 
  }
43926
 
  static const char *NodeId ();
43927
 
  const char *NodeName () const { return NodeId (); }
43928
 
  int Sons () const { return 4; }
43929
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
43930
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
43931
 
  CTree *Expr () const { return sons[1]; }
43932
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43933
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
43934
 
  }
43935
 
};
43936
 
 
43937
 
 
43938
 
#line 43939 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43939
 
} // closed Puma
43940
 
class WinIfExists;
43941
 
class WinImportHandler;
43942
 
class WinMacros;
43943
 
class CMatchSyntax;
43944
 
class ExtGnu;
43945
 
class ExtAC;
43946
 
class ExtACBuilderCoupling;
43947
 
class ExtACSyntaxCoupling;
43948
 
class ExtACTree;
43949
 
class ExtACKeywords;
43950
 
class WinAsm;
43951
 
class WinDeclSpecs;
43952
 
class WinMemberExplSpec;
43953
 
class WinTypeKeywords;
43954
 
class PragmaOnceUnitState;
43955
 
class PragmaOnce;
43956
 
class CCExprResolve;
43957
 
class CExprResolve;
43958
 
namespace Puma {
43959
 
 
43960
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43961
 
class CT_ExprStmt : public CT_Statement {
43962
 
#line 43963 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
43963
 
  friend class ::WinIfExists;
43964
 
  friend class ::WinImportHandler;
43965
 
  friend class ::WinMacros;
43966
 
  friend class ::CMatchSyntax;
43967
 
  friend class ::ExtGnu;
43968
 
  friend class ::ExtAC;
43969
 
  friend class ::ExtACBuilderCoupling;
43970
 
  friend class ::ExtACSyntaxCoupling;
43971
 
  friend class ::ExtACTree;
43972
 
  friend class ::ExtACKeywords;
43973
 
  friend class ::WinAsm;
43974
 
  friend class ::WinDeclSpecs;
43975
 
  friend class ::WinMemberExplSpec;
43976
 
  friend class ::WinTypeKeywords;
43977
 
  friend class ::PragmaOnceUnitState;
43978
 
  friend class ::PragmaOnce;
43979
 
  friend class ::CCExprResolve;
43980
 
  friend class ::CExprResolve;
43981
 
 
43982
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43983
 
 
43984
 
  CTree *sons[2]; // expr, semi_colon
43985
 
 
43986
 
public:
43987
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
43988
 
  static const char *NodeId ();
43989
 
  const char *NodeName () const { return NodeId (); }
43990
 
  int Sons () const { return CTree::Sons (sons, 2); }
43991
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
43992
 
  CTree *Expr () const { return sons[0]; }
43993
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43994
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
43995
 
  }
43996
 
};
43997
 
 
43998
 
 
43999
 
#line 44000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44000
 
} // closed Puma
44001
 
class WinIfExists;
44002
 
class WinImportHandler;
44003
 
class WinMacros;
44004
 
class CMatchSyntax;
44005
 
class ExtGnu;
44006
 
class ExtAC;
44007
 
class ExtACBuilderCoupling;
44008
 
class ExtACSyntaxCoupling;
44009
 
class ExtACTree;
44010
 
class ExtACKeywords;
44011
 
class WinAsm;
44012
 
class WinDeclSpecs;
44013
 
class WinMemberExplSpec;
44014
 
class WinTypeKeywords;
44015
 
class PragmaOnceUnitState;
44016
 
class PragmaOnce;
44017
 
class CCExprResolve;
44018
 
class CExprResolve;
44019
 
namespace Puma {
44020
 
 
44021
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44022
 
class CT_DeclStmt : public CT_Statement {
44023
 
#line 44024 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44024
 
  friend class ::WinIfExists;
44025
 
  friend class ::WinImportHandler;
44026
 
  friend class ::WinMacros;
44027
 
  friend class ::CMatchSyntax;
44028
 
  friend class ::ExtGnu;
44029
 
  friend class ::ExtAC;
44030
 
  friend class ::ExtACBuilderCoupling;
44031
 
  friend class ::ExtACSyntaxCoupling;
44032
 
  friend class ::ExtACTree;
44033
 
  friend class ::ExtACKeywords;
44034
 
  friend class ::WinAsm;
44035
 
  friend class ::WinDeclSpecs;
44036
 
  friend class ::WinMemberExplSpec;
44037
 
  friend class ::WinTypeKeywords;
44038
 
  friend class ::PragmaOnceUnitState;
44039
 
  friend class ::PragmaOnce;
44040
 
  friend class ::CCExprResolve;
44041
 
  friend class ::CExprResolve;
44042
 
 
44043
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44044
 
 
44045
 
  CTree *_decl;
44046
 
 
44047
 
public:
44048
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
44049
 
  static const char *NodeId ();
44050
 
  const char *NodeName () const { return NodeId (); }
44051
 
  int Sons () const { return 1; }
44052
 
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
44053
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
44054
 
   { if (old_son == _decl) _decl = new_son; }
44055
 
};
44056
 
 
44057
 
 
44058
 
#line 44059 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44059
 
} // closed Puma
44060
 
class WinIfExists;
44061
 
class WinImportHandler;
44062
 
class WinMacros;
44063
 
class CMatchSyntax;
44064
 
class ExtGnu;
44065
 
class ExtAC;
44066
 
class ExtACBuilderCoupling;
44067
 
class ExtACSyntaxCoupling;
44068
 
class ExtACTree;
44069
 
class ExtACKeywords;
44070
 
class WinAsm;
44071
 
class WinDeclSpecs;
44072
 
class WinMemberExplSpec;
44073
 
class WinTypeKeywords;
44074
 
class PragmaOnceUnitState;
44075
 
class PragmaOnce;
44076
 
class CCExprResolve;
44077
 
class CExprResolve;
44078
 
namespace Puma {
44079
 
 
44080
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44081
 
class CT_SwitchStmt : public CT_Statement, public CSemScope {
44082
 
#line 44083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44083
 
  friend class ::WinIfExists;
44084
 
  friend class ::WinImportHandler;
44085
 
  friend class ::WinMacros;
44086
 
  friend class ::CMatchSyntax;
44087
 
  friend class ::ExtGnu;
44088
 
  friend class ::ExtAC;
44089
 
  friend class ::ExtACBuilderCoupling;
44090
 
  friend class ::ExtACSyntaxCoupling;
44091
 
  friend class ::ExtACTree;
44092
 
  friend class ::ExtACKeywords;
44093
 
  friend class ::WinAsm;
44094
 
  friend class ::WinDeclSpecs;
44095
 
  friend class ::WinMemberExplSpec;
44096
 
  friend class ::WinTypeKeywords;
44097
 
  friend class ::PragmaOnceUnitState;
44098
 
  friend class ::PragmaOnce;
44099
 
  friend class ::CCExprResolve;
44100
 
  friend class ::CExprResolve;
44101
 
 
44102
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44103
 
 
44104
 
  CTree *sons[5]; // keyword, open, cond, close, stmt
44105
 
 
44106
 
public:
44107
 
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
44108
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
44109
 
  }
44110
 
  static const char *NodeId ();
44111
 
  const char *NodeName () const { return NodeId (); }
44112
 
  int Sons () const { return 5; }
44113
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
44114
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
44115
 
  CTree *Condition () const { return sons[2]; }
44116
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44117
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
44118
 
  }
44119
 
};
44120
 
 
44121
 
 
44122
 
#line 44123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44123
 
} // closed Puma
44124
 
class WinIfExists;
44125
 
class WinImportHandler;
44126
 
class WinMacros;
44127
 
class CMatchSyntax;
44128
 
class ExtGnu;
44129
 
class ExtAC;
44130
 
class ExtACBuilderCoupling;
44131
 
class ExtACSyntaxCoupling;
44132
 
class ExtACTree;
44133
 
class ExtACKeywords;
44134
 
class WinAsm;
44135
 
class WinDeclSpecs;
44136
 
class WinMemberExplSpec;
44137
 
class WinTypeKeywords;
44138
 
class PragmaOnceUnitState;
44139
 
class PragmaOnce;
44140
 
class CCExprResolve;
44141
 
class CExprResolve;
44142
 
namespace Puma {
44143
 
 
44144
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44145
 
class CT_IfStmt : public CT_Statement, public CSemScope {
44146
 
#line 44147 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44147
 
  friend class ::WinIfExists;
44148
 
  friend class ::WinImportHandler;
44149
 
  friend class ::WinMacros;
44150
 
  friend class ::CMatchSyntax;
44151
 
  friend class ::ExtGnu;
44152
 
  friend class ::ExtAC;
44153
 
  friend class ::ExtACBuilderCoupling;
44154
 
  friend class ::ExtACSyntaxCoupling;
44155
 
  friend class ::ExtACTree;
44156
 
  friend class ::ExtACKeywords;
44157
 
  friend class ::WinAsm;
44158
 
  friend class ::WinDeclSpecs;
44159
 
  friend class ::WinMemberExplSpec;
44160
 
  friend class ::WinTypeKeywords;
44161
 
  friend class ::PragmaOnceUnitState;
44162
 
  friend class ::PragmaOnce;
44163
 
  friend class ::CCExprResolve;
44164
 
  friend class ::CExprResolve;
44165
 
 
44166
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44167
 
 
44168
 
  CTree *sons[5]; // keyword, open, cond, close, stmt
44169
 
 
44170
 
public:
44171
 
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
44172
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
44173
 
  }
44174
 
  static const char *NodeId ();
44175
 
  const char *NodeName () const { return NodeId (); }
44176
 
  int Sons () const { return 5; }
44177
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
44178
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
44179
 
  CTree *Condition () const { return sons[2]; }
44180
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44181
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
44182
 
  }
44183
 
};
44184
 
 
44185
 
 
44186
 
#line 44187 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44187
 
} // closed Puma
44188
 
class WinIfExists;
44189
 
class WinImportHandler;
44190
 
class WinMacros;
44191
 
class CMatchSyntax;
44192
 
class ExtGnu;
44193
 
class ExtAC;
44194
 
class ExtACBuilderCoupling;
44195
 
class ExtACSyntaxCoupling;
44196
 
class ExtACTree;
44197
 
class ExtACKeywords;
44198
 
class WinAsm;
44199
 
class WinDeclSpecs;
44200
 
class WinMemberExplSpec;
44201
 
class WinTypeKeywords;
44202
 
class PragmaOnceUnitState;
44203
 
class PragmaOnce;
44204
 
class CCExprResolve;
44205
 
class CExprResolve;
44206
 
namespace Puma {
44207
 
 
44208
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44209
 
class CT_IfElseStmt : public CT_Statement, public CSemScope {
44210
 
#line 44211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44211
 
  friend class ::WinIfExists;
44212
 
  friend class ::WinImportHandler;
44213
 
  friend class ::WinMacros;
44214
 
  friend class ::CMatchSyntax;
44215
 
  friend class ::ExtGnu;
44216
 
  friend class ::ExtAC;
44217
 
  friend class ::ExtACBuilderCoupling;
44218
 
  friend class ::ExtACSyntaxCoupling;
44219
 
  friend class ::ExtACTree;
44220
 
  friend class ::ExtACKeywords;
44221
 
  friend class ::WinAsm;
44222
 
  friend class ::WinDeclSpecs;
44223
 
  friend class ::WinMemberExplSpec;
44224
 
  friend class ::WinTypeKeywords;
44225
 
  friend class ::PragmaOnceUnitState;
44226
 
  friend class ::PragmaOnce;
44227
 
  friend class ::CCExprResolve;
44228
 
  friend class ::CExprResolve;
44229
 
 
44230
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44231
 
 
44232
 
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
44233
 
 
44234
 
public:
44235
 
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
44236
 
                 CTree *is, CTree *e, CTree *es) {
44237
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
44238
 
    sons[5] = e; sons[6] = es; 
44239
 
  }
44240
 
  static const char *NodeId ();
44241
 
  const char *NodeName () const { return NodeId (); }
44242
 
  int Sons () const { return 7; }
44243
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
44244
 
  CTree *Condition () const { return sons[2]; }
44245
 
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
44246
 
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
44247
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44248
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
44249
 
  }
44250
 
};
44251
 
 
44252
 
 
44253
 
#line 44254 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44254
 
} // closed Puma
44255
 
class WinIfExists;
44256
 
class WinImportHandler;
44257
 
class WinMacros;
44258
 
class CMatchSyntax;
44259
 
class ExtGnu;
44260
 
class ExtAC;
44261
 
class ExtACBuilderCoupling;
44262
 
class ExtACSyntaxCoupling;
44263
 
class ExtACTree;
44264
 
class ExtACKeywords;
44265
 
class WinAsm;
44266
 
class WinDeclSpecs;
44267
 
class WinMemberExplSpec;
44268
 
class WinTypeKeywords;
44269
 
class PragmaOnceUnitState;
44270
 
class PragmaOnce;
44271
 
class CCExprResolve;
44272
 
class CExprResolve;
44273
 
namespace Puma {
44274
 
 
44275
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44276
 
class CT_BreakStmt : public CT_Statement {
44277
 
#line 44278 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44278
 
  friend class ::WinIfExists;
44279
 
  friend class ::WinImportHandler;
44280
 
  friend class ::WinMacros;
44281
 
  friend class ::CMatchSyntax;
44282
 
  friend class ::ExtGnu;
44283
 
  friend class ::ExtAC;
44284
 
  friend class ::ExtACBuilderCoupling;
44285
 
  friend class ::ExtACSyntaxCoupling;
44286
 
  friend class ::ExtACTree;
44287
 
  friend class ::ExtACKeywords;
44288
 
  friend class ::WinAsm;
44289
 
  friend class ::WinDeclSpecs;
44290
 
  friend class ::WinMemberExplSpec;
44291
 
  friend class ::WinTypeKeywords;
44292
 
  friend class ::PragmaOnceUnitState;
44293
 
  friend class ::PragmaOnce;
44294
 
  friend class ::CCExprResolve;
44295
 
  friend class ::CExprResolve;
44296
 
 
44297
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44298
 
 
44299
 
  CTree *sons[2]; // key, semi_colon
44300
 
 
44301
 
public:
44302
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
44303
 
  static const char *NodeId ();
44304
 
  const char *NodeName () const { return NodeId (); }
44305
 
  int Sons () const { return 2; }
44306
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
44307
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44308
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
44309
 
  }
44310
 
};
44311
 
 
44312
 
 
44313
 
#line 44314 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44314
 
} // closed Puma
44315
 
class WinIfExists;
44316
 
class WinImportHandler;
44317
 
class WinMacros;
44318
 
class CMatchSyntax;
44319
 
class ExtGnu;
44320
 
class ExtAC;
44321
 
class ExtACBuilderCoupling;
44322
 
class ExtACSyntaxCoupling;
44323
 
class ExtACTree;
44324
 
class ExtACKeywords;
44325
 
class WinAsm;
44326
 
class WinDeclSpecs;
44327
 
class WinMemberExplSpec;
44328
 
class WinTypeKeywords;
44329
 
class PragmaOnceUnitState;
44330
 
class PragmaOnce;
44331
 
class CCExprResolve;
44332
 
class CExprResolve;
44333
 
namespace Puma {
44334
 
 
44335
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44336
 
class CT_ContinueStmt : public CT_Statement {
44337
 
#line 44338 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44338
 
  friend class ::WinIfExists;
44339
 
  friend class ::WinImportHandler;
44340
 
  friend class ::WinMacros;
44341
 
  friend class ::CMatchSyntax;
44342
 
  friend class ::ExtGnu;
44343
 
  friend class ::ExtAC;
44344
 
  friend class ::ExtACBuilderCoupling;
44345
 
  friend class ::ExtACSyntaxCoupling;
44346
 
  friend class ::ExtACTree;
44347
 
  friend class ::ExtACKeywords;
44348
 
  friend class ::WinAsm;
44349
 
  friend class ::WinDeclSpecs;
44350
 
  friend class ::WinMemberExplSpec;
44351
 
  friend class ::WinTypeKeywords;
44352
 
  friend class ::PragmaOnceUnitState;
44353
 
  friend class ::PragmaOnce;
44354
 
  friend class ::CCExprResolve;
44355
 
  friend class ::CExprResolve;
44356
 
 
44357
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44358
 
 
44359
 
  CTree *sons[2]; // key, semi_colon
44360
 
 
44361
 
public:
44362
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
44363
 
  static const char *NodeId ();
44364
 
  const char *NodeName () const { return NodeId (); }
44365
 
  int Sons () const { return 2; }
44366
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
44367
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44368
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
44369
 
  }
44370
 
};
44371
 
 
44372
 
 
44373
 
#line 44374 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44374
 
} // closed Puma
44375
 
class WinIfExists;
44376
 
class WinImportHandler;
44377
 
class WinMacros;
44378
 
class CMatchSyntax;
44379
 
class ExtGnu;
44380
 
class ExtAC;
44381
 
class ExtACBuilderCoupling;
44382
 
class ExtACSyntaxCoupling;
44383
 
class ExtACTree;
44384
 
class ExtACKeywords;
44385
 
class WinAsm;
44386
 
class WinDeclSpecs;
44387
 
class WinMemberExplSpec;
44388
 
class WinTypeKeywords;
44389
 
class PragmaOnceUnitState;
44390
 
class PragmaOnce;
44391
 
class CCExprResolve;
44392
 
class CExprResolve;
44393
 
namespace Puma {
44394
 
 
44395
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44396
 
class CT_GotoStmt : public CT_Statement {
44397
 
#line 44398 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44398
 
  friend class ::WinIfExists;
44399
 
  friend class ::WinImportHandler;
44400
 
  friend class ::WinMacros;
44401
 
  friend class ::CMatchSyntax;
44402
 
  friend class ::ExtGnu;
44403
 
  friend class ::ExtAC;
44404
 
  friend class ::ExtACBuilderCoupling;
44405
 
  friend class ::ExtACSyntaxCoupling;
44406
 
  friend class ::ExtACTree;
44407
 
  friend class ::ExtACKeywords;
44408
 
  friend class ::WinAsm;
44409
 
  friend class ::WinDeclSpecs;
44410
 
  friend class ::WinMemberExplSpec;
44411
 
  friend class ::WinTypeKeywords;
44412
 
  friend class ::PragmaOnceUnitState;
44413
 
  friend class ::PragmaOnce;
44414
 
  friend class ::CCExprResolve;
44415
 
  friend class ::CExprResolve;
44416
 
 
44417
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44418
 
 
44419
 
  CTree *sons[3]; // key, label, semi_colon
44420
 
 
44421
 
public:
44422
 
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
44423
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
44424
 
  }
44425
 
  static const char *NodeId ();
44426
 
  const char *NodeName () const { return NodeId (); }
44427
 
  int Sons () const { return 3; }
44428
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
44429
 
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
44430
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44431
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
44432
 
  }
44433
 
};
44434
 
 
44435
 
 
44436
 
#line 44437 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44437
 
} // closed Puma
44438
 
class WinIfExists;
44439
 
class WinImportHandler;
44440
 
class WinMacros;
44441
 
class CMatchSyntax;
44442
 
class ExtGnu;
44443
 
class ExtAC;
44444
 
class ExtACBuilderCoupling;
44445
 
class ExtACSyntaxCoupling;
44446
 
class ExtACTree;
44447
 
class ExtACKeywords;
44448
 
class WinAsm;
44449
 
class WinDeclSpecs;
44450
 
class WinMemberExplSpec;
44451
 
class WinTypeKeywords;
44452
 
class PragmaOnceUnitState;
44453
 
class PragmaOnce;
44454
 
class CCExprResolve;
44455
 
class CExprResolve;
44456
 
namespace Puma {
44457
 
 
44458
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44459
 
class CT_ReturnStmt : public CT_Statement {
44460
 
#line 44461 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44461
 
  friend class ::WinIfExists;
44462
 
  friend class ::WinImportHandler;
44463
 
  friend class ::WinMacros;
44464
 
  friend class ::CMatchSyntax;
44465
 
  friend class ::ExtGnu;
44466
 
  friend class ::ExtAC;
44467
 
  friend class ::ExtACBuilderCoupling;
44468
 
  friend class ::ExtACSyntaxCoupling;
44469
 
  friend class ::ExtACTree;
44470
 
  friend class ::ExtACKeywords;
44471
 
  friend class ::WinAsm;
44472
 
  friend class ::WinDeclSpecs;
44473
 
  friend class ::WinMemberExplSpec;
44474
 
  friend class ::WinTypeKeywords;
44475
 
  friend class ::PragmaOnceUnitState;
44476
 
  friend class ::PragmaOnce;
44477
 
  friend class ::CCExprResolve;
44478
 
  friend class ::CExprResolve;
44479
 
 
44480
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44481
 
 
44482
 
  CTree *sons[3]; // key, expr, semi_colon
44483
 
 
44484
 
public:
44485
 
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
44486
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
44487
 
  }
44488
 
  static const char *NodeId ();
44489
 
  const char *NodeName () const { return NodeId (); }
44490
 
  int Sons () const { return CTree::Sons (sons, 3); }
44491
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
44492
 
  CTree *Expr () const { return sons[1]; }
44493
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44494
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
44495
 
  }
44496
 
};
44497
 
 
44498
 
 
44499
 
#line 44500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44500
 
} // closed Puma
44501
 
class WinIfExists;
44502
 
class WinImportHandler;
44503
 
class WinMacros;
44504
 
class CMatchSyntax;
44505
 
class ExtGnu;
44506
 
class ExtAC;
44507
 
class ExtACBuilderCoupling;
44508
 
class ExtACSyntaxCoupling;
44509
 
class ExtACTree;
44510
 
class ExtACKeywords;
44511
 
class WinAsm;
44512
 
class WinDeclSpecs;
44513
 
class WinMemberExplSpec;
44514
 
class WinTypeKeywords;
44515
 
class PragmaOnceUnitState;
44516
 
class PragmaOnce;
44517
 
class CCExprResolve;
44518
 
class CExprResolve;
44519
 
namespace Puma {
44520
 
 
44521
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44522
 
class CT_WhileStmt : public CT_Statement, public CSemScope {
44523
 
#line 44524 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44524
 
  friend class ::WinIfExists;
44525
 
  friend class ::WinImportHandler;
44526
 
  friend class ::WinMacros;
44527
 
  friend class ::CMatchSyntax;
44528
 
  friend class ::ExtGnu;
44529
 
  friend class ::ExtAC;
44530
 
  friend class ::ExtACBuilderCoupling;
44531
 
  friend class ::ExtACSyntaxCoupling;
44532
 
  friend class ::ExtACTree;
44533
 
  friend class ::ExtACKeywords;
44534
 
  friend class ::WinAsm;
44535
 
  friend class ::WinDeclSpecs;
44536
 
  friend class ::WinMemberExplSpec;
44537
 
  friend class ::WinTypeKeywords;
44538
 
  friend class ::PragmaOnceUnitState;
44539
 
  friend class ::PragmaOnce;
44540
 
  friend class ::CCExprResolve;
44541
 
  friend class ::CExprResolve;
44542
 
 
44543
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44544
 
 
44545
 
  CTree *sons[5]; // key, open, cond, close, stmt
44546
 
 
44547
 
public:
44548
 
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
44549
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
44550
 
  }
44551
 
  static const char *NodeId ();
44552
 
  const char *NodeName () const { return NodeId (); }
44553
 
  int Sons () const { return 5; }
44554
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
44555
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
44556
 
  CTree *Condition () const { return sons[2]; }
44557
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44558
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
44559
 
  }
44560
 
};
44561
 
 
44562
 
 
44563
 
#line 44564 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44564
 
} // closed Puma
44565
 
class WinIfExists;
44566
 
class WinImportHandler;
44567
 
class WinMacros;
44568
 
class CMatchSyntax;
44569
 
class ExtGnu;
44570
 
class ExtAC;
44571
 
class ExtACBuilderCoupling;
44572
 
class ExtACSyntaxCoupling;
44573
 
class ExtACTree;
44574
 
class ExtACKeywords;
44575
 
class WinAsm;
44576
 
class WinDeclSpecs;
44577
 
class WinMemberExplSpec;
44578
 
class WinTypeKeywords;
44579
 
class PragmaOnceUnitState;
44580
 
class PragmaOnce;
44581
 
class CCExprResolve;
44582
 
class CExprResolve;
44583
 
namespace Puma {
44584
 
 
44585
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44586
 
class CT_DoStmt : public CT_Statement {
44587
 
#line 44588 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44588
 
  friend class ::WinIfExists;
44589
 
  friend class ::WinImportHandler;
44590
 
  friend class ::WinMacros;
44591
 
  friend class ::CMatchSyntax;
44592
 
  friend class ::ExtGnu;
44593
 
  friend class ::ExtAC;
44594
 
  friend class ::ExtACBuilderCoupling;
44595
 
  friend class ::ExtACSyntaxCoupling;
44596
 
  friend class ::ExtACTree;
44597
 
  friend class ::ExtACKeywords;
44598
 
  friend class ::WinAsm;
44599
 
  friend class ::WinDeclSpecs;
44600
 
  friend class ::WinMemberExplSpec;
44601
 
  friend class ::WinTypeKeywords;
44602
 
  friend class ::PragmaOnceUnitState;
44603
 
  friend class ::PragmaOnce;
44604
 
  friend class ::CCExprResolve;
44605
 
  friend class ::CExprResolve;
44606
 
 
44607
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44608
 
 
44609
 
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
44610
 
 
44611
 
public:
44612
 
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
44613
 
             CTree *c, CTree *sc) {
44614
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
44615
 
    sons[5] = c; sons[6] = sc; 
44616
 
  }
44617
 
  static const char *NodeId ();
44618
 
  const char *NodeName () const { return NodeId (); }
44619
 
  int Sons () const { return 7; }
44620
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
44621
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
44622
 
  CTree *Expr () const { return sons[4]; }
44623
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44624
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
44625
 
  }
44626
 
};
44627
 
 
44628
 
 
44629
 
#line 44630 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44630
 
} // closed Puma
44631
 
class WinIfExists;
44632
 
class WinImportHandler;
44633
 
class WinMacros;
44634
 
class CMatchSyntax;
44635
 
class ExtGnu;
44636
 
class ExtAC;
44637
 
class ExtACBuilderCoupling;
44638
 
class ExtACSyntaxCoupling;
44639
 
class ExtACTree;
44640
 
class ExtACKeywords;
44641
 
class WinAsm;
44642
 
class WinDeclSpecs;
44643
 
class WinMemberExplSpec;
44644
 
class WinTypeKeywords;
44645
 
class PragmaOnceUnitState;
44646
 
class PragmaOnce;
44647
 
class CCExprResolve;
44648
 
class CExprResolve;
44649
 
namespace Puma {
44650
 
 
44651
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44652
 
class CT_ForStmt : public CT_Statement, public CSemScope {
44653
 
#line 44654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44654
 
  friend class ::WinIfExists;
44655
 
  friend class ::WinImportHandler;
44656
 
  friend class ::WinMacros;
44657
 
  friend class ::CMatchSyntax;
44658
 
  friend class ::ExtGnu;
44659
 
  friend class ::ExtAC;
44660
 
  friend class ::ExtACBuilderCoupling;
44661
 
  friend class ::ExtACSyntaxCoupling;
44662
 
  friend class ::ExtACTree;
44663
 
  friend class ::ExtACKeywords;
44664
 
  friend class ::WinAsm;
44665
 
  friend class ::WinDeclSpecs;
44666
 
  friend class ::WinMemberExplSpec;
44667
 
  friend class ::WinTypeKeywords;
44668
 
  friend class ::PragmaOnceUnitState;
44669
 
  friend class ::PragmaOnce;
44670
 
  friend class ::CCExprResolve;
44671
 
  friend class ::CExprResolve;
44672
 
 
44673
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44674
 
 
44675
 
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
44676
 
 
44677
 
public:
44678
 
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
44679
 
              CTree *e, CTree *c, CTree *stmt) {
44680
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
44681
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
44682
 
  }
44683
 
  static const char *NodeId ();
44684
 
  const char *NodeName () const { return NodeId (); }
44685
 
  int Sons () const { return CTree::Sons (sons, 8); }
44686
 
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
44687
 
  CTree *InitStmt () const { return sons[2]; }
44688
 
  CTree *Condition () const { return sons[3]; }
44689
 
  CTree *Expr () const { return sons[5]; }
44690
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
44691
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44692
 
    CTree::ReplaceSon (sons, 8, old_son, new_son);
44693
 
  }
44694
 
};
44695
 
 
44696
 
 
44697
 
#line 44698 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44698
 
} // closed Puma
44699
 
class WinIfExists;
44700
 
class WinImportHandler;
44701
 
class WinMacros;
44702
 
class CMatchSyntax;
44703
 
class ExtGnu;
44704
 
class ExtAC;
44705
 
class ExtACBuilderCoupling;
44706
 
class ExtACSyntaxCoupling;
44707
 
class ExtACTree;
44708
 
class ExtACKeywords;
44709
 
class WinAsm;
44710
 
class WinDeclSpecs;
44711
 
class WinMemberExplSpec;
44712
 
class WinTypeKeywords;
44713
 
class PragmaOnceUnitState;
44714
 
class PragmaOnce;
44715
 
class CCExprResolve;
44716
 
class CExprResolve;
44717
 
namespace Puma {
44718
 
 
44719
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44720
 
class CT_Condition : public CT_Decl, public CSemObject {
44721
 
#line 44722 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44722
 
  friend class ::WinIfExists;
44723
 
  friend class ::WinImportHandler;
44724
 
  friend class ::WinMacros;
44725
 
  friend class ::CMatchSyntax;
44726
 
  friend class ::ExtGnu;
44727
 
  friend class ::ExtAC;
44728
 
  friend class ::ExtACBuilderCoupling;
44729
 
  friend class ::ExtACSyntaxCoupling;
44730
 
  friend class ::ExtACTree;
44731
 
  friend class ::ExtACKeywords;
44732
 
  friend class ::WinAsm;
44733
 
  friend class ::WinDeclSpecs;
44734
 
  friend class ::WinMemberExplSpec;
44735
 
  friend class ::WinTypeKeywords;
44736
 
  friend class ::PragmaOnceUnitState;
44737
 
  friend class ::PragmaOnce;
44738
 
  friend class ::CCExprResolve;
44739
 
  friend class ::CExprResolve;
44740
 
 
44741
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44742
 
 
44743
 
  CTree *sons[3]; // declspecs, declarator, init
44744
 
 
44745
 
public:
44746
 
  CT_Condition (CTree *dsl, CTree *d) {
44747
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
44748
 
  }
44749
 
  static const char *NodeId ();
44750
 
  const char *NodeName () const { return NodeId (); }
44751
 
  int Sons () const { return CTree::Sons (sons, 3); }
44752
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
44753
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
44754
 
  CTree *Declarator () const { return sons[1]; }
44755
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
44756
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
44757
 
  void Initializer (CTree *i) { sons[2] = i; }
44758
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44759
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
44760
 
  }
44761
 
};
44762
 
 
44763
 
/*****************************************************************************/
44764
 
/*                                                                           */
44765
 
/*                              Classes                                      */
44766
 
/*                                                                           */
44767
 
/*****************************************************************************/
44768
 
 
44769
 
 
44770
 
#line 44771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44771
 
} // closed Puma
44772
 
class WinIfExists;
44773
 
class WinImportHandler;
44774
 
class WinMacros;
44775
 
class CMatchSyntax;
44776
 
class ExtGnu;
44777
 
class ExtAC;
44778
 
class ExtACBuilderCoupling;
44779
 
class ExtACSyntaxCoupling;
44780
 
class ExtACTree;
44781
 
class ExtACKeywords;
44782
 
class WinAsm;
44783
 
class WinDeclSpecs;
44784
 
class WinMemberExplSpec;
44785
 
class WinTypeKeywords;
44786
 
class PragmaOnceUnitState;
44787
 
class PragmaOnce;
44788
 
class CCExprResolve;
44789
 
class CExprResolve;
44790
 
namespace Puma {
44791
 
 
44792
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44793
 
class CT_ClassDef : public CT_Decl, public CSemObject {
44794
 
#line 44795 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44795
 
  friend class ::WinIfExists;
44796
 
  friend class ::WinImportHandler;
44797
 
  friend class ::WinMacros;
44798
 
  friend class ::CMatchSyntax;
44799
 
  friend class ::ExtGnu;
44800
 
  friend class ::ExtAC;
44801
 
  friend class ::ExtACBuilderCoupling;
44802
 
  friend class ::ExtACSyntaxCoupling;
44803
 
  friend class ::ExtACTree;
44804
 
  friend class ::ExtACKeywords;
44805
 
  friend class ::WinAsm;
44806
 
  friend class ::WinDeclSpecs;
44807
 
  friend class ::WinMemberExplSpec;
44808
 
  friend class ::WinTypeKeywords;
44809
 
  friend class ::PragmaOnceUnitState;
44810
 
  friend class ::PragmaOnce;
44811
 
  friend class ::CCExprResolve;
44812
 
  friend class ::CExprResolve;
44813
 
 
44814
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44815
 
 
44816
 
   
44817
 
#line 44818 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44818
 
 
44819
 
  struct __ac_wrapper_sons {
44820
 
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
44821
 
    operator A& () { return _data; }
44822
 
    operator A& () const { return (A&)*(::Puma::CTree * *)_data; }
44823
 
    operator const A& () { return _data; }
44824
 
    operator const A& () const { return _data; }
44825
 
    operator void* () { return _data; }
44826
 
    operator void* () const { return (void*)_data; }
44827
 
    operator const void* () { return _data; }
44828
 
    operator const void* () const { return _data; }
44829
 
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
44830
 
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
44831
 
  } sons
44832
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44833
 
 
44834
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44835
 
; // key, name, bases, members
44836
 
  CTree *obj_decl;
44837
 
 
44838
 
public:
44839
 
  
44840
 
#line 44841 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44841
 
 
44842
 
 
44843
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
44844
 
  typedef void Result;
44845
 
  typedef ::Puma::CT_ClassDef That;
44846
 
  typedef ::Puma::CT_ClassDef Target;
44847
 
  static const int JPID = 4;
44848
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
44849
 
  struct Res {
44850
 
    typedef void Type;
44851
 
    typedef void ReferredType;
44852
 
  };
44853
 
  enum { ARGS = 3 };
44854
 
  template <int I, int DUMMY = 0> struct Arg {
44855
 
    typedef void Type;
44856
 
    typedef void ReferredType;
44857
 
  };
44858
 
  template <int DUMMY> struct Arg<0, DUMMY> {
44859
 
    typedef ::Puma::CTree * Type;
44860
 
    typedef ::Puma::CTree * ReferredType;
44861
 
  };
44862
 
  template <int DUMMY> struct Arg<1, DUMMY> {
44863
 
    typedef ::Puma::CTree * Type;
44864
 
    typedef ::Puma::CTree * ReferredType;
44865
 
  };
44866
 
  template <int DUMMY> struct Arg<2, DUMMY> {
44867
 
    typedef ::Puma::CTree * Type;
44868
 
    typedef ::Puma::CTree * ReferredType;
44869
 
  };
44870
 
 
44871
 
  That *_that;
44872
 
 
44873
 
  inline That *that() {return (That*)_that;}
44874
 
 
44875
 
};
44876
 
 
44877
 
 
44878
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44879
 
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
44880
 
#line 44881 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44881
 
{
44882
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
44883
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
44884
 
this->__exec_old_C1(arg0, arg1, arg2);
44885
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
44886
 
 
44887
 
}
44888
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
44889
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44890
 
{
44891
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
44892
 
  }
44893
 
  static const char *NodeId ();
44894
 
  const char *NodeName () const { return NodeId (); }
44895
 
  int Sons () const { return CTree::Sons (sons, 4); }
44896
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
44897
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
44898
 
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
44899
 
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
44900
 
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
44901
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
44902
 
  void Members (CTree *m) { sons[3] = m; }
44903
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
44904
 
  void ObjDecl (CTree *od) { obj_decl = od; }
44905
 
  void ReplaceSon (CTree *old_son, CTree *new_son) {
44906
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
44907
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
44908
 
  }
44909
 
   private:
44910
 
 
44911
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
44912
 
 CTree * _intro_members ;
44913
 
public :
44914
 
CTree * IntroMembers ( ) const { return _intro_members ; }
44915
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
44916
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44917
 
 
44918
 
#line 44919 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44919
 
 
44920
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
44921
 
  typedef void Result;
44922
 
  typedef ::Puma::CT_ClassDef That;
44923
 
  typedef ::Puma::CT_ClassDef Target;
44924
 
  static const int JPID = 4;
44925
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
44926
 
  struct Res {
44927
 
    typedef void Type;
44928
 
    typedef void ReferredType;
44929
 
  };
44930
 
  enum { ARGS = 1 };
44931
 
  template <int I, int DUMMY = 0> struct Arg {
44932
 
    typedef void Type;
44933
 
    typedef void ReferredType;
44934
 
  };
44935
 
  template <int DUMMY> struct Arg<0, DUMMY> {
44936
 
    typedef const ::Puma::CT_ClassDef & Type;
44937
 
    typedef const ::Puma::CT_ClassDef ReferredType;
44938
 
  };
44939
 
 
44940
 
  That *_that;
44941
 
 
44942
 
  inline That *that() {return (That*)_that;}
44943
 
 
44944
 
};
44945
 
 
44946
 
 
44947
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44948
 
 
44949
 
#line 44950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44950
 
 
44951
 
public:
44952
 
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) {
44953
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
44954
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
44955
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
44956
 
 
44957
 
}
44958
 
 
44959
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44960
 
 
44961
 
#line 44962 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44962
 
 
44963
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
44964
 
  typedef void Result;
44965
 
  typedef ::Puma::CT_ClassDef That;
44966
 
  typedef ::Puma::CT_ClassDef Target;
44967
 
  static const int JPID = 4;
44968
 
  static const AC::JPType JPTYPE = (AC::JPType)32;
44969
 
  struct Res {
44970
 
    typedef void Type;
44971
 
    typedef void ReferredType;
44972
 
  };
44973
 
  enum { ARGS = 0 };
44974
 
  template <int I, int DUMMY = 0> struct Arg {
44975
 
    typedef void Type;
44976
 
    typedef void ReferredType;
44977
 
  };
44978
 
 
44979
 
  That *_that;
44980
 
 
44981
 
  inline That *that() {return (That*)_that;}
44982
 
 
44983
 
};
44984
 
 
44985
 
 
44986
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44987
 
 
44988
 
#line 44989 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
44989
 
 
44990
 
public:
44991
 
inline ~CT_ClassDef () {
44992
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
44993
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
44994
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
44995
 
 
44996
 
}
44997
 
 
44998
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44999
 
};
45000
 
      
45001
 
 
45002
 
#line 45003 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45003
 
} // closed Puma
45004
 
class WinIfExists;
45005
 
class WinImportHandler;
45006
 
class WinMacros;
45007
 
class CMatchSyntax;
45008
 
class ExtGnu;
45009
 
class ExtAC;
45010
 
class ExtACBuilderCoupling;
45011
 
class ExtACSyntaxCoupling;
45012
 
class ExtACTree;
45013
 
class ExtACKeywords;
45014
 
class WinAsm;
45015
 
class WinDeclSpecs;
45016
 
class WinMemberExplSpec;
45017
 
class WinTypeKeywords;
45018
 
class PragmaOnceUnitState;
45019
 
class PragmaOnce;
45020
 
class CCExprResolve;
45021
 
class CExprResolve;
45022
 
namespace Puma {
45023
 
 
45024
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45025
 
class CT_UnionDef : public CT_ClassDef {
45026
 
#line 45027 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45027
 
  friend class ::WinIfExists;
45028
 
  friend class ::WinImportHandler;
45029
 
  friend class ::WinMacros;
45030
 
  friend class ::CMatchSyntax;
45031
 
  friend class ::ExtGnu;
45032
 
  friend class ::ExtAC;
45033
 
  friend class ::ExtACBuilderCoupling;
45034
 
  friend class ::ExtACSyntaxCoupling;
45035
 
  friend class ::ExtACTree;
45036
 
  friend class ::ExtACKeywords;
45037
 
  friend class ::WinAsm;
45038
 
  friend class ::WinDeclSpecs;
45039
 
  friend class ::WinMemberExplSpec;
45040
 
  friend class ::WinTypeKeywords;
45041
 
  friend class ::PragmaOnceUnitState;
45042
 
  friend class ::PragmaOnce;
45043
 
  friend class ::CCExprResolve;
45044
 
  friend class ::CExprResolve;
45045
 
 
45046
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45047
 
 
45048
 
public:
45049
 
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
45050
 
  static const char *NodeId ();
45051
 
  const char *NodeName () const { return NodeId (); }
45052
 
};
45053
 
      
45054
 
 
45055
 
#line 45056 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45056
 
} // closed Puma
45057
 
class WinIfExists;
45058
 
class WinImportHandler;
45059
 
class WinMacros;
45060
 
class CMatchSyntax;
45061
 
class ExtGnu;
45062
 
class ExtAC;
45063
 
class ExtACBuilderCoupling;
45064
 
class ExtACSyntaxCoupling;
45065
 
class ExtACTree;
45066
 
class ExtACKeywords;
45067
 
class WinAsm;
45068
 
class WinDeclSpecs;
45069
 
class WinMemberExplSpec;
45070
 
class WinTypeKeywords;
45071
 
class PragmaOnceUnitState;
45072
 
class PragmaOnce;
45073
 
class CCExprResolve;
45074
 
class CExprResolve;
45075
 
namespace Puma {
45076
 
 
45077
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45078
 
class CT_MembList : public CT_DeclList, public CSemScope {
45079
 
#line 45080 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45080
 
  friend class ::WinIfExists;
45081
 
  friend class ::WinImportHandler;
45082
 
  friend class ::WinMacros;
45083
 
  friend class ::CMatchSyntax;
45084
 
  friend class ::ExtGnu;
45085
 
  friend class ::ExtAC;
45086
 
  friend class ::ExtACBuilderCoupling;
45087
 
  friend class ::ExtACSyntaxCoupling;
45088
 
  friend class ::ExtACTree;
45089
 
  friend class ::ExtACKeywords;
45090
 
  friend class ::WinAsm;
45091
 
  friend class ::WinDeclSpecs;
45092
 
  friend class ::WinMemberExplSpec;
45093
 
  friend class ::WinTypeKeywords;
45094
 
  friend class ::PragmaOnceUnitState;
45095
 
  friend class ::PragmaOnce;
45096
 
  friend class ::CCExprResolve;
45097
 
  friend class ::CExprResolve;
45098
 
 
45099
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45100
 
 
45101
 
public:
45102
 
  CT_MembList (int size = 10, int incr = 10) : 
45103
 
    CT_DeclList (size, incr) {}
45104
 
  static const char *NodeId ();
45105
 
  const char *NodeName () const { return NodeId (); }
45106
 
};
45107
 
 
45108
 
 
45109
 
#line 45110 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45110
 
} // closed Puma
45111
 
class WinIfExists;
45112
 
class WinImportHandler;
45113
 
class WinMacros;
45114
 
class CMatchSyntax;
45115
 
class ExtGnu;
45116
 
class ExtAC;
45117
 
class ExtACBuilderCoupling;
45118
 
class ExtACSyntaxCoupling;
45119
 
class ExtACTree;
45120
 
class ExtACKeywords;
45121
 
class WinAsm;
45122
 
class WinDeclSpecs;
45123
 
class WinMemberExplSpec;
45124
 
class WinTypeKeywords;
45125
 
class PragmaOnceUnitState;
45126
 
class PragmaOnce;
45127
 
class CCExprResolve;
45128
 
class CExprResolve;
45129
 
namespace Puma {
45130
 
 
45131
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45132
 
class CT_MembInitList : public CT_List, public CSemScope {
45133
 
#line 45134 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45134
 
  friend class ::WinIfExists;
45135
 
  friend class ::WinImportHandler;
45136
 
  friend class ::WinMacros;
45137
 
  friend class ::CMatchSyntax;
45138
 
  friend class ::ExtGnu;
45139
 
  friend class ::ExtAC;
45140
 
  friend class ::ExtACBuilderCoupling;
45141
 
  friend class ::ExtACSyntaxCoupling;
45142
 
  friend class ::ExtACTree;
45143
 
  friend class ::ExtACKeywords;
45144
 
  friend class ::WinAsm;
45145
 
  friend class ::WinDeclSpecs;
45146
 
  friend class ::WinMemberExplSpec;
45147
 
  friend class ::WinTypeKeywords;
45148
 
  friend class ::PragmaOnceUnitState;
45149
 
  friend class ::PragmaOnce;
45150
 
  friend class ::CCExprResolve;
45151
 
  friend class ::CExprResolve;
45152
 
 
45153
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45154
 
 
45155
 
public:
45156
 
  CT_MembInitList (int size = 2) : 
45157
 
    CT_List (size, 2, CT_List::OPEN) {}
45158
 
  static const char *NodeId ();
45159
 
  const char *NodeName () const { return NodeId (); }
45160
 
};
45161
 
 
45162
 
 
45163
 
#line 45164 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45164
 
} // closed Puma
45165
 
class WinIfExists;
45166
 
class WinImportHandler;
45167
 
class WinMacros;
45168
 
class CMatchSyntax;
45169
 
class ExtGnu;
45170
 
class ExtAC;
45171
 
class ExtACBuilderCoupling;
45172
 
class ExtACSyntaxCoupling;
45173
 
class ExtACTree;
45174
 
class ExtACKeywords;
45175
 
class WinAsm;
45176
 
class WinDeclSpecs;
45177
 
class WinMemberExplSpec;
45178
 
class WinTypeKeywords;
45179
 
class PragmaOnceUnitState;
45180
 
class PragmaOnce;
45181
 
class CCExprResolve;
45182
 
class CExprResolve;
45183
 
namespace Puma {
45184
 
 
45185
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45186
 
class CT_MembInit : public CT_Expression, public CSemObject {
45187
 
#line 45188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45188
 
  friend class ::WinIfExists;
45189
 
  friend class ::WinImportHandler;
45190
 
  friend class ::WinMacros;
45191
 
  friend class ::CMatchSyntax;
45192
 
  friend class ::ExtGnu;
45193
 
  friend class ::ExtAC;
45194
 
  friend class ::ExtACBuilderCoupling;
45195
 
  friend class ::ExtACSyntaxCoupling;
45196
 
  friend class ::ExtACTree;
45197
 
  friend class ::ExtACKeywords;
45198
 
  friend class ::WinAsm;
45199
 
  friend class ::WinDeclSpecs;
45200
 
  friend class ::WinMemberExplSpec;
45201
 
  friend class ::WinTypeKeywords;
45202
 
  friend class ::PragmaOnceUnitState;
45203
 
  friend class ::PragmaOnce;
45204
 
  friend class ::CCExprResolve;
45205
 
  friend class ::CExprResolve;
45206
 
 
45207
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45208
 
 
45209
 
  CTree *sons[2]; // name, init
45210
 
 
45211
 
public:
45212
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
45213
 
  static const char *NodeId ();
45214
 
  const char *NodeName () const { return NodeId (); }
45215
 
  int Sons () const { return 2; }
45216
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
45217
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
45218
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
45219
 
  }
45220
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
45221
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
45222
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
45223
 
   private:
45224
 
  typedef CT_MembInit CCExprResolveExpr;
45225
 
 
45226
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
45227
 
 public :
45228
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
45229
 
  typedef CT_MembInit CExprResolveExpr;
45230
 
 
45231
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
45232
 
 public :
45233
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
45234
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45235
 
};
45236
 
 
45237
 
 
45238
 
#line 45239 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45239
 
} // closed Puma
45240
 
class WinIfExists;
45241
 
class WinImportHandler;
45242
 
class WinMacros;
45243
 
class CMatchSyntax;
45244
 
class ExtGnu;
45245
 
class ExtAC;
45246
 
class ExtACBuilderCoupling;
45247
 
class ExtACSyntaxCoupling;
45248
 
class ExtACTree;
45249
 
class ExtACKeywords;
45250
 
class WinAsm;
45251
 
class WinDeclSpecs;
45252
 
class WinMemberExplSpec;
45253
 
class WinTypeKeywords;
45254
 
class PragmaOnceUnitState;
45255
 
class PragmaOnce;
45256
 
class CCExprResolve;
45257
 
class CExprResolve;
45258
 
namespace Puma {
45259
 
 
45260
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45261
 
class CT_BaseSpecList : public CT_List {
45262
 
#line 45263 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45263
 
  friend class ::WinIfExists;
45264
 
  friend class ::WinImportHandler;
45265
 
  friend class ::WinMacros;
45266
 
  friend class ::CMatchSyntax;
45267
 
  friend class ::ExtGnu;
45268
 
  friend class ::ExtAC;
45269
 
  friend class ::ExtACBuilderCoupling;
45270
 
  friend class ::ExtACSyntaxCoupling;
45271
 
  friend class ::ExtACTree;
45272
 
  friend class ::ExtACKeywords;
45273
 
  friend class ::WinAsm;
45274
 
  friend class ::WinDeclSpecs;
45275
 
  friend class ::WinMemberExplSpec;
45276
 
  friend class ::WinTypeKeywords;
45277
 
  friend class ::PragmaOnceUnitState;
45278
 
  friend class ::PragmaOnce;
45279
 
  friend class ::CCExprResolve;
45280
 
  friend class ::CExprResolve;
45281
 
 
45282
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45283
 
 
45284
 
public:
45285
 
  CT_BaseSpecList (int size = 2) : 
45286
 
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
45287
 
  static const char *NodeId ();
45288
 
  const char *NodeName () const { return NodeId (); }
45289
 
};
45290
 
 
45291
 
 
45292
 
#line 45293 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45293
 
} // closed Puma
45294
 
class WinIfExists;
45295
 
class WinImportHandler;
45296
 
class WinMacros;
45297
 
class CMatchSyntax;
45298
 
class ExtGnu;
45299
 
class ExtAC;
45300
 
class ExtACBuilderCoupling;
45301
 
class ExtACSyntaxCoupling;
45302
 
class ExtACTree;
45303
 
class ExtACKeywords;
45304
 
class WinAsm;
45305
 
class WinDeclSpecs;
45306
 
class WinMemberExplSpec;
45307
 
class WinTypeKeywords;
45308
 
class PragmaOnceUnitState;
45309
 
class PragmaOnce;
45310
 
class CCExprResolve;
45311
 
class CExprResolve;
45312
 
namespace Puma {
45313
 
 
45314
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45315
 
class CT_AccessSpec : public CTree {
45316
 
#line 45317 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45317
 
  friend class ::WinIfExists;
45318
 
  friend class ::WinImportHandler;
45319
 
  friend class ::WinMacros;
45320
 
  friend class ::CMatchSyntax;
45321
 
  friend class ::ExtGnu;
45322
 
  friend class ::ExtAC;
45323
 
  friend class ::ExtACBuilderCoupling;
45324
 
  friend class ::ExtACSyntaxCoupling;
45325
 
  friend class ::ExtACTree;
45326
 
  friend class ::ExtACKeywords;
45327
 
  friend class ::WinAsm;
45328
 
  friend class ::WinDeclSpecs;
45329
 
  friend class ::WinMemberExplSpec;
45330
 
  friend class ::WinTypeKeywords;
45331
 
  friend class ::PragmaOnceUnitState;
45332
 
  friend class ::PragmaOnce;
45333
 
  friend class ::CCExprResolve;
45334
 
  friend class ::CExprResolve;
45335
 
 
45336
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45337
 
 
45338
 
  CTree *sons[2]; // access, colon
45339
 
 
45340
 
public:
45341
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
45342
 
  static const char *NodeId ();
45343
 
  const char *NodeName () const { return NodeId (); }
45344
 
  int Sons () const { return 2; }
45345
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
45346
 
  int Access () const { return sons[0]->token ()->type (); }
45347
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
45348
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
45349
 
  }
45350
 
};
45351
 
 
45352
 
 
45353
 
#line 45354 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45354
 
} // closed Puma
45355
 
class WinIfExists;
45356
 
class WinImportHandler;
45357
 
class WinMacros;
45358
 
class CMatchSyntax;
45359
 
class ExtGnu;
45360
 
class ExtAC;
45361
 
class ExtACBuilderCoupling;
45362
 
class ExtACSyntaxCoupling;
45363
 
class ExtACTree;
45364
 
class ExtACKeywords;
45365
 
class WinAsm;
45366
 
class WinDeclSpecs;
45367
 
class WinMemberExplSpec;
45368
 
class WinTypeKeywords;
45369
 
class PragmaOnceUnitState;
45370
 
class PragmaOnce;
45371
 
class CCExprResolve;
45372
 
class CExprResolve;
45373
 
namespace Puma {
45374
 
 
45375
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45376
 
class CT_BaseSpec : public CTree {
45377
 
#line 45378 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45378
 
  friend class ::WinIfExists;
45379
 
  friend class ::WinImportHandler;
45380
 
  friend class ::WinMacros;
45381
 
  friend class ::CMatchSyntax;
45382
 
  friend class ::ExtGnu;
45383
 
  friend class ::ExtAC;
45384
 
  friend class ::ExtACBuilderCoupling;
45385
 
  friend class ::ExtACSyntaxCoupling;
45386
 
  friend class ::ExtACTree;
45387
 
  friend class ::ExtACKeywords;
45388
 
  friend class ::WinAsm;
45389
 
  friend class ::WinDeclSpecs;
45390
 
  friend class ::WinMemberExplSpec;
45391
 
  friend class ::WinTypeKeywords;
45392
 
  friend class ::PragmaOnceUnitState;
45393
 
  friend class ::PragmaOnce;
45394
 
  friend class ::CCExprResolve;
45395
 
  friend class ::CExprResolve;
45396
 
 
45397
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45398
 
 
45399
 
  CTree *sons[3]; // virtual, access, name
45400
 
 
45401
 
public:
45402
 
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
45403
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
45404
 
  }
45405
 
  static const char *NodeId ();
45406
 
  const char *NodeName () const { return NodeId (); }
45407
 
  int Sons () const { return CTree::Sons (sons, 3); }
45408
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
45409
 
  int Access () const { return sons[1]->token ()->type (); }
45410
 
  CTree *AccessSpec () const { return sons[1]; }
45411
 
  CTree *Virtual () const { return sons[0]; }
45412
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
45413
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
45414
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
45415
 
  }
45416
 
};
45417
 
 
45418
 
 
45419
 
#line 45420 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45420
 
} // closed Puma
45421
 
class WinIfExists;
45422
 
class WinImportHandler;
45423
 
class WinMacros;
45424
 
class CMatchSyntax;
45425
 
class ExtGnu;
45426
 
class ExtAC;
45427
 
class ExtACBuilderCoupling;
45428
 
class ExtACSyntaxCoupling;
45429
 
class ExtACTree;
45430
 
class ExtACKeywords;
45431
 
class WinAsm;
45432
 
class WinDeclSpecs;
45433
 
class WinMemberExplSpec;
45434
 
class WinTypeKeywords;
45435
 
class PragmaOnceUnitState;
45436
 
class PragmaOnce;
45437
 
class CCExprResolve;
45438
 
class CExprResolve;
45439
 
namespace Puma {
45440
 
 
45441
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45442
 
class CT_AccessDecl : public CT_Decl {
45443
 
#line 45444 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45444
 
  friend class ::WinIfExists;
45445
 
  friend class ::WinImportHandler;
45446
 
  friend class ::WinMacros;
45447
 
  friend class ::CMatchSyntax;
45448
 
  friend class ::ExtGnu;
45449
 
  friend class ::ExtAC;
45450
 
  friend class ::ExtACBuilderCoupling;
45451
 
  friend class ::ExtACSyntaxCoupling;
45452
 
  friend class ::ExtACTree;
45453
 
  friend class ::ExtACKeywords;
45454
 
  friend class ::WinAsm;
45455
 
  friend class ::WinDeclSpecs;
45456
 
  friend class ::WinMemberExplSpec;
45457
 
  friend class ::WinTypeKeywords;
45458
 
  friend class ::PragmaOnceUnitState;
45459
 
  friend class ::PragmaOnce;
45460
 
  friend class ::CCExprResolve;
45461
 
  friend class ::CExprResolve;
45462
 
 
45463
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45464
 
 
45465
 
  CTree *sons[2]; // name, semi_colon
45466
 
 
45467
 
public:
45468
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
45469
 
  static const char *NodeId ();
45470
 
  const char *NodeName () const { return NodeId (); }
45471
 
  int Sons () const { return 2; }
45472
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
45473
 
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
45474
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
45475
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
45476
 
  }
45477
 
};
45478
 
 
45479
 
 
45480
 
#line 45481 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45481
 
} // closed Puma
45482
 
class WinIfExists;
45483
 
class WinImportHandler;
45484
 
class WinMacros;
45485
 
class CMatchSyntax;
45486
 
class ExtGnu;
45487
 
class ExtAC;
45488
 
class ExtACBuilderCoupling;
45489
 
class ExtACSyntaxCoupling;
45490
 
class ExtACTree;
45491
 
class ExtACKeywords;
45492
 
class WinAsm;
45493
 
class WinDeclSpecs;
45494
 
class WinMemberExplSpec;
45495
 
class WinTypeKeywords;
45496
 
class PragmaOnceUnitState;
45497
 
class PragmaOnce;
45498
 
class CCExprResolve;
45499
 
class CExprResolve;
45500
 
namespace Puma {
45501
 
 
45502
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45503
 
class CT_UsingDecl : public CT_AccessDecl {
45504
 
#line 45505 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45505
 
  friend class ::WinIfExists;
45506
 
  friend class ::WinImportHandler;
45507
 
  friend class ::WinMacros;
45508
 
  friend class ::CMatchSyntax;
45509
 
  friend class ::ExtGnu;
45510
 
  friend class ::ExtAC;
45511
 
  friend class ::ExtACBuilderCoupling;
45512
 
  friend class ::ExtACSyntaxCoupling;
45513
 
  friend class ::ExtACTree;
45514
 
  friend class ::ExtACKeywords;
45515
 
  friend class ::WinAsm;
45516
 
  friend class ::WinDeclSpecs;
45517
 
  friend class ::WinMemberExplSpec;
45518
 
  friend class ::WinTypeKeywords;
45519
 
  friend class ::PragmaOnceUnitState;
45520
 
  friend class ::PragmaOnce;
45521
 
  friend class ::CCExprResolve;
45522
 
  friend class ::CExprResolve;
45523
 
 
45524
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45525
 
 
45526
 
  CTree *sons[2]; // using, typename
45527
 
 
45528
 
public:
45529
 
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
45530
 
    sons[0] = u; sons[1] = 0; 
45531
 
  }
45532
 
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
45533
 
    sons[0] = u; sons[1] = t; 
45534
 
  }
45535
 
  static const char *NodeId ();
45536
 
  const char *NodeName () const { return NodeId (); }
45537
 
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
45538
 
  CTree *Son (int n) const {
45539
 
    int num = CTree::Sons (sons, 2);
45540
 
    CTree *result = CTree::Son (sons, 2, n);
45541
 
    return result ? result : CT_AccessDecl::Son (n-num);
45542
 
  }
45543
 
  CTree *Typename () const { return sons[1]; }
45544
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
45545
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
45546
 
    CT_AccessDecl::ReplaceSon (old_son, new_son);
45547
 
  }
45548
 
};
45549
 
 
45550
 
/*****************************************************************************/
45551
 
/*                                                                           */
45552
 
/*                              Wildcards                                    */
45553
 
/*                                                                           */
45554
 
/*****************************************************************************/
45555
 
 
45556
 
 
45557
 
#line 45558 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45558
 
} // closed Puma
45559
 
class WinIfExists;
45560
 
class WinImportHandler;
45561
 
class WinMacros;
45562
 
class CMatchSyntax;
45563
 
class ExtGnu;
45564
 
class ExtAC;
45565
 
class ExtACBuilderCoupling;
45566
 
class ExtACSyntaxCoupling;
45567
 
class ExtACTree;
45568
 
class ExtACKeywords;
45569
 
class WinAsm;
45570
 
class WinDeclSpecs;
45571
 
class WinMemberExplSpec;
45572
 
class WinTypeKeywords;
45573
 
class PragmaOnceUnitState;
45574
 
class PragmaOnce;
45575
 
class CCExprResolve;
45576
 
class CExprResolve;
45577
 
namespace Puma {
45578
 
 
45579
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45580
 
class CT_Any : public CTree {
45581
 
#line 45582 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45582
 
  friend class ::WinIfExists;
45583
 
  friend class ::WinImportHandler;
45584
 
  friend class ::WinMacros;
45585
 
  friend class ::CMatchSyntax;
45586
 
  friend class ::ExtGnu;
45587
 
  friend class ::ExtAC;
45588
 
  friend class ::ExtACBuilderCoupling;
45589
 
  friend class ::ExtACSyntaxCoupling;
45590
 
  friend class ::ExtACTree;
45591
 
  friend class ::ExtACKeywords;
45592
 
  friend class ::WinAsm;
45593
 
  friend class ::WinDeclSpecs;
45594
 
  friend class ::WinMemberExplSpec;
45595
 
  friend class ::WinTypeKeywords;
45596
 
  friend class ::PragmaOnceUnitState;
45597
 
  friend class ::PragmaOnce;
45598
 
  friend class ::CCExprResolve;
45599
 
  friend class ::CExprResolve;
45600
 
 
45601
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45602
 
 
45603
 
  CTree *sons[2]; // keyword, extension
45604
 
 
45605
 
public:
45606
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
45607
 
  static const char *NodeId ();
45608
 
  const char *NodeName () const { return NodeId (); }
45609
 
  int Sons () const { return CTree::Sons (sons, 2); }
45610
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
45611
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
45612
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
45613
 
  }
45614
 
  int AnyType () const { return sons[0]->token ()->type (); }
45615
 
  CT_AnyExtension *Extension () const { return (CT_AnyExtension*)sons[1]; }
45616
 
};
45617
 
 
45618
 
 
45619
 
#line 45620 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45620
 
} // closed Puma
45621
 
class WinIfExists;
45622
 
class WinImportHandler;
45623
 
class WinMacros;
45624
 
class CMatchSyntax;
45625
 
class ExtGnu;
45626
 
class ExtAC;
45627
 
class ExtACBuilderCoupling;
45628
 
class ExtACSyntaxCoupling;
45629
 
class ExtACTree;
45630
 
class ExtACKeywords;
45631
 
class WinAsm;
45632
 
class WinDeclSpecs;
45633
 
class WinMemberExplSpec;
45634
 
class WinTypeKeywords;
45635
 
class PragmaOnceUnitState;
45636
 
class PragmaOnce;
45637
 
class CCExprResolve;
45638
 
class CExprResolve;
45639
 
namespace Puma {
45640
 
 
45641
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45642
 
class CT_AnyList : public CT_Any {
45643
 
#line 45644 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45644
 
  friend class ::WinIfExists;
45645
 
  friend class ::WinImportHandler;
45646
 
  friend class ::WinMacros;
45647
 
  friend class ::CMatchSyntax;
45648
 
  friend class ::ExtGnu;
45649
 
  friend class ::ExtAC;
45650
 
  friend class ::ExtACBuilderCoupling;
45651
 
  friend class ::ExtACSyntaxCoupling;
45652
 
  friend class ::ExtACTree;
45653
 
  friend class ::ExtACKeywords;
45654
 
  friend class ::WinAsm;
45655
 
  friend class ::WinDeclSpecs;
45656
 
  friend class ::WinMemberExplSpec;
45657
 
  friend class ::WinTypeKeywords;
45658
 
  friend class ::PragmaOnceUnitState;
45659
 
  friend class ::PragmaOnce;
45660
 
  friend class ::CCExprResolve;
45661
 
  friend class ::CExprResolve;
45662
 
 
45663
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45664
 
 
45665
 
public:
45666
 
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
45667
 
  static const char *NodeId ();
45668
 
  const char *NodeName () const { return NodeId (); }
45669
 
};
45670
 
 
45671
 
 
45672
 
#line 45673 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45673
 
} // closed Puma
45674
 
class WinIfExists;
45675
 
class WinImportHandler;
45676
 
class WinMacros;
45677
 
class CMatchSyntax;
45678
 
class ExtGnu;
45679
 
class ExtAC;
45680
 
class ExtACBuilderCoupling;
45681
 
class ExtACSyntaxCoupling;
45682
 
class ExtACTree;
45683
 
class ExtACKeywords;
45684
 
class WinAsm;
45685
 
class WinDeclSpecs;
45686
 
class WinMemberExplSpec;
45687
 
class WinTypeKeywords;
45688
 
class PragmaOnceUnitState;
45689
 
class PragmaOnce;
45690
 
class CCExprResolve;
45691
 
class CExprResolve;
45692
 
namespace Puma {
45693
 
 
45694
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45695
 
class CT_AnyExtension : public CTree, public CSemValue {
45696
 
#line 45697 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45697
 
  friend class ::WinIfExists;
45698
 
  friend class ::WinImportHandler;
45699
 
  friend class ::WinMacros;
45700
 
  friend class ::CMatchSyntax;
45701
 
  friend class ::ExtGnu;
45702
 
  friend class ::ExtAC;
45703
 
  friend class ::ExtACBuilderCoupling;
45704
 
  friend class ::ExtACSyntaxCoupling;
45705
 
  friend class ::ExtACTree;
45706
 
  friend class ::ExtACKeywords;
45707
 
  friend class ::WinAsm;
45708
 
  friend class ::WinDeclSpecs;
45709
 
  friend class ::WinMemberExplSpec;
45710
 
  friend class ::WinTypeKeywords;
45711
 
  friend class ::PragmaOnceUnitState;
45712
 
  friend class ::PragmaOnce;
45713
 
  friend class ::CCExprResolve;
45714
 
  friend class ::CExprResolve;
45715
 
 
45716
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45717
 
 
45718
 
  CTree *sons[5]; // open, string, comma, cond, close
45719
 
 
45720
 
public:
45721
 
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
45722
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
45723
 
  }
45724
 
  static const char *NodeId ();
45725
 
  const char *NodeName () const { return NodeId (); }
45726
 
  int Sons () const { return CTree::Sons (sons, 5); }
45727
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
45728
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
45729
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
45730
 
  }
45731
 
  CTree *Condition () const { return sons[3]; }
45732
 
  CT_Token *String () const { return (CT_Token*)sons[1]; }
45733
 
  const char *Name () const { 
45734
 
    return value ? value->StrLiteral ()->String () : (const char*)0; }
45735
 
 
45736
 
  CExprValue *Value () const { return value; }
45737
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
45738
 
};
45739
 
 
45740
 
 
45741
 
#line 45742 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45742
 
} // closed Puma
45743
 
class WinIfExists;
45744
 
class WinImportHandler;
45745
 
class WinMacros;
45746
 
class CMatchSyntax;
45747
 
class ExtGnu;
45748
 
class ExtAC;
45749
 
class ExtACBuilderCoupling;
45750
 
class ExtACSyntaxCoupling;
45751
 
class ExtACTree;
45752
 
class ExtACKeywords;
45753
 
class WinAsm;
45754
 
class WinDeclSpecs;
45755
 
class WinMemberExplSpec;
45756
 
class WinTypeKeywords;
45757
 
class PragmaOnceUnitState;
45758
 
class PragmaOnce;
45759
 
class CCExprResolve;
45760
 
class CExprResolve;
45761
 
namespace Puma {
45762
 
 
45763
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45764
 
class CT_AnyCondition : public CTree {
45765
 
#line 45766 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45766
 
  friend class ::WinIfExists;
45767
 
  friend class ::WinImportHandler;
45768
 
  friend class ::WinMacros;
45769
 
  friend class ::CMatchSyntax;
45770
 
  friend class ::ExtGnu;
45771
 
  friend class ::ExtAC;
45772
 
  friend class ::ExtACBuilderCoupling;
45773
 
  friend class ::ExtACSyntaxCoupling;
45774
 
  friend class ::ExtACTree;
45775
 
  friend class ::ExtACKeywords;
45776
 
  friend class ::WinAsm;
45777
 
  friend class ::WinDeclSpecs;
45778
 
  friend class ::WinMemberExplSpec;
45779
 
  friend class ::WinTypeKeywords;
45780
 
  friend class ::PragmaOnceUnitState;
45781
 
  friend class ::PragmaOnce;
45782
 
  friend class ::CCExprResolve;
45783
 
  friend class ::CExprResolve;
45784
 
 
45785
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45786
 
 
45787
 
  CTree *sons[3]; // arg1, arg2, arg3
45788
 
 
45789
 
public:
45790
 
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
45791
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
45792
 
  }
45793
 
  static const char *NodeId ();
45794
 
  const char *NodeName () const { return NodeId (); }
45795
 
  int Sons () const { return CTree::Sons (sons, 3); }
45796
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
45797
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
45798
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
45799
 
  }
45800
 
};
45801
 
 
45802
 
 
45803
 
} // namespace Puma
45804
 
 
45805
 
#endif /* __CTree_h__ */
45806
 
 
45807
 
#line 45808 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45808
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
45809
 
 
45810
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45811
 
 
45812
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
45813
 
namespace Puma {
45814
 
 
45815
 
 
45816
 
CSemDeclSpecs::CSemDeclSpecs (ErrorSink *err, CT_DeclSpecSeq *dss) :
45817
 
  _err (err), _dss (dss) {
45818
 
   
45819
 
  bool no_error = true, have_type = false;
45820
 
  
45821
 
  // first gather information about all nodes in the sequence
45822
 
  no_error = (analyze_seq () && no_error);
45823
 
  
45824
 
  // check for errors
45825
 
  no_error = (check_prim_decl_specs (have_type) && no_error);
45826
 
  no_error = (check_complex_decl_specs (have_type) && no_error);  
45827
 
  no_error = (check_storage_class () && no_error);
45828
 
  no_error = (check_signed_unsigned () && no_error);
45829
 
  no_error = (check_long_short () && no_error); 
45830
 
 
45831
 
  // now create the type
45832
 
  _type = &CTYPE_UNDEFINED;
45833
 
  if (have_type && no_error) {
45834
 
    CTypeInfo *type = create_qualifiers (create_type ());
45835
 
    // assign the type if the final check is also ok
45836
 
    if (check_finally ())
45837
 
      _type = type;
45838
 
  }
45839
 
}
45840
 
 
45841
 
 
45842
 
// analyses the syntax tree nodes of the decl-spec sequence. Return false
45843
 
// if an error was detected. 
45844
 
 
45845
 
#line 45846 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45846
 
 
45847
 
 
45848
 
struct TJP__ZN4Puma13CSemDeclSpecs11analyze_seqEv_0 {
45849
 
  typedef bool Result;
45850
 
  typedef ::Puma::CSemDeclSpecs That;
45851
 
  typedef ::Puma::CSemDeclSpecs Target;
45852
 
  static const int JPID = 129;
45853
 
  static const AC::JPType JPTYPE = (AC::JPType)8;
45854
 
  struct Res {
45855
 
    typedef bool Type;
45856
 
    typedef bool ReferredType;
45857
 
  };
45858
 
  enum { ARGS = 0 };
45859
 
  template <int I, int DUMMY = 0> struct Arg {
45860
 
    typedef void Type;
45861
 
    typedef void ReferredType;
45862
 
  };
45863
 
 
45864
 
  That *_that;
45865
 
 
45866
 
  inline That *that() {return (That*)_that;}
45867
 
 
45868
 
};
45869
 
struct Binding_TJP__ZN4Puma13CSemDeclSpecs11analyze_seqEv_0_ExtGnu_ExtGnu_a7_before {
45870
 
  typedef TJP__ZN4Puma13CSemDeclSpecs11analyze_seqEv_0 TJP;
45871
 
  template <int I, int DUMMY = 0> struct Arg {
45872
 
    void val (TJP *tjp) {} // for VC7
45873
 
  };
45874
 
  template <int DUMMY> struct Arg<0, DUMMY> {
45875
 
    static TJP::That &val (TJP *tjp) { return *tjp->that (); }
45876
 
  };
45877
 
};
45878
 
 
45879
 
 
45880
 
#line 57 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
45881
 
bool CSemDeclSpecs::analyze_seq () 
45882
 
#line 45883 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45883
 
{
45884
 
  AC::ResultBuffer< bool  > result;
45885
 
  TJP__ZN4Puma13CSemDeclSpecs11analyze_seqEv_0 tjp;
45886
 
  tjp._that =  (TJP__ZN4Puma13CSemDeclSpecs11analyze_seqEv_0::That*)this;
45887
 
  AC::invoke_ExtGnu_ExtGnu_a7_before<TJP__ZN4Puma13CSemDeclSpecs11analyze_seqEv_0, Binding_TJP__ZN4Puma13CSemDeclSpecs11analyze_seqEv_0_ExtGnu_ExtGnu_a7_before> (&tjp);
45888
 
  ::new (&result) bool  (this->__exec_old_analyze_seq());
45889
 
  return (bool &)result;
45890
 
 
45891
 
}
45892
 
inline bool Puma::CSemDeclSpecs::__exec_old_analyze_seq()
45893
 
#line 57 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
45894
 
{
45895
 
 
45896
 
  _names = 0, _class_specs = 0, _union_specs = 0, _enum_specs = 0;
45897
 
  _def_class = _def_union = _def_enum = false;
45898
 
  _name = 0;
45899
 
  for (int i = 0; i < CT_PrimDeclSpec::NumTypes; i++)
45900
 
    _prim_map[i] = 0; // clear the array
45901
 
 
45902
 
  // Gather information about the declaration specifiers
45903
 
  for (int s = 0; s < _dss->Sons (); s++) {
45904
 
    CTree *spec = _dss->Son (s);
45905
 
    if (!analyze (spec)) {
45906
 
      Token *token = spec->token ();
45907
 
      if (token) *_err << token->location ();
45908
 
      *_err << sev_fatal << "unknown declaration specifier `" 
45909
 
           << spec->NodeName () << "'" << endMessage;
45910
 
      return false;
45911
 
    }
45912
 
  }
45913
 
  return true;
45914
 
}
45915
 
 
45916
 
 
45917
 
// analyzes the current declaration specifier in the sequence and set some
45918
 
// attributes according to the result. Returns false if the specifier type
45919
 
// is unknown.
45920
 
 
45921
 
#line 45922 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45922
 
 
45923
 
 
45924
 
struct TJP__ZN4Puma13CSemDeclSpecs7analyzeEPN4PumaE5CTree_0 {
45925
 
  typedef bool Result;
45926
 
  typedef ::Puma::CSemDeclSpecs That;
45927
 
  typedef ::Puma::CSemDeclSpecs Target;
45928
 
  static const int JPID = 130;
45929
 
  static const AC::JPType JPTYPE = (AC::JPType)8;
45930
 
  struct Res {
45931
 
    typedef bool Type;
45932
 
    typedef bool ReferredType;
45933
 
  };
45934
 
  enum { ARGS = 1 };
45935
 
  template <int I, int DUMMY = 0> struct Arg {
45936
 
    typedef void Type;
45937
 
    typedef void ReferredType;
45938
 
  };
45939
 
  template <int DUMMY> struct Arg<0, DUMMY> {
45940
 
    typedef ::Puma::CTree * Type;
45941
 
    typedef ::Puma::CTree * ReferredType;
45942
 
  };
45943
 
 
45944
 
  void **_args;
45945
 
  Result *_result;
45946
 
  That *_that;
45947
 
 
45948
 
  inline void *arg (int n) {return _args[n];}
45949
 
  template <int I> typename Arg<I>::ReferredType *arg () {
45950
 
    return (typename Arg<I>::ReferredType*)arg (I);
45951
 
  }
45952
 
  inline Result *result() {return (Result*)_result;}
45953
 
  inline That *that() {return (That*)_that;}
45954
 
 
45955
 
};
45956
 
struct Binding_TJP__ZN4Puma13CSemDeclSpecs7analyzeEPN4PumaE5CTree_0_ExtGnu_ExtGnu_a8_after {
45957
 
  typedef TJP__ZN4Puma13CSemDeclSpecs7analyzeEPN4PumaE5CTree_0 TJP;
45958
 
  template <int I, int DUMMY = 0> struct Arg {
45959
 
    void val (TJP *tjp) {} // for VC7
45960
 
  };
45961
 
  template <int DUMMY> struct Arg<0, DUMMY> {
45962
 
    static TJP::That &val (TJP *tjp) { return *tjp->that (); }
45963
 
  };
45964
 
  template <int DUMMY> struct Arg<1, DUMMY> {
45965
 
    static TJP::Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
45966
 
  };
45967
 
};
45968
 
 
45969
 
 
45970
 
#line 83 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
45971
 
bool CSemDeclSpecs::analyze (CTree * arg0) 
45972
 
#line 45973 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
45973
 
{
45974
 
  AC::ResultBuffer< bool  > result;
45975
 
  void *args__ZN4Puma13CSemDeclSpecs7analyzeEPN4PumaE5CTree[] = { (void*)&arg0 };
45976
 
  TJP__ZN4Puma13CSemDeclSpecs7analyzeEPN4PumaE5CTree_0 tjp;
45977
 
  tjp._args = args__ZN4Puma13CSemDeclSpecs7analyzeEPN4PumaE5CTree;
45978
 
  tjp._result = &(TJP__ZN4Puma13CSemDeclSpecs7analyzeEPN4PumaE5CTree_0::Result&)result;
45979
 
  tjp._that =  (TJP__ZN4Puma13CSemDeclSpecs7analyzeEPN4PumaE5CTree_0::That*)this;
45980
 
  ::new (&result) bool  (this->__exec_old_analyze(arg0));
45981
 
  AC::invoke_ExtGnu_ExtGnu_a8_after<TJP__ZN4Puma13CSemDeclSpecs7analyzeEPN4PumaE5CTree_0, Binding_TJP__ZN4Puma13CSemDeclSpecs7analyzeEPN4PumaE5CTree_0_ExtGnu_ExtGnu_a8_after> (&tjp);
45982
 
  return (bool &)result;
45983
 
 
45984
 
}
45985
 
inline bool Puma::CSemDeclSpecs::__exec_old_analyze(::Puma::CTree * spec)
45986
 
#line 83 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
45987
 
{
45988
 
  const char *id = spec->NodeName ();
45989
 
  if (id == CT_PrimDeclSpec::NodeId ()) {
45990
 
    CT_PrimDeclSpec *pds = (CT_PrimDeclSpec*)spec;
45991
 
    _prim_map[pds->SpecType ()]++;
45992
 
    _prim_token[pds->SpecType ()] = pds->token ();
45993
 
  } else if (id == CT_SimpleName::NodeId () ||
45994
 
             id == CT_TemplateName::NodeId () ||
45995
 
             id == CT_QualName::NodeId () ||
45996
 
      id == CT_RootQualName::NodeId ()) {
45997
 
    _names++;
45998
 
    _name = (CT_SimpleName*)spec;
45999
 
  } else if (id == CT_ClassSpec::NodeId ()) {
46000
 
    _class_specs++;
46001
 
    _name = (CT_SimpleName*)spec->Son (1);
46002
 
    _def_class = (_name && _name->Object () && 
46003
 
                  _name->Object ()->Record () &&
46004
 
                  _name->Object ()->Record ()->isDefined ());
46005
 
  } else if (id == CT_ClassDef::NodeId ()) {
46006
 
    _class_specs++;
46007
 
    _name = (CT_SimpleName*)spec->Son (1);
46008
 
    _def_class = true;
46009
 
  } else if (id == CT_UnionSpec::NodeId ()) {
46010
 
    _union_specs++;
46011
 
    _name = (CT_SimpleName*)spec->Son (1);
46012
 
    _def_union = (_name && _name->Object () && 
46013
 
                  _name->Object ()->Record ()->isDefined ());
46014
 
  } else if (id == CT_UnionDef::NodeId ()) {
46015
 
    _union_specs++;
46016
 
    _name = (CT_SimpleName*)spec->Son (1);
46017
 
    _def_union = true;
46018
 
  } else if (id == CT_EnumSpec::NodeId ()) {
46019
 
    _enum_specs++;
46020
 
    _name = (CT_SimpleName*)spec->Son (1);
46021
 
    _def_enum = (_name && _name->Object () && 
46022
 
                 _name->Object ()->EnumInfo ()->isDefined ());
46023
 
  } else if (id == CT_EnumDef::NodeId ()) {
46024
 
    _enum_specs++;
46025
 
    _name = (CT_SimpleName*)spec->Son (1);
46026
 
    _def_enum = true;
46027
 
  } else
46028
 
    return false;
46029
 
  return true;
46030
 
}
46031
 
 
46032
 
 
46033
 
bool CSemDeclSpecs::check_prim_decl_specs (bool &have_type) {
46034
 
  bool have_error = false;
46035
 
  for (int s = 0; s < CT_PrimDeclSpec::NumTypes; s++) {
46036
 
    int count = _prim_map[s];
46037
 
    switch (s) { // be careful, some break statement are missing!
46038
 
      case CT_PrimDeclSpec::PDS_LONG:
46039
 
        if (count > 0) have_type = true;
46040
 
        if (count > 2) {
46041
 
          *_err << sev_error << _prim_token[s]->location () << count 
46042
 
                << " times `long' is too long" << endMessage;
46043
 
          have_error = true;
46044
 
        }
46045
 
        break;
46046
 
      case CT_PrimDeclSpec::PDS_CHAR:
46047
 
      case CT_PrimDeclSpec::PDS_WCHAR_T:
46048
 
      case CT_PrimDeclSpec::PDS_BOOL:
46049
 
      case CT_PrimDeclSpec::PDS_INT:
46050
 
      case CT_PrimDeclSpec::PDS_INT64:
46051
 
      case CT_PrimDeclSpec::PDS_FLOAT:
46052
 
      case CT_PrimDeclSpec::PDS_DOUBLE:
46053
 
      case CT_PrimDeclSpec::PDS_VOID:
46054
 
      case CT_PrimDeclSpec::PDS_UNKNOWN_T:
46055
 
        if (count > 0) have_type = true;
46056
 
        if (count > 1) {
46057
 
          *_err << sev_error << _prim_token[s]->location ()
46058
 
                << "extraneous `" << _prim_token[s]->text () 
46059
 
                << "' ignored" << endMessage;
46060
 
          have_error = true;
46061
 
        }
46062
 
      break;
46063
 
      case CT_PrimDeclSpec::PDS_SIGNED:
46064
 
        if (count > 0 && _prim_map[CT_PrimDeclSpec::PDS_UNSIGNED] > 0) {
46065
 
          *_err << sev_error << _prim_token[s]->location () 
46066
 
                << "signed and unsigned given together" << endMessage;
46067
 
          have_error = true;
46068
 
        }
46069
 
      case CT_PrimDeclSpec::PDS_UNSIGNED:
46070
 
      case CT_PrimDeclSpec::PDS_SHORT:
46071
 
        if (count > 0) have_type = true;
46072
 
      default:
46073
 
        if (count > 1) {
46074
 
          *_err << sev_warning << _prim_token[s]->location () 
46075
 
                << "duplicate `" << _prim_token[s]->text () << "'"
46076
 
                << endMessage;
46077
 
          have_error = true;
46078
 
        }
46079
 
    }
46080
 
  }
46081
 
  return !have_error;
46082
 
}
46083
 
 
46084
 
 
46085
 
 
46086
 
#line 46087 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
46087
 
 
46088
 
 
46089
 
struct TJP__ZN4Puma13CSemDeclSpecs24check_complex_decl_specsERb_0 {
46090
 
  typedef bool Result;
46091
 
  typedef ::Puma::CSemDeclSpecs That;
46092
 
  typedef ::Puma::CSemDeclSpecs Target;
46093
 
  static const int JPID = 131;
46094
 
  static const AC::JPType JPTYPE = (AC::JPType)8;
46095
 
  struct Res {
46096
 
    typedef bool Type;
46097
 
    typedef bool ReferredType;
46098
 
  };
46099
 
  enum { ARGS = 1 };
46100
 
  template <int I, int DUMMY = 0> struct Arg {
46101
 
    typedef void Type;
46102
 
    typedef void ReferredType;
46103
 
  };
46104
 
  template <int DUMMY> struct Arg<0, DUMMY> {
46105
 
    typedef bool & Type;
46106
 
    typedef bool ReferredType;
46107
 
  };
46108
 
 
46109
 
  void **_args;
46110
 
  Result *_result;
46111
 
  That *_that;
46112
 
 
46113
 
  inline void *arg (int n) {return _args[n];}
46114
 
  template <int I> typename Arg<I>::ReferredType *arg () {
46115
 
    return (typename Arg<I>::ReferredType*)arg (I);
46116
 
  }
46117
 
  inline Result *result() {return (Result*)_result;}
46118
 
  inline That *that() {return (That*)_that;}
46119
 
 
46120
 
};
46121
 
struct Binding_TJP__ZN4Puma13CSemDeclSpecs24check_complex_decl_specsERb_0_ExtGnu_ExtGnu_a9_after {
46122
 
  typedef TJP__ZN4Puma13CSemDeclSpecs24check_complex_decl_specsERb_0 TJP;
46123
 
  template <int I, int DUMMY = 0> struct Arg {
46124
 
    void val (TJP *tjp) {} // for VC7
46125
 
  };
46126
 
  template <int DUMMY> struct Arg<0, DUMMY> {
46127
 
    static TJP::That &val (TJP *tjp) { return *tjp->that (); }
46128
 
  };
46129
 
  template <int DUMMY> struct Arg<1, DUMMY> {
46130
 
    static TJP::Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
46131
 
  };
46132
 
};
46133
 
 
46134
 
 
46135
 
#line 181 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
46136
 
bool CSemDeclSpecs::check_complex_decl_specs (bool & arg0) 
46137
 
#line 46138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
46138
 
{
46139
 
  AC::ResultBuffer< bool  > result;
46140
 
  void *args__ZN4Puma13CSemDeclSpecs24check_complex_decl_specsERb[] = { (void*)&arg0 };
46141
 
  TJP__ZN4Puma13CSemDeclSpecs24check_complex_decl_specsERb_0 tjp;
46142
 
  tjp._args = args__ZN4Puma13CSemDeclSpecs24check_complex_decl_specsERb;
46143
 
  tjp._result = &(TJP__ZN4Puma13CSemDeclSpecs24check_complex_decl_specsERb_0::Result&)result;
46144
 
  tjp._that =  (TJP__ZN4Puma13CSemDeclSpecs24check_complex_decl_specsERb_0::That*)this;
46145
 
  ::new (&result) bool  (this->__exec_old_check_complex_decl_specs(arg0));
46146
 
  AC::invoke_ExtGnu_ExtGnu_a9_after<TJP__ZN4Puma13CSemDeclSpecs24check_complex_decl_specsERb_0, Binding_TJP__ZN4Puma13CSemDeclSpecs24check_complex_decl_specsERb_0_ExtGnu_ExtGnu_a9_after> (&tjp);
46147
 
  return (bool &)result;
46148
 
 
46149
 
}
46150
 
inline bool Puma::CSemDeclSpecs::__exec_old_check_complex_decl_specs(bool & have_type)
46151
 
#line 181 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
46152
 
{
46153
 
  if (_names || _class_specs || _union_specs || _enum_specs) {
46154
 
    have_type = true;
46155
 
  }
46156
 
  return true;
46157
 
}
46158
 
 
46159
 
 
46160
 
bool CSemDeclSpecs::check_storage_class () {
46161
 
  if (_prim_map[CT_PrimDeclSpec::PDS_TYPEDEF] + 
46162
 
      _prim_map[CT_PrimDeclSpec::PDS_AUTO] + 
46163
 
      _prim_map[CT_PrimDeclSpec::PDS_REGISTER] + 
46164
 
      _prim_map[CT_PrimDeclSpec::PDS_STATIC] + 
46165
 
      _prim_map[CT_PrimDeclSpec::PDS_EXTERN] + 
46166
 
      _prim_map[CT_PrimDeclSpec::PDS_MUTABLE]  > 1) {
46167
 
    *_err << sev_error << _dss->token ()->location () 
46168
 
         << "multiple storage classes in declaration" << endMessage;
46169
 
    return false;
46170
 
  }
46171
 
  return true;
46172
 
}
46173
 
 
46174
 
 
46175
 
 
46176
 
#line 46177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
46177
 
 
46178
 
 
46179
 
struct TJP__ZN4Puma13CSemDeclSpecs21check_signed_unsignedEv_0 {
46180
 
  typedef bool Result;
46181
 
  typedef ::Puma::CSemDeclSpecs That;
46182
 
  typedef ::Puma::CSemDeclSpecs Target;
46183
 
  static const int JPID = 132;
46184
 
  static const AC::JPType JPTYPE = (AC::JPType)8;
46185
 
  struct Res {
46186
 
    typedef bool Type;
46187
 
    typedef bool ReferredType;
46188
 
  };
46189
 
  enum { ARGS = 0 };
46190
 
  template <int I, int DUMMY = 0> struct Arg {
46191
 
    typedef void Type;
46192
 
    typedef void ReferredType;
46193
 
  };
46194
 
 
46195
 
  Result *_result;
46196
 
  That *_that;
46197
 
 
46198
 
  inline Result *result() {return (Result*)_result;}
46199
 
  inline That *that() {return (That*)_that;}
46200
 
 
46201
 
};
46202
 
struct Binding_TJP__ZN4Puma13CSemDeclSpecs21check_signed_unsignedEv_0_ExtGnu_ExtGnu_a10_after {
46203
 
  typedef TJP__ZN4Puma13CSemDeclSpecs21check_signed_unsignedEv_0 TJP;
46204
 
  template <int I, int DUMMY = 0> struct Arg {
46205
 
    void val (TJP *tjp) {} // for VC7
46206
 
  };
46207
 
  template <int DUMMY> struct Arg<0, DUMMY> {
46208
 
    static TJP::That &val (TJP *tjp) { return *tjp->that (); }
46209
 
  };
46210
 
};
46211
 
 
46212
 
 
46213
 
#line 204 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
46214
 
bool CSemDeclSpecs::check_signed_unsigned () 
46215
 
#line 46216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
46216
 
{
46217
 
  AC::ResultBuffer< bool  > result;
46218
 
  TJP__ZN4Puma13CSemDeclSpecs21check_signed_unsignedEv_0 tjp;
46219
 
  tjp._result = &(TJP__ZN4Puma13CSemDeclSpecs21check_signed_unsignedEv_0::Result&)result;
46220
 
  tjp._that =  (TJP__ZN4Puma13CSemDeclSpecs21check_signed_unsignedEv_0::That*)this;
46221
 
  ::new (&result) bool  (this->__exec_old_check_signed_unsigned());
46222
 
  AC::invoke_ExtGnu_ExtGnu_a10_after<TJP__ZN4Puma13CSemDeclSpecs21check_signed_unsignedEv_0, Binding_TJP__ZN4Puma13CSemDeclSpecs21check_signed_unsignedEv_0_ExtGnu_ExtGnu_a10_after> (&tjp);
46223
 
  return (bool &)result;
46224
 
 
46225
 
}
46226
 
inline bool Puma::CSemDeclSpecs::__exec_old_check_signed_unsigned()
46227
 
#line 204 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
46228
 
{
46229
 
  if ((_prim_map[CT_PrimDeclSpec::PDS_SIGNED] || 
46230
 
       _prim_map[CT_PrimDeclSpec::PDS_UNSIGNED]) &&
46231
 
      (_prim_map[CT_PrimDeclSpec::PDS_BOOL] || 
46232
 
       _prim_map[CT_PrimDeclSpec::PDS_FLOAT] || 
46233
 
       _prim_map[CT_PrimDeclSpec::PDS_DOUBLE] || 
46234
 
       _prim_map[CT_PrimDeclSpec::PDS_VOID] ||
46235
 
       _prim_map[CT_PrimDeclSpec::PDS_UNKNOWN_T] ||
46236
 
       _prim_map[CT_PrimDeclSpec::PDS_WCHAR_T] ||
46237
 
       _class_specs || _union_specs || _enum_specs)) {
46238
 
    *_err << sev_error << _dss->token ()->location () 
46239
 
         << "`signed' or `unsigned' invalid for given type"
46240
 
         << endMessage;
46241
 
    return false;
46242
 
  }
46243
 
  return true;
46244
 
}
46245
 
 
46246
 
 
46247
 
bool CSemDeclSpecs::check_long_short () {
46248
 
  if (_prim_map[CT_PrimDeclSpec::PDS_LONG] &&
46249
 
      _prim_map[CT_PrimDeclSpec::PDS_SHORT]) {
46250
 
    *_err << sev_error << _dss->token ()->location () 
46251
 
         << "`long' and `short' specified together"
46252
 
         << endMessage;
46253
 
    return false;
46254
 
  }
46255
 
  return true;
46256
 
}
46257
 
 
46258
 
 
46259
 
// makes a type object according to the state of this object after analysis
46260
 
 
46261
 
#line 46262 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
46262
 
 
46263
 
 
46264
 
struct TJP__ZN4Puma13CSemDeclSpecs11create_typeEv_0 {
46265
 
  typedef ::Puma::CTypeInfo * Result;
46266
 
  typedef ::Puma::CSemDeclSpecs That;
46267
 
  typedef ::Puma::CSemDeclSpecs Target;
46268
 
  static const int JPID = 134;
46269
 
  static const AC::JPType JPTYPE = (AC::JPType)8;
46270
 
  struct Res {
46271
 
    typedef ::Puma::CTypeInfo * Type;
46272
 
    typedef ::Puma::CTypeInfo * ReferredType;
46273
 
  };
46274
 
  enum { ARGS = 0 };
46275
 
  template <int I, int DUMMY = 0> struct Arg {
46276
 
    typedef void Type;
46277
 
    typedef void ReferredType;
46278
 
  };
46279
 
 
46280
 
  Result *_result;
46281
 
  That *_that;
46282
 
 
46283
 
  inline Result *result() {return (Result*)_result;}
46284
 
  inline That *that() {return (That*)_that;}
46285
 
 
46286
 
};
46287
 
struct Binding_TJP__ZN4Puma13CSemDeclSpecs11create_typeEv_0_ExtGnu_ExtGnu_a12_after {
46288
 
  typedef TJP__ZN4Puma13CSemDeclSpecs11create_typeEv_0 TJP;
46289
 
  template <int I, int DUMMY = 0> struct Arg {
46290
 
    void val (TJP *tjp) {} // for VC7
46291
 
  };
46292
 
  template <int DUMMY> struct Arg<0, DUMMY> {
46293
 
    static TJP::That &val (TJP *tjp) { return *tjp->that (); }
46294
 
  };
46295
 
};
46296
 
 
46297
 
 
46298
 
#line 236 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
46299
 
CTypeInfo *CSemDeclSpecs::create_type () 
46300
 
#line 46301 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
46301
 
{
46302
 
  AC::ResultBuffer< ::Puma::CTypeInfo *  > result;
46303
 
  TJP__ZN4Puma13CSemDeclSpecs11create_typeEv_0 tjp;
46304
 
  tjp._result = &(TJP__ZN4Puma13CSemDeclSpecs11create_typeEv_0::Result&)result;
46305
 
  tjp._that =  (TJP__ZN4Puma13CSemDeclSpecs11create_typeEv_0::That*)this;
46306
 
  ::new (&result) ::Puma::CTypeInfo *  (this->__exec_old_create_type());
46307
 
  AC::invoke_ExtGnu_ExtGnu_a12_after<TJP__ZN4Puma13CSemDeclSpecs11create_typeEv_0, Binding_TJP__ZN4Puma13CSemDeclSpecs11create_typeEv_0_ExtGnu_ExtGnu_a12_after> (&tjp);
46308
 
  return (::Puma::CTypeInfo * &)result;
46309
 
 
46310
 
}
46311
 
inline ::Puma::CTypeInfo * Puma::CSemDeclSpecs::__exec_old_create_type()
46312
 
#line 236 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
46313
 
{
46314
 
  // --------------------------------------------- //
46315
 
  //  type specifier(s)    | specified type        //       
46316
 
  // --------------------------------------------- //
46317
 
  //  void                 | "void"                //
46318
 
  //  bool                 | "bool"                //       
46319
 
  //  wchar_t              | "wchar_t"             //       
46320
 
  //                       |                       //
46321
 
  //  char                 | "char"                //       
46322
 
  //  unsigned char        | "unsigned char"       //       
46323
 
  //  signed char          | "signed char"         //       
46324
 
  //                       |                       //
46325
 
  //  unsigned             | "unsigned int"        //       
46326
 
  //  unsigned int         | "unsigned int"        //       
46327
 
  //  signed               | "int"                 //       
46328
 
  //  signed int           | "int"                 //       
46329
 
  //  int                  | "int"                 //       
46330
 
  //  unsigned short int   | "unsigned short int"  //
46331
 
  //  unsigned short       | "unsigned short int"  //
46332
 
  //  unsigned long int    | "unsigned long int"   //
46333
 
  //  unsigned long        | "unsigned long int"   //
46334
 
  //  signed long int      | "long int"            //       
46335
 
  //  signed long          | "long int"            //       
46336
 
  //  long int             | "long int"            //       
46337
 
  //  long                 | "long int"            //       
46338
 
  //  signed short int     | "short int"           //       
46339
 
  //  signed short         | "short int"           //       
46340
 
  //  short int            | "short int"           //       
46341
 
  //  short                | "short int"           //       
46342
 
  //                       |                       //
46343
 
  //  float                | "float"               //       
46344
 
  //  double               | "double"              //       
46345
 
  //  long double          | "long double"         //       
46346
 
  // --------------------------------------------- //
46347
 
  CObjectInfo *info;
46348
 
  CTypeInfo *type = &CTYPE_UNDEFINED;
46349
 
  // handle 'bool'
46350
 
  if (_prim_map[CT_PrimDeclSpec::PDS_BOOL]) {
46351
 
    _prim_map[CT_PrimDeclSpec::PDS_BOOL] = 0;
46352
 
    type = &CTYPE_BOOL;
46353
 
  }
46354
 
  // handle 'float'
46355
 
  else if (_prim_map[CT_PrimDeclSpec::PDS_FLOAT]) {
46356
 
    _prim_map[CT_PrimDeclSpec::PDS_FLOAT] = 0;
46357
 
    type = &CTYPE_FLOAT;
46358
 
  }
46359
 
  // handle 'double' <= must be handled before 'long'
46360
 
  else if (_prim_map[CT_PrimDeclSpec::PDS_DOUBLE]) {
46361
 
    _prim_map[CT_PrimDeclSpec::PDS_DOUBLE] = 0;
46362
 
    if (_prim_map[CT_PrimDeclSpec::PDS_LONG]) {
46363
 
      type = &CTYPE_LONG_DOUBLE;
46364
 
      _prim_map[CT_PrimDeclSpec::PDS_LONG] = 0;
46365
 
    } else
46366
 
      type = &CTYPE_DOUBLE;
46367
 
  }
46368
 
  // handle 'char'
46369
 
  else if (_prim_map[CT_PrimDeclSpec::PDS_CHAR]) {
46370
 
    _prim_map[CT_PrimDeclSpec::PDS_CHAR] = 0;
46371
 
    if (_prim_map[CT_PrimDeclSpec::PDS_UNSIGNED]) {
46372
 
      type = &CTYPE_UNSIGNED_CHAR;
46373
 
      _prim_map[CT_PrimDeclSpec::PDS_UNSIGNED] = 0;
46374
 
    } else if (_prim_map[CT_PrimDeclSpec::PDS_SIGNED]) {
46375
 
      type = &CTYPE_SIGNED_CHAR;
46376
 
      _prim_map[CT_PrimDeclSpec::PDS_SIGNED] = 0;
46377
 
    } else
46378
 
      type = &CTYPE_CHAR;
46379
 
  }
46380
 
  // handle 'wchar_t'
46381
 
  else if (_prim_map[CT_PrimDeclSpec::PDS_WCHAR_T]) {
46382
 
    _prim_map[CT_PrimDeclSpec::PDS_WCHAR_T] = 0;
46383
 
    type = &CTYPE_WCHAR_T;
46384
 
  }
46385
 
  // handle 'short'
46386
 
  else if (_prim_map[CT_PrimDeclSpec::PDS_SHORT]) {
46387
 
    _prim_map[CT_PrimDeclSpec::PDS_SHORT] = 0;
46388
 
    _prim_map[CT_PrimDeclSpec::PDS_INT] = 0;
46389
 
    if (_prim_map[CT_PrimDeclSpec::PDS_UNSIGNED]) {
46390
 
      type = &CTYPE_UNSIGNED_SHORT;
46391
 
      _prim_map[CT_PrimDeclSpec::PDS_UNSIGNED] = 0;
46392
 
    } else if (_prim_map[CT_PrimDeclSpec::PDS_SIGNED]) {
46393
 
      type = &CTYPE_SHORT;
46394
 
      _prim_map[CT_PrimDeclSpec::PDS_SIGNED] = 0;
46395
 
    } else
46396
 
      type = &CTYPE_SHORT;
46397
 
  }
46398
 
  // handle 'long long'  <= be careful, this must be before 'int'!
46399
 
  else if (_prim_map[CT_PrimDeclSpec::PDS_LONG] == 2) {
46400
 
    _prim_map[CT_PrimDeclSpec::PDS_LONG] = 0;
46401
 
    _prim_map[CT_PrimDeclSpec::PDS_INT] = 0;
46402
 
    if (_prim_map[CT_PrimDeclSpec::PDS_UNSIGNED]) {
46403
 
      type = &CTYPE_UNSIGNED_LONG_LONG;
46404
 
      _prim_map[CT_PrimDeclSpec::PDS_UNSIGNED] = 0;
46405
 
    } else if (_prim_map[CT_PrimDeclSpec::PDS_SIGNED]) {
46406
 
      type = &CTYPE_LONG_LONG;
46407
 
      _prim_map[CT_PrimDeclSpec::PDS_SIGNED] = 0;
46408
 
    } else
46409
 
      type = &CTYPE_LONG_LONG;
46410
 
  }
46411
 
  // handle 'long'  <= be careful, this must be before 'int'!
46412
 
  else if (_prim_map[CT_PrimDeclSpec::PDS_LONG] == 1) {
46413
 
    _prim_map[CT_PrimDeclSpec::PDS_LONG] = 0;
46414
 
    _prim_map[CT_PrimDeclSpec::PDS_INT] = 0;
46415
 
    if (_prim_map[CT_PrimDeclSpec::PDS_UNSIGNED]) {
46416
 
      type = &CTYPE_UNSIGNED_LONG;
46417
 
      _prim_map[CT_PrimDeclSpec::PDS_UNSIGNED] = 0;
46418
 
    } else if (_prim_map[CT_PrimDeclSpec::PDS_SIGNED]) {
46419
 
      type = &CTYPE_LONG;
46420
 
      _prim_map[CT_PrimDeclSpec::PDS_SIGNED] = 0;
46421
 
    } else
46422
 
      type = &CTYPE_LONG;
46423
 
  }
46424
 
  // handle 'int'
46425
 
  else if (_prim_map[CT_PrimDeclSpec::PDS_INT]) {
46426
 
    _prim_map[CT_PrimDeclSpec::PDS_INT] = 0;
46427
 
    if (_prim_map[CT_PrimDeclSpec::PDS_UNSIGNED]) {
46428
 
      type = &CTYPE_UNSIGNED_INT;
46429
 
      _prim_map[CT_PrimDeclSpec::PDS_UNSIGNED] = 0;
46430
 
    } else if (_prim_map[CT_PrimDeclSpec::PDS_SIGNED]) {
46431
 
      type = &CTYPE_INT;
46432
 
      _prim_map[CT_PrimDeclSpec::PDS_SIGNED] = 0;
46433
 
    } else
46434
 
      type = &CTYPE_INT;
46435
 
  }
46436
 
  // handle '__int64'
46437
 
  else if (_prim_map[CT_PrimDeclSpec::PDS_INT64]) {
46438
 
    _prim_map[CT_PrimDeclSpec::PDS_INT64] = 0;
46439
 
    if (_prim_map[CT_PrimDeclSpec::PDS_UNSIGNED]) {
46440
 
      type = &CTYPE_UNSIGNED_LONG_LONG;
46441
 
      _prim_map[CT_PrimDeclSpec::PDS_UNSIGNED] = 0;
46442
 
    } else if (_prim_map[CT_PrimDeclSpec::PDS_SIGNED]) {
46443
 
      type = &CTYPE_LONG_LONG;
46444
 
      _prim_map[CT_PrimDeclSpec::PDS_SIGNED] = 0;
46445
 
    } else
46446
 
      type = &CTYPE_LONG_LONG;
46447
 
  }
46448
 
  // handle 'signed'
46449
 
  else if (_prim_map[CT_PrimDeclSpec::PDS_SIGNED]) {
46450
 
    _prim_map[CT_PrimDeclSpec::PDS_SIGNED] = 0;
46451
 
    type = &CTYPE_INT;
46452
 
  }
46453
 
  // handle 'unsigned'
46454
 
  else if (_prim_map[CT_PrimDeclSpec::PDS_UNSIGNED]) {
46455
 
    _prim_map[CT_PrimDeclSpec::PDS_UNSIGNED] = 0;
46456
 
    type = &CTYPE_UNSIGNED_INT;
46457
 
  }
46458
 
  // handle 'void'
46459
 
  else if (_prim_map[CT_PrimDeclSpec::PDS_VOID]) {
46460
 
    _prim_map[CT_PrimDeclSpec::PDS_VOID] = 0;
46461
 
    type = &CTYPE_VOID;
46462
 
  }
46463
 
  // handle '__unknown_t'
46464
 
  else if (_prim_map[CT_PrimDeclSpec::PDS_UNKNOWN_T]) {
46465
 
    _prim_map[CT_PrimDeclSpec::PDS_UNKNOWN_T] = 0;
46466
 
    type = &CTYPE_UNKNOWN_T;
46467
 
  }
46468
 
  else if (_names) {
46469
 
    _names--;
46470
 
    if (_name) {
46471
 
      info = 0;
46472
 
      if (_name->NodeName () == CT_TemplateName::NodeId ())
46473
 
        info = _name->Object ();
46474
 
      else if (_name->NodeName () == CT_QualName::NodeId () ||
46475
 
               _name->NodeName () == CT_RootQualName::NodeId ()) {
46476
 
        for (unsigned i = _name->Entries (); i > 0; i--)
46477
 
          if ((info = ((CT_SimpleName*)_name->Entry (i-1))->Object ()))
46478
 
            break;
46479
 
      } else
46480
 
        info = _name->Name ()->Object ();
46481
 
      if (info && (info->Record () || info->EnumInfo () || 
46482
 
                   info->TypedefInfo () || info->TemplateParamInfo ()))
46483
 
        type = info->TypeInfo ()->Duplicate ();
46484
 
    }
46485
 
  }
46486
 
  else if (_class_specs) {
46487
 
    _class_specs--;
46488
 
    if (_name) {
46489
 
      info = _name->Object ();
46490
 
      if (info)
46491
 
        type = CTypeInfo::Duplicate (info->TypeInfo ());
46492
 
    }
46493
 
  }
46494
 
  else if (_union_specs) {
46495
 
    _union_specs--;
46496
 
    if (_name) {
46497
 
      info = _name->Object ();
46498
 
      if (info)
46499
 
        type = CTypeInfo::Duplicate (info->TypeInfo ());
46500
 
    }
46501
 
  }
46502
 
  else if (_enum_specs) {
46503
 
    _enum_specs--;
46504
 
    if (_name) {
46505
 
      info = _name->Object ();
46506
 
      if (info)
46507
 
        type = CTypeInfo::Duplicate (info->TypeInfo ());
46508
 
    }
46509
 
  }
46510
 
  return type;
46511
 
}
46512
 
 
46513
 
 
46514
 
CTypeInfo *CSemDeclSpecs::create_qualifiers (CTypeInfo *type) {
46515
 
  // handle 'const', 'volatile' and 'restrict'
46516
 
  if (_prim_map[CT_PrimDeclSpec::PDS_CONST] ||
46517
 
      _prim_map[CT_PrimDeclSpec::PDS_VOLATILE] ||
46518
 
      _prim_map[CT_PrimDeclSpec::PDS_RESTRICT]) {
46519
 
    return new CTypeQualified (type, _prim_map[CT_PrimDeclSpec::PDS_CONST], 
46520
 
                               _prim_map[CT_PrimDeclSpec::PDS_VOLATILE],
46521
 
                               _prim_map[CT_PrimDeclSpec::PDS_RESTRICT]);
46522
 
  }
46523
 
  return type;
46524
 
}
46525
 
 
46526
 
 
46527
 
 
46528
 
#line 46529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
46529
 
 
46530
 
 
46531
 
struct TJP__ZN4Puma13CSemDeclSpecs13check_finallyEv_0 {
46532
 
  typedef bool Result;
46533
 
  typedef ::Puma::CSemDeclSpecs That;
46534
 
  typedef ::Puma::CSemDeclSpecs Target;
46535
 
  static const int JPID = 133;
46536
 
  static const AC::JPType JPTYPE = (AC::JPType)8;
46537
 
  struct Res {
46538
 
    typedef bool Type;
46539
 
    typedef bool ReferredType;
46540
 
  };
46541
 
  enum { ARGS = 0 };
46542
 
  template <int I, int DUMMY = 0> struct Arg {
46543
 
    typedef void Type;
46544
 
    typedef void ReferredType;
46545
 
  };
46546
 
 
46547
 
  Result *_result;
46548
 
  That *_that;
46549
 
 
46550
 
  inline Result *result() {return (Result*)_result;}
46551
 
  inline That *that() {return (That*)_that;}
46552
 
 
46553
 
};
46554
 
struct Binding_TJP__ZN4Puma13CSemDeclSpecs13check_finallyEv_0_ExtGnu_ExtGnu_a11_after {
46555
 
  typedef TJP__ZN4Puma13CSemDeclSpecs13check_finallyEv_0 TJP;
46556
 
  template <int I, int DUMMY = 0> struct Arg {
46557
 
    void val (TJP *tjp) {} // for VC7
46558
 
  };
46559
 
  template <int DUMMY> struct Arg<0, DUMMY> {
46560
 
    static TJP::That &val (TJP *tjp) { return *tjp->that (); }
46561
 
  };
46562
 
};
46563
 
 
46564
 
 
46565
 
#line 450 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
46566
 
bool CSemDeclSpecs::check_finally () 
46567
 
#line 46568 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
46568
 
{
46569
 
  AC::ResultBuffer< bool  > result;
46570
 
  TJP__ZN4Puma13CSemDeclSpecs13check_finallyEv_0 tjp;
46571
 
  tjp._result = &(TJP__ZN4Puma13CSemDeclSpecs13check_finallyEv_0::Result&)result;
46572
 
  tjp._that =  (TJP__ZN4Puma13CSemDeclSpecs13check_finallyEv_0::That*)this;
46573
 
  ::new (&result) bool  (this->__exec_old_check_finally());
46574
 
  AC::invoke_ExtGnu_ExtGnu_a11_after<TJP__ZN4Puma13CSemDeclSpecs13check_finallyEv_0, Binding_TJP__ZN4Puma13CSemDeclSpecs13check_finallyEv_0_ExtGnu_ExtGnu_a11_after> (&tjp);
46575
 
  return (bool &)result;
46576
 
 
46577
 
}
46578
 
inline bool Puma::CSemDeclSpecs::__exec_old_check_finally()
46579
 
#line 450 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
46580
 
{
46581
 
  if (_prim_map[CT_PrimDeclSpec::PDS_CHAR] + 
46582
 
      _prim_map[CT_PrimDeclSpec::PDS_WCHAR_T] + 
46583
 
      _prim_map[CT_PrimDeclSpec::PDS_BOOL] + 
46584
 
      _prim_map[CT_PrimDeclSpec::PDS_SHORT] + 
46585
 
      _prim_map[CT_PrimDeclSpec::PDS_INT] + 
46586
 
      _prim_map[CT_PrimDeclSpec::PDS_LONG] + 
46587
 
      _prim_map[CT_PrimDeclSpec::PDS_SIGNED] + 
46588
 
      _prim_map[CT_PrimDeclSpec::PDS_UNSIGNED] + 
46589
 
      _prim_map[CT_PrimDeclSpec::PDS_FLOAT] + 
46590
 
      _prim_map[CT_PrimDeclSpec::PDS_DOUBLE] + 
46591
 
      _prim_map[CT_PrimDeclSpec::PDS_INT64] + 
46592
 
      _prim_map[CT_PrimDeclSpec::PDS_UNKNOWN_T] + 
46593
 
      _prim_map[CT_PrimDeclSpec::PDS_VOID] +
46594
 
      _names + _class_specs + _union_specs + _enum_specs > 0) {
46595
 
    *_err << sev_error << _dss->token ()->location () 
46596
 
          << "invalid type specified in declaration" << endMessage;
46597
 
    return false;
46598
 
  }
46599
 
  return true;
46600
 
}
46601
 
 
46602
 
} // namespace Puma
46603
 
 
46604
 
#line 46605 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CSemDeclSpecs.cc"
46605
 
 
46606
 
#ifdef __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_CSemDeclSpecs_cc__
46607
 
/*** begin of aspect includes ***/
46608
 
#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__)
46609
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__
46610
 
#include "WinIfExists.ah"
46611
 
#endif
46612
 
#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__)
46613
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__
46614
 
#include "WinImportHandler.ah"
46615
 
#endif
46616
 
#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__)
46617
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__
46618
 
#include "WinMacros.ah"
46619
 
#endif
46620
 
#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__)
46621
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
46622
 
#include "CMatchSyntax.ah"
46623
 
#endif
46624
 
#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__)
46625
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
46626
 
 
46627
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
46628
 
#endif
46629
 
#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__)
46630
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__
46631
 
#include "ExtAC.ah"
46632
 
#endif
46633
 
#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__)
46634
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
46635
 
#include "ExtACBuilderH.ah"
46636
 
#endif
46637
 
#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__)
46638
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
46639
 
#include "ExtACBuilderCC.ah"
46640
 
#endif
46641
 
#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__)
46642
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
46643
 
#include "ExtACSyntaxH.ah"
46644
 
#endif
46645
 
#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__)
46646
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
46647
 
#include "ExtACSyntaxCC.ah"
46648
 
#endif
46649
 
#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__)
46650
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
46651
 
 
46652
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
46653
 
#endif
46654
 
#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__)
46655
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
46656
 
#include "ExtACKeywords.ah"
46657
 
#endif
46658
 
#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__)
46659
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
58682
#line 169 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CSemDeclSpecs.cc"
 
58683
#endif
 
58684
#endif
 
58685
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
58686
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
58687
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
58688
#include "ExtACTree.ah"
 
58689
#endif
 
58690
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
58691
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
58692
#include "ExtGnuCSemDeclSpecs.ah"
 
58693
#endif
 
58694
#endif
 
58695
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
58696
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
58697
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
58698
#include "PragmaOnceUnitState.ah"
 
58699
#endif
 
58700
#endif
 
58701
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
58702
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
58703
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
58704
#include "PragmaOnceUnitState.ah"
 
58705
#endif
 
58706
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
58707
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
58708
#include "PragmaOnce.ah"
 
58709
#endif
 
58710
#endif
 
58711
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
58712
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
58713
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
46660
58714
#include "TraceSyntax.ah"
46661
58715
#endif
46662
 
#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__)
46663
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinAsm_ah__
46664
 
#include "WinAsm.ah"
46665
 
#endif
46666
 
#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__)
46667
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
46668
 
#include "WinDeclSpecs.ah"
46669
 
#endif
46670
 
#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__)
46671
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
46672
 
#include "WinMemberExplSpec.ah"
46673
 
#endif
46674
 
#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__)
46675
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
46676
 
#include "WinTypeKeywords.ah"
46677
 
#endif
46678
 
#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__)
46679
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
46680
 
#include "PragmaOnceUnitState.ah"
46681
 
#endif
46682
 
#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__)
46683
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__
46684
 
#include "PragmaOnce.ah"
46685
 
#endif
46686
 
#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__)
46687
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
46688
 
#include "CCExprResolveH.ah"
46689
 
#endif
46690
 
#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__)
46691
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
46692
 
#include "CCExprResolveCC.ah"
46693
 
#endif
46694
 
#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__)
46695
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveH_ah__
46696
 
#include "CExprResolveH.ah"
46697
 
#endif
46698
 
#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__)
46699
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
46700
 
#include "CExprResolveCC.ah"
46701
 
#endif
46702
 
/*** end of aspect includes ***/
46703
 
#undef __ac_FIRST__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1__
46704
 
#undef __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_CSemDeclSpecs_cc__
46705
 
#endif // __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_CSemDeclSpecs_cc__
 
58716
#endif
 
58717
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
58718
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
58719
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
58720
#include "CMatchSyntax.ah"
 
58721
#endif
 
58722
#endif
 
58723
#undef __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
 
58724
#undef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_CSemDeclSpecs_cc__
 
58725
#endif // __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_CSemDeclSpecs_cc__